使用拦截器进行权限控制
2017-01-04 09:02
573 查看
代码:
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2 拦截器应用</title>
</head>
<body>
<h1>用户登录</h1>
<font color="red">${requestScope.tip}</font>
<s:form id="id" action="login">
<s:textfield name="name" label="用户名"></s:textfield>
<s:password name="pass" label="密码"></s:password>
<s:submit value="注册"></s:submit>
</s:form>
<a href=chakan.action>看咪咪^_^</a>
</body>
</html>
loginsuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>拦截器权限控制</title>
</head>
<body>
你已成功登录系统!<a href=chakan.action>看咪咪^_^</a>
</body>
</html>
info.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>这是一个伟大的咪咪</title>
</head>
<body>
一个人把自己看得太高,就会被别人看低;<br/>
一个人把自己看得低一点,就会被别人看高和尊重。<br/>
故意抬高自己是一种心虚,故意贬低自己也会矫揉造作。<br/>
平和的神情、真诚的态度和不在意别人眼中是否贵贱的肚量,是祥和生活的保证。<br/>
-俞敏洪
</body>
</html>
UserAction.java
package com.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Map;
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
@SuppressWarnings("unchecked")
public String execute() throws Exception {
// TODO Auto-generated method stub
ActionContext actionContext=ActionContext.getContext();
if(getName().equals("haige") && getPass().equals("haige")){
Map sessionMap = actionContext.getSession();
sessionMap.put("name", getName());
return SUCCESS;
}
else{
actionContext.put("tip", "用户名或密码不对!");
return ERROR;
}
}
}
CheckInterceptor.java(权限控制的拦截器)
package com.inter;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class CheckInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
public String intercept(ActionInvocation arg0) throws Exception {
ActionContext actionContext=arg0.getInvocationContext();
Map<?, ?> sessionMap = actionContext.getSession();
String user = (String)sessionMap.get("name");
if(user != null && user.equals("haige")){
return arg0.invoke();
}
actionContext.put("tip","请先登录!");
return Action.LOGIN;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="intercertor" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor" class="com.inter.CheckInterceptor"></interceptor>
</interceptors>
<action name="login" class="com.action.UserAction">
<result name="error">/login.jsp</result>
<result name="success">/loginsuccess.jsp</result>
</action>
<action name="chakan">
<result>/info.jsp</result>
<result name="login">/login.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</action>
</package>
</struts>
截图:
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>struts2 拦截器应用</title>
</head>
<body>
<h1>用户登录</h1>
<font color="red">${requestScope.tip}</font>
<s:form id="id" action="login">
<s:textfield name="name" label="用户名"></s:textfield>
<s:password name="pass" label="密码"></s:password>
<s:submit value="注册"></s:submit>
</s:form>
<a href=chakan.action>看咪咪^_^</a>
</body>
</html>
loginsuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>拦截器权限控制</title>
</head>
<body>
你已成功登录系统!<a href=chakan.action>看咪咪^_^</a>
</body>
</html>
info.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>这是一个伟大的咪咪</title>
</head>
<body>
一个人把自己看得太高,就会被别人看低;<br/>
一个人把自己看得低一点,就会被别人看高和尊重。<br/>
故意抬高自己是一种心虚,故意贬低自己也会矫揉造作。<br/>
平和的神情、真诚的态度和不在意别人眼中是否贵贱的肚量,是祥和生活的保证。<br/>
-俞敏洪
</body>
</html>
UserAction.java
package com.action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Map;
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name;
private String pass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
@Override
@SuppressWarnings("unchecked")
public String execute() throws Exception {
// TODO Auto-generated method stub
ActionContext actionContext=ActionContext.getContext();
if(getName().equals("haige") && getPass().equals("haige")){
Map sessionMap = actionContext.getSession();
sessionMap.put("name", getName());
return SUCCESS;
}
else{
actionContext.put("tip", "用户名或密码不对!");
return ERROR;
}
}
}
CheckInterceptor.java(权限控制的拦截器)
package com.inter;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class CheckInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
public String intercept(ActionInvocation arg0) throws Exception {
ActionContext actionContext=arg0.getInvocationContext();
Map<?, ?> sessionMap = actionContext.getSession();
String user = (String)sessionMap.get("name");
if(user != null && user.equals("haige")){
return arg0.invoke();
}
actionContext.put("tip","请先登录!");
return Action.LOGIN;
}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="intercertor" extends="struts-default">
<interceptors>
<interceptor name="loginInterceptor" class="com.inter.CheckInterceptor"></interceptor>
</interceptors>
<action name="login" class="com.action.UserAction">
<result name="error">/login.jsp</result>
<result name="success">/loginsuccess.jsp</result>
</action>
<action name="chakan">
<result>/info.jsp</result>
<result name="login">/login.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</action>
</package>
</struts>
截图:
相关文章推荐
- struts2如何使用拦截器进行用户权限控制
- 使用Struts2拦截器进行权限控制
- struts2如何使用拦截器进行用户权限控制实例
- Struts2中使用拦截器进行权限控制
- SSM项目,使用拦截器进行权限控制
- 拦截器权限控制使用Struts 拦截namespace进行权限控制-java教程
- 使用拦截器进行权限的控制
- Mvc 3 使用Attribute进行权限控制
- 在struts2.1中使用注解和拦截器实现权限细粒度控制
- 在struts2.1中使用注解和拦截器实现权限细粒度控制
- java struts 2 使用拦截器完成权限控制
- Struts 2读书笔记-----拦截器之示例:使用拦截器完成权限控制
- 使用CVSACL进行CVS权限访问控制(for Linux)
- Struts2使用过滤器和拦截器进行简单权限校验
- java编程中使用二进制进行权限或状态控制
- 使用Struts 拦截namespace进行权限控制
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- 使用Struts2的拦截器实现权限控制
- Struts2使用过滤器和拦截器进行简单权限校验
- 使用CVSNT进行权限控制