本篇文章小编给大家分享一下在html页面中取得session中的值方法,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
1.首先呢session的key-value都是存在server的,浏览器HTML页面是没有办法直接取得session中的值,只有在html里能通过js拿到jesessionid之类的东西。
1.1、数据量如果小,可以考虑放到cookie里,传到客户端,html里用js就可以拿到。
1.2、如果数据量大,可以考虑单独做一个jsp或servlet,根据传来的session的key,返回序列化的session的值,比如json之类的。html里用js通过ajax获取。这种方式复杂了点,多一次远程访问,但是灵活方便。
如:
2.或者得通过后台才能获取,session是存在服务器端的,如果你用cookie的话,可以通过js获取。
问题描述:session中保存着UserInfo对象,成功登录后,在html中显示“欢迎xxx”
解决方法:通过ajax,json获取UserInfo数据,再显示
1.js
2.页面
管理页面
管理员:您好,感谢登陆使用! |
3.实体:UserInfo
public class UserInfo { private int UserInfoId; private String userInfoName; private String UserInfoPsw; //省略get,set
4.LoginAction中:
public void getLoginName() { System.out.println("getLoginUser"); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/plain;charset=UTF-8"); PrintWriter out; try { String userName = ((UserInfo) ActionContext.getContext() .getSession().get("user")).getUserInfoName(); System.out.println(userName); out = response.getWriter(); out.print(userName); out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
3.用response.sendRedirect("a.html?param=hello");用下面的JS方法
如:
var v=getUrlParameter('param'); function getUrlParameter( name ){ name = name.replace(/[ ]/,"[").replace(/[ ]/,"]"); var regexS = "[?&]"+name+"=([^]*)"; var regex = new RegExp( regexS ); var results = regex.exec(window.parent.location.href ); if( results == null ) return ""; else { return results[1]; } }
以上几种方法在html页面中取得session中的值.