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

struts2的拦截器的简单使用

2014-09-08 16:59 281 查看
login.jsp页面body中

<s:form action="user_login.action" method="post">
<s:textfield name="username" label="用户名"/>
<s:password name="password" label="密码"/>
<s:submit value="登陆"/>
</s:form>
show.jsp页面body中

有权限登陆后的页面:<s:property value="username"/>---<s:property value="password"/>

只有用户名为admin和密码为admin时才能登陆显示show.jsp页面,否则都返回到login.jsp页面
LoginAction类是简单处理登陆的action

public class LoginAction extends ActionSupport{
private String username;
private String password;

public String login(){
System.out.println(username+"---"+password);
return "login";
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}

拦截器PermissionInteceptor

public class PermissionInterceptor extends AbstractInterceptor{

@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String,Object> params = invocation.getInvocationContext().getParameters();
String username = null;
String password = null;
for(Map.Entry<String, Object> ma : params.entrySet()){
String key = ma.getKey();
if(key.equals("username")){
String[] values = (String[]) params.get(key);
username = values[0];
}
if(key.equals("password")){
String[] values = (String[]) params.get(key);
password = values[0];
}
}
if(username.equals("admin")&&password.equals("admin")){
return invocation.invoke();
}
return "back_login";
}

}

struts.xml的配置
<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="permission" class="cn.axin.interceptor.PermissionInterceptor"/>
<interceptor-stack name="permStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="permission"/>
</interceptor-stack>
</interceptors>

<!-- 测试:http://localhost:8080/struts2_practice03/login.jsp -->
<action name="user_*" class="cn.axin.action.LoginAction" method="{1}">
<result name="login">/show.jsp</result>
<result name="back_login">/login.jsp</result>
<interceptor-ref name="permStack"/>
</action>
</package>
</struts>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2 拦截器