浏览 7729 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-17
来总结一下: 在Strtus的Model部分,即Bean的部分,以登录模块为例,我试验的代码: Success时, //Struts Bean方法里session的用法 String login_name = rs.getString("true_name"); //返回和请求相关的session HttpSession session = request.getSession(); //把truename的属性值login_name保存在session对象中 session.setAttribute("truename", login_name); False时, LoginFalse.loginFalse(request);即:调用了LoginFalse类里面的俄静态方法,当然是自己写的,最近刻意养成把所有的东西给封装的习惯,感觉不错。LoginFalse里面的代码, public static void loginFalse(HttpServletRequest request) { String login_false = "Your username or password is wrong!!!"; HttpSession session = request.getSession(); session.setAttribute("loginfalse", login_false); }在login.jsp的代码, <%String loginwrong = (String) session.getAttribute("loginfalse"); if (loginwrong != null) { %> <%=loginwrong%> <% //销毁session session.removeAttribute("loginfalse"); } session.removeAttribute("truename"); %>每页需要用 <%@ include file="inc/logout.inc" %> 来显示用户的true_name以及logout功能实现。 logout.inc代码, <%String u = (String) session.getAttribute("truename");%> <%=u%><br/> <%if (u == null) {%> <logic:forward name="g_login"/> <%}%> <html:link page="/login.jsp">logout</html:link>还有LoginForm里面的not required处理就省略了。 自我感觉这次的问题就出现在,不知道Struts里面scope定义session的话,在Bean里面不人为写session时,struts会自己给个getSession(); 还有跟以前在JSP-JSP里面的session有点不同,就在这: HttpSession session = request.getSession(); session.setAttribute之前必须得注意写上这一行。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-17
LZ是不是从ASP转过来的,呵呵INC是ASP常用的经典扩展名啊。
其实在JSP里,include一个INC我感觉不是特别好,加上一些逻辑判断,让JSP页面支离破碎的。 你可以做一个简单的Filter,来过滤。这样使用Session,Request,Response都可在Java代码里去实现了,调试与管理也方便多了 |
|
返回顶楼 | |
发表时间:2007-10-17
同意楼上的,用filter来做更好,而且错误信息也没有必要放到session里,像这种错误信息一般只使用一次,你放到request里forward下去就行了,比你set了再remove安全的多
关于你封装的那个方法:我在做项目的时候是不允许把这种功能封装在调用类外的方法里的,你在这里将request/session带出了他应该存在的范围,会对维护造成一些问题,而且你方法名里也没明确说明里面会对session进行操作,我们也有一些操作session的工具类,但那些类都是用于操作真正的session级别(有session就一直起作用的属性)的属性信息的,你这个信息还算不上这种级别的东西。 |
|
返回顶楼 | |
发表时间:2007-10-19
既然都用了struts,还搞这一堆jsp代码作甚,05年的时候协助过一个项目,也是这种风格,头疼
|
|
返回顶楼 | |
发表时间:2007-11-12
不是吧。。。怎么这样做啊。。。太麻烦了吧。楼上说的用filter不是很好吗。
|
|
返回顶楼 | |