关闭

使用拦截器进行权限控制

标签: strutsstruts2.0
216人阅读 评论(0) 收藏 举报
分类:

 代码:

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>

截图:








0
0
查看评论

一句话总结,什么是权限控制(即登录控制)、拦截器

权限控制(即登录控制),就是判断用户请求的资源(即发起一个http url请求http://127.0.0.1:8080/testProject/authuser/add)是否合法: 如果合法,就,虽然一样会被拦截器拦截,但是不被拦截到其他http url(即让用户去登录的登录界面),而是执行用户...
  • Ideality_hunter
  • Ideality_hunter
  • 2016-11-29 17:27
  • 315

Spring MVC拦截器实现session控制,权限控制

/**  *  * @author geloin  * @date 2012-3-27 下午2:29:35  */ package com.geloin.spring.interceptor; import java.io.PrintWri...
  • wyj710916422
  • wyj710916422
  • 2014-10-09 10:49
  • 1527

JavaWEB采用Filter的权限管理

1.权限查看及管理界面代码:   权限查看及管理              ${param.username}的权限是: ${auth.displ...
  • sinat_35010585
  • sinat_35010585
  • 2016-09-06 10:15
  • 1079

自定义注解+拦截器实现权限控制

今天刚学习了通过自定义注解+拦截器实现权限控制,自己花了点时间整理,发到网站同网友交流分享。 一、定义一个自定义注解类 import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** ...
  • v123411739
  • v123411739
  • 2014-05-15 18:00
  • 14624

基于拦截器和注解实现页面的访问权限控制

在 web 系统中,经常需要对每个页面的访问进行权限控制。譬如,要进入 xx 公司的开放 平台, isv 需要注册成为开发者,开发者的状态有审核中、有效、冻结、拒绝、删除等状态,然后根据不同的状态,开发者可以访问不同的页面。只有有...
  • A350204530
  • A350204530
  • 2016-12-12 17:33
  • 1313

SpringMVC拦截器(资源和权限管理)

1.DispatcherServlet     SpringMVC具有统一的入口DispatcherServlet,所有的请求都通过DispatcherServlet。     DispatcherServlet是前置控制器,配置在we...
  • tonytfjing
  • tonytfjing
  • 2014-09-11 16:04
  • 201097

使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)

使用拦截器或者AOP实现权限管理(OA系统中实现权限控制)
  • canot
  • canot
  • 2016-02-08 21:22
  • 6887

struts2如何使用拦截器进行用户权限控制

大多数网站会设置用户权限,如过滤非法用户,用户不登录时不能进行访问,或者设置访问的权限,如部分内容仅对VIP开放等等,这些权限的控制都可以用struts2中的拦截器来实现。 下面通过一个简单的Demo来模拟这种用户权限控制的实现流程,设定三种不同身份的用户,commen为普通用户,VIP为会员用户...
  • weixin_36380516
  • weixin_36380516
  • 2017-05-08 20:01
  • 1770

Struts2中使用拦截器进行权限控制

拦截器:interceptor进行身份验证,判断是否是合法用户   1:jsp(登录) String path = request.getContextPath(); String basePath = request.getScheme()+"://"...
  • pangqiandou
  • pangqiandou
  • 2016-10-30 10:05
  • 244

Spring MVC 使用拦截器优雅地实现权限验证功能

在上一篇 Spring AOP 实现功能权限校验功能 中虽然用AOP通过抛异常,请求转发等勉强地实现了权限验证功能,但感觉不是那么完美,应该用拦截器来实现才是最佳的,因为拦截器就是用来拦截请求的,在请求层面进行权限验证时最好的时机。假设下面的请求需要进行权限验证,在请求中通过参数params指定必...
  • houxuehan
  • houxuehan
  • 2016-06-27 16:06
  • 3973
    个人资料
    • 访问:415831次
    • 积分:11632
    • 等级:
    • 排名:第1564名
    • 原创:772篇
    • 转载:6篇
    • 译文:0篇
    • 评论:90条
    最新评论