`
nbas123126com
  • 浏览: 43294 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2实现登录session验证问题

阅读更多
首先在index.jsp页面登录:
<form action="itcsss" method="post">
   <input type="text" name="username" />
   <br>
   <input type="password" name="password"/>
   <br>
   <input type="submit" value="login"/>
   </form>
然后是action中方法(HelloWorldAction):
public String execute()
      {
System.out.println("****************");
message = "这是我的第一个jsp页面!";

if(username.length()>0)
{
//此处可以通过查询数据库来判断用户是否可以登录
System.out.println("username isd:"+username);
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("loginuser", username);
      return "success";
}
else
{
    return "error";
}
      }
保存登录信息。
配置文件:struts.xml
<struts>
<!-- 用户登录的action -->
<package name="strut-login" extends="struts-default">
<global-results>
<result name="error">/index.jsp</result>
</global-results>

<action name="itcsss" class="cn.itcast.action.HelloWorldAction">
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
<!-- 使用拦截器拦截非法登录的用户 -->
<package name="struts2"  extends="struts-default" >
<interceptors>
<interceptor class="cn.itcast.indeptor.AuthorityInterceptor" name="authority"/>
<interceptor-stack name="mydefault">
<!--配置默认的拦截器 -->
<interceptor-ref name="defaultStack"/>
<!--配置自定义的拦截器-->
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault" /><!-- 全局拦截 -->

<global-results>
<result name="error">/index.jsp</result>
</global-results>

<action name="go" class="cn.itcast.action.HelloWorldAction" method="go">
<!-- interceptor-ref name="mydefault">
<param name="excludeMethods">go</param>
</interceptor-ref-->
<result name="success">/WEB-INF/page/MyJsp.jsp</result>
</action>
</package>
</struts>
拦截该方法:
public String go()
{
return "success";
}
判断session里时候有用户的登录信息,如果没有就跳转到登录页面。拦截器的实现:
package cn.itcast.indeptor;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class AuthorityInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx = invocation.getInvocationContext();
Map<String,Object> session = ctx.getSession();
String username = (String)session.get("loginuser");//获取用户登录的信息,从session中获取
if(username==""||username==null)
return "error";//跳转到登录页面
//如果session中有登录的信息,就继续执行action中的方法
return invocation.invoke(); //如果有权限就执行Action
}

}
分享到:
评论
1 楼 yanguz123 2013-08-31  
mark 一下

相关推荐

    Struts2实现检查用户是否登录

    Struts2实现检查用户是否登录使用session操作存储用户信息

    struts1.2自定义标签之session验证

    视频第二部分共两部分 下载前请阅读博客文章详细 博文链接:https://dlivan.iteye.com/blog/68374

    Struts2-登录验证码

    完整的Struts2框架,联系oracle数据库实现登录验证 验证码功能:点击图片切换验证码,验证码错误提示 登录成功后变量session中的list集合 内含备注

    深入浅出Struts2(附源码)

    本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    11.4.2 编写实现登录的页面regedit.jsp 11.4.3 编写存储登录用户信息的类User.java 11.4.4 编写控制器RegeditAction.java 11.4.5 编写业务逻辑接口Regedit.java 11.4.6 编写具体的业务逻辑类RegeditImpl.java 11.4.7...

    研究论文-Struts2架构中的Commons-fileupload组件应用技术.pdf

    基于HTTP传输协议的Web网页中,采用嵌入Commonsfileupload组件的Struts2框架,实现了文件的上传与下载.利用OGNL表达式提取Session持久层中的文件名,并利用此文件名实现下载文件的动态更名.灵活利用struts2.0自身...

    Struts2 Spring Hibernate

    自己做的Struts2 Spring Hibernate小程序,给有需要参考的朋友 可以页面验证,也可以后台验证 session回收和事务处理也做了

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    11.4.2 编写实现登录的页面regedit.jsp 11.4.3 编写存储登录用户信息的类User.java 11.4.4 编写控制器RegeditAction.java 11.4.5 编写业务逻辑接口Regedit.java 11.4.6 编写具体的业务逻辑类RegeditImpl.java 11.4.7...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    11.4.2 编写实现登录的页面regedit.jsp 11.4.3 编写存储登录用户信息的类User.java 11.4.4 编写控制器RegeditAction.java 11.4.5 编写业务逻辑接口Regedit.java 11.4.6 编写具体的业务逻辑类RegeditImpl.java 11.4.7...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    书中介绍了如何利用Struts 2 来解决Web 应用开发中的常见问题,同时还深入浅出地探讨了许多能帮助程序员编写Struts 2 应用程序的技巧,如管理页面导航活动、输入验证、国际化和本地化、对Ajax 的支持,等等。...

    Struts2注解+JDBC+MySQL小项目应用

    // 2. taglib标识传递 resultMsg = "注册成功"; return "registerSuccess"; } else { resultMsg = "注册失败"; return "registerFailure"; } } } // 登录 @Action("login") public String login() { ...

    低清版 大型门户网站是这样炼成的.pdf

    10.4.2 控制层struts 2实现 662 10.4.3 持久层hibernate3实现 672 10.4.4 spring 2接管业务逻辑层 675 10.5 小结 677 第11章 温故知新—打造购物车与订单管理系统 679 11.1 购物车与订单管理系统需求分析 679 ...

    (2.0版本)自己写的struts2+hibernate+spring实例

    主要是为了引入时间等字段,来试验一下struts2的时间标签是否好用.这次为了做成一个好点的实例.所以换掉了表结构.为歌词表.并附带2万首歌词的数据库.因为歌词插入数据太大.所以单另上传了.如果不需要这两万条数据的...

Global site tag (gtag.js) - Google Analytics