struts2实现登录session验证问题

首先在index.jsp页面登录:
<form action="[i]itcsss[/i]" 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
}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值