[Ken原创] Struts里的session用法。

昨天晚上突然遇到一个莫名其妙的问题,可惜因为熄灯没解决好,导致一夜没睡好觉,呵呵,有点过分了…… 于是今天早上就开始捉摸这事儿。

来总结一下:
在Strtus的Model部分,即Bean的部分,以登录模块为例,我试验的代码:
Success时,
[code]//Struts Bean方法里session的用法
String login_name = rs.getString("true_name");
//返回和请求相关的session
HttpSession session = request.getSession();
//把truename的属性值login_name保存在session对象中
session.setAttribute("truename", login_name);[/code]

False时,

[code]LoginFalse.loginFalse(request);[/code]即:调用了LoginFalse类里面的俄静态方法,当然是自己写的,最近刻意养成把所有的东西给封装的习惯,感觉不错。LoginFalse里面的代码,
[code]public static void loginFalse(HttpServletRequest request) {
String login_false = "Your username or password is wrong!!!";
HttpSession session = request.getSession();
session.setAttribute("loginfalse", login_false);
}[/code]在login.jsp的代码,
[code]<%String loginwrong = (String) session.getAttribute("loginfalse");
if (loginwrong != null) { %>
<%=loginwrong%>
<%
//销毁session
session.removeAttribute("loginfalse");
}
session.removeAttribute("truename"); %>[/code]每页需要用 <%@ include file="inc/logout.inc" %> 来显示用户的true_name以及logout功能实现。
logout.inc代码,
[code]<%String u = (String) session.getAttribute("truename");%>
<%=u%><br/>
<%if (u == null) {%>
<logic:forward name="g_login"/>
<%}%>
<html:link page="/login.jsp">logout</html:link>[/code]还有LoginForm里面的not required处理就省略了。
自我感觉这次的问题就出现在,不知道Struts里面scope定义session的话,在Bean里面不人为写session时,struts会自己给个getSession();
还有跟以前在JSP-JSP里面的session有点不同,就在这:
[code]HttpSession session = request.getSession();[/code]
session.setAttribute之前必须得注意写上这一行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值