1.拦截器的配置
<interceptors>
<!--定义权限验证拦截器-->
<interceptor name="myAuthorization" class="com.softjx.AuthorizationInterceptor"> </interceptor>
<!--定义权限验证拦截器栈-->
<interceptor-stack name="myStack">
<interceptor-ref name="myAuthorization"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>2.拦截器类AuthorizationInterceptor.java
package com.softjx;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import com.model.Person;
/**
* 权限验证检查拦截器
*
*/
public class AuthorizationInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = -1919190535109141892L;
/*
* 拦截器的拦截方法
*/
@SuppressWarnings("unchecked")
public String intercept(ActionInvocation invocation) throws Exception {
//获取用户会话信息
Map session = invocation.getInvocationContext().getSession();
Person user = (Person)session.get("login");
if (user == null) {
//终止执行,返回登录页面
return Action.LOGIN;
} else {
//继续执行剩余的拦截器和Action
return invocation.invoke();
}
}
}3.Action类LoginAction.java
package com.softjx;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.model.Person;
public class LoginAction extends ActionSupport {
private String flag;
private Person person;
/**
* 登录
* @return
*/
public String login()
{
flag="login";
Map session=ActionContext.getContext().getSession();
session.put("login", person);
return "success";
}
public String add()
{
flag="add";
return "success";
}
public String edit()
{
flag="edit";
return "success";
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}4.strut.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 打开静态方法调用的权限 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<!-- 配置Struts可以受理的请求的扩展名 -->
<constant name="struts.action.extension" value="action,do,"></constant>
<!-- 打开允许动态方法的开关,默认是false -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package extends="struts-default" name="default" namespace="/">
<interceptors>
<!--定义权限验证拦截器-->
<interceptor name="myAuthorization" class="com.softjx.AuthorizationInterceptor"> </interceptor>
<!--定义权限验证拦截器栈-->
<interceptor-stack name="myStack">
<interceptor-ref name="myAuthorization"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<action name="loginUser" class="com.softjx.LoginAction" method="login">
<result name="success" type="dispatcher">loginsuccess.jsp</result>
<result name="fail">fail.jsp</result>
</action>
<action name="addUser" class="com.softjx.LoginAction" method="add">
<interceptor-ref name="myStack"/>
<result name="success">addsuccess.jsp</result>
<result name="fail">fail.jsp</result>
<result name="login">loginuser.jsp</result>
</action>
<action name="editUser" class="com.softjx.LoginAction" method="edit">
<interceptor-ref name="myStack"/>
<result name="success">editsuccess.jsp</result>
<result name="fail">fail.jsp</result>
<result name="login">loginuser.jsp</result>
</action>
</package>
</struts>5.简单登陆添加界面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户登录</title>
</head>
<body>
<h1>
用户登录
</h1>
<s:form action="loginUser.action" method="post">
<s:textfield name="person.username" label="Name" />
<s:password name="person.password" label="Pass"/>
<br>
<input type="submit" value="提交" />
</s:form>
</body>
</html><%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>用户登录</title>
</head>
<body>
<h1>
用户添加
</h1>
<s:form action="addUser.action" method="post">
<s:textfield name="name" label="Name"></s:textfield>
<s:textfield name="password" label="Password"></s:textfield>
<s:submit></s:submit>
</s:form>
</body>
</html>版权声明:本文为surpass0728原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。