Struts2 的action中如何获得JSP里面session保存的值

tzp118 2014-12-04 09:10:08
我的JSP页面是一个登陆页面
当用户输入登录名之后,我想把登录名保存在session中
JSP 中代码是这样的
表单:

<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" id="username" name="user.username"></td>
</tr>


JSP中将用户名存入session的代码如下:

<% String name = request.getParameter("user.username");
session.setAttribute("name",name);%>


这样是不是就可以在JSP中用户写入的用户名存入到session中了?

接下来在action中获取session中值的代码如下:
HttpServletRequest request=ServletActionContext.getRequest();//获得session
HttpSession session=request.getSession();
String a = (String) session.getAttribute("name");
System.out.println(a);


可是最后在控制台输出的 却是 null 意思就是我没有将用户输入的用户名保存到session中喽,是程序写的不对吗?还是什么原因,请各位大神赐教,纠结这个问题两天了

是JSP写得不对还是action里面写得不对?
...全文
922 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
好人理查德 2014-12-05
  • 打赏
  • 举报
回复
你好像没有设置生命周期,你在severlet 中设置一下session的生命周期。
  • 打赏
  • 举报
回复
5l说的在理,我也是这么用的
zy_think123 2014-12-05
  • 打赏
  • 举报
回复
你没有存进去如何得到值呢?你输入用户名密码之后请求的不是这个jsp吧!所以无法存入
踏 浪 2014-12-05
  • 打赏
  • 举报
回复
首先String name = request.getParameter("user.username")应该是娶不到值的。要想在Struts2的Action中获取Session在session中存放数据,可以这么来 ActionContext.getContext().getSession().put(String, Object);,这里获得的Session对象是一个Map,Struts2对原有的Session进行封装。不是所以这里不是调用ActionContext.getContext().getSession().setAttribute();而是调用ActionContext.getContext().getSession().put(String, Object); 在jsp那边就可以访问了。注意一点put( "username" , username) 而不是put( "user.username" , username)... 另一种做法:使用OGNL表达式。引入struts2标签 <%@taglib uri="/struts-tags" prefix="s" %>直接在另一个页面<s:property value="user.username"/>
tzp118 2014-12-05
  • 打赏
  • 举报
回复
引用 3 楼 magi1201 的回复:
String name = request.getParameter("user.username"); session.setAttribute("name",name); 这两行之间打印下,看name值是多少? 先保证这边拿到了name值,保证name不为空,然后存入session中
加上System.out.println(name); 之后,一打开Login.jsp页面,控制台就打印了null 当输入用户名和密码之后,点击登陆,控制台就不打印东西了,现在是想当输入用户名和密码之后,看能不能打印出来东西
姜小白- 2014-12-05
  • 打赏
  • 举报
回复
String name = request.getParameter("user.username"); session.setAttribute("name",name); 这两行之间打印下,看name值是多少? 先保证这边拿到了name值,保证name不为空,然后存入session中
tzp118 2014-12-05
  • 打赏
  • 举报
回复
引用 1 楼 wang_BobFirst 的回复:
String name = request.getParameter("user.username"); session.setAttribute("name",name); 看一下session这里存进去了没有不就知道了
看了啊,就是没有存进去啊。你说的是怎么看??
wang_BobFirst 2014-12-04
  • 打赏
  • 举报
回复
String name = request.getParameter("user.username"); session.setAttribute("name",name); 看一下session这里存进去了没有不就知道了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧