首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

struts2实现登录session验证有关问题

2012-11-22 
struts2实现登录session验证问题首先在index.jsp页面登录:form actionitcsss methodpostinput ty

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" >
<interceptors>
<interceptor 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" 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
}

}

热点排行