您的位置:首页 > 编程语言 > Java开发

Struts2 拦截器实现用户登录(关键代码)

2013-05-30 20:10 513 查看
拦截器类interceptor

import java.util.Map;

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

public class CheckUserInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("checkuser begin");
String result=null;
Map session=invocation.getInvocationContext().getSession();
if(session.get("username")==null)
{
result="login";
}
else
{
result=invocation.invoke();
//System.out.println("invoke complete");
}
System.out.println("checkuser end");
return result;
}

}


struts.xml

<struts>
<package name="struts2" extends="struts-default">

<interceptors>
<interceptor name="checkuserinterceptor" class="com.accp.interceptor.CheckUserInterceptor"></interceptor>
<interceptor-stack name="checkuser">
<interceptor-ref name="checkuserinterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>

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

<action name="login" class="com.accp.action.user.LoginAction">
<result name="success" type="redirect">showalluser.action</result>
<result name="input">/login.jsp</result>
</action>

<action name="showalluser" class="com.accp.action.user.ShowAllUserAction">
<result name="success" >showalluser.jsp</result>
<result name="input">login.jsp</result>
<interceptor-ref name="checkuser"></interceptor-ref>
</action>
</package>
</struts>


Action:

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

private String username;

private String userpassword;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getUserpassword() {
return userpassword;
}

public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}

@SuppressWarnings("unchecked")
@Override
public String execute() throws Exception {

if("wang".equals(username) && "123".equals(userpassword) )
{
Map session=ActionContext.getContext().getSession();
session.put("username", username);
return "success";
}
return "input";
}

}


jsp:

<s:form action="login" method="post">
<s:textfield name="username" label="用户名"></s:textfield>
<s:textfield name="userpassword" label="密码"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: