- 浏览: 1646540 次
- 性别:
- 来自: 福州
文章分类
- 全部博客 (583)
- strust2.0 (14)
- hibernate2.0 (5)
- java (13)
- javaScript (59)
- AJAX (8)
- TFS (6)
- 其它 (20)
- CSS (23)
- asp (18)
- Dojo (5)
- 项目管理 (3)
- SQLServer (25)
- oracle (26)
- .NET (221)
- 开源系统 (6)
- 常识 (41)
- 软件架构 (1)
- My SQL (1)
- SilverLight (10)
- Flex (1)
- window7 (1)
- 网络安全 (2)
- CMS (1)
- ECShop (4)
- 邮件系统 (9)
- Linq (0)
- 淘宝店铺经营宝典 (0)
- flash插件 (1)
- Hubble.net全文检索 (1)
- 在线编辑器 (1)
- 正则表达式 (1)
- 创业 (1)
- asp.net mvc (1)
- 全文检索 (0)
- 全文检索 HubbleDotNet (1)
- Android (27)
- TFS bin (1)
最新评论
-
z小小Jean:
有具体的解决方法吗
用命名imp导入DMP时报无法解析指定的连接标识符的解决办法 -
njoiop:
这些都是常用接口,IP地址、手机归属和身份证查询接口,基站定位 ...
IP地址、手机归属和身份证查询接口 -
Fs_sky:
那导出DMP如何包含序列等其他东西?
在plsql中如何导出dmp文件 -
qiywtc:
请问该怎么判断视频的格式再选择对应的播放格式来播放啊?
asp.net各种类型视频播放代码(全) -
xinghenhouzi:
楼主说的版本不同无法导入导出是什么意思?我用10g的exp.e ...
在plsql中如何导出dmp文件
示例需求:
要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。
一、页面部分
1、登陆页面代码(login.jsp)
2、登陆成功页面(welcome.jsp)
3、登陆失败页面(error.jsp)
4、和权限有关的几个显示页面
(add.jsp)
(show.jsp)
(qurey.jsp)
二、Action部分(LoginAction.java)
三、拦截器部分(AuthorityInterceptor.java)
四、配置文件部分
(struts.xml)
(struts.properties)
五、国际化资源文件(messageResouce.properties)
转自:http://aumy2008.iteye.com/blog/146952
要求用户登录,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。
一、页面部分
1、登陆页面代码(login.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="loginPage" /></title> </head> <body> <!-- 使用form标签生成表单元素 --> <s:form action="login"> <s:textfield name="username" label="%{getText('user')}" /> <s:textfield name="password" label="%{getText('pass')}" /> <s:submit value="%{getText('login')}" /> </s:form> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="loginPage" /></title> </head> <body> <!-- 使用form标签生成表单元素 --> <s:form action="login"> <s:textfield name="username" label="%{getText('user')}" /> <s:textfield name="password" label="%{getText('pass')}" /> <s:submit value="%{getText('login')}" /> </s:form> </body> </html>
2、登陆成功页面(welcome.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="succPage" /></title> <s:head /> </head> <body> <s:text name="succTip" /> <br /> <!-- 欢迎,${sessionScope.user},您已经登录! ${sessionScope.pass}--> <p /> <s:a href="show.action">show</s:a> <p /> <s:a href="add.action">add</s:a> <p /> <s:a href="qurey.action">qurey</s:a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="succPage" /></title> <s:head /> </head> <body> <s:text name="succTip" /> <br /> <!-- 欢迎,${sessionScope.user},您已经登录! ${sessionScope.pass}--> <p /> <s:a href="show.action">show</s:a> <p /> <s:a href="add.action">add</s:a> <p /> <s:a href="qurey.action">qurey</s:a> </body> </html>
3、登陆失败页面(error.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="errorPage" /></title> </head> <body> <s:text name="failTip" /> <p /> <s:a href="login.jsp">return</s:a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="errorPage" /></title> </head> <body> <s:text name="failTip" /> <p /> <s:a href="login.jsp">return</s:a> </body> </html>
4、和权限有关的几个显示页面
(add.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="addPage"/></title> </head> <body> <s:text name="addTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="addPage"/></title> </head> <body> <s:text name="addTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
(show.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="showPage"/></title> </head> <body> <s:text name="showTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="showPage"/></title> </head> <body> <s:text name="showTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
(qurey.jsp)
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="qureyPage"/></title> </head> <body> <s:text name="qureyTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
<%@ page language="java" contentType="text/html; charset=GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title><s:text name="qureyPage"/></title> </head> <body> <s:text name="qureyTip"/> <p /> <s:a href="login.jsp">return login</s:a> </body> </html>
二、Action部分(LoginAction.java)
public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1030294046920869257L; private String username; private String password; // 处理用户请求的execute方法 public String execute() throws Exception { if (isInvalid(getUsername())) return INPUT; if (isInvalid(getPassword())) return INPUT; if ((getUsername().equals("mm") || getUsername().equals("aumy")) && getPassword().equals("111")) { // 通过ActionContext对象访问Web应用的Session ActionContext.getContext().getSession().put("user", getUsername()); ActionContext.getContext().getSession().put("pass", getPassword()); System.out.println(getUsername() + "----" + getPassword()); return SUCCESS; } else { System.out.println(getUsername() + "----" + getPassword()); return ERROR; } } private boolean isInvalid(String value) { return (value == null || value.length() == 0); } public String add() { return SUCCESS; } public String show() { return SUCCESS; } public String qurey() { return SUCCESS; } 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; } } public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1030294046920869257L; private String username; private String password; // 处理用户请求的execute方法 public String execute() throws Exception { if (isInvalid(getUsername())) return INPUT; if (isInvalid(getPassword())) return INPUT; if ((getUsername().equals("mm") || getUsername().equals("aumy")) && getPassword().equals("111")) { // 通过ActionContext对象访问Web应用的Session ActionContext.getContext().getSession().put("user", getUsername()); ActionContext.getContext().getSession().put("pass", getPassword()); System.out.println(getUsername() + "----" + getPassword()); return SUCCESS; } else { System.out.println(getUsername() + "----" + getPassword()); return ERROR; } } private boolean isInvalid(String value) { return (value == null || value.length() == 0); } public String add() { return SUCCESS; } public String show() { return SUCCESS; } public String qurey() { return SUCCESS; } 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; } }
三、拦截器部分(AuthorityInterceptor.java)
public class AuthorityInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 1358600090729208361L; //拦截Action处理的拦截方法 public String intercept(ActionInvocation invocation) throws Exception { // 取得请求相关的ActionContext实例 ActionContext ctx=invocation.getInvocationContext(); Map session=ctx.getSession(); //取出名为user的session属性 String user=(String)session.get("user"); //如果没有登陆,或者登陆所有的用户名不是aumy,都返回重新登陆 if(user!=null && user.equals("aumy")){ return invocation.invoke(); } //没有登陆,将服务器提示设置成一个HttpServletRequest属性 ctx.put("tip","您还没有登录,请登陆系统"); return Action.LOGIN; } } public class AuthorityInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 1358600090729208361L; //拦截Action处理的拦截方法 public String intercept(ActionInvocation invocation) throws Exception { // 取得请求相关的ActionContext实例 ActionContext ctx=invocation.getInvocationContext(); Map session=ctx.getSession(); //取出名为user的session属性 String user=(String)session.get("user"); //如果没有登陆,或者登陆所有的用户名不是aumy,都返回重新登陆 if(user!=null && user.equals("aumy")){ return invocation.invoke(); } //没有登陆,将服务器提示设置成一个HttpServletRequest属性 ctx.put("tip","您还没有登录,请登陆系统"); return Action.LOGIN; } }
四、配置文件部分
(struts.xml)
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <!--不受权限控制的Action请求配置--> <package name="non-authority" extends="struts-default" > <action name="login" class="com.aumy.struts.example.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> <action name="qurey" class="com.aumy.struts.example.LoginAction" method="qurey"> <result name="success">/qurey.jsp</result> </action> </package> <!--受权限控制的Action请求配置--> <package name="authority" extends="struts-default"> <interceptors> <!--定义一个名为authority的拦截器--> <interceptor class="com.aumy.struts.example.intercepter.AuthorityInterceptor" name="authority"/> <!--定义一个包含权限检查的拦截器栈--> <interceptor-stack name="mydefault"> <!--配置内建默认拦截器--> <interceptor-ref name="defaultStack"/> <!--配置自定义的拦截器--> <interceptor-ref name="authority"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="mydefault" /> <!--定义全局Result--> <global-results> <result name="login">/login.jsp</result> </global-results> <action name="show" class="com.aumy.struts.example.LoginAction" method="show"> <result name="success">/show.jsp</result> </action> <action name="add" class="com.aumy.struts.example.LoginAction" method="add"> <result name="success">/add.jsp</result> </action> </package> </struts> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <!--不受权限控制的Action请求配置--> <package name="non-authority" extends="struts-default" > <action name="login" class="com.aumy.struts.example.LoginAction"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcome.jsp</result> </action> <action name="qurey" class="com.aumy.struts.example.LoginAction" method="qurey"> <result name="success">/qurey.jsp</result> </action> </package> <!--受权限控制的Action请求配置--> <package name="authority" extends="struts-default"> <interceptors> <!--定义一个名为authority的拦截器--> <interceptor class="com.aumy.struts.example.intercepter.AuthorityInterceptor" name="authority"/> <!--定义一个包含权限检查的拦截器栈--> <interceptor-stack name="mydefault"> <!--配置内建默认拦截器--> <interceptor-ref name="defaultStack"/> <!--配置自定义的拦截器--> <interceptor-ref name="authority"/> </interceptor-stack> </interceptors> <default-interceptor-ref name="mydefault" /> <!--定义全局Result--> <global-results> <result name="login">/login.jsp</result> </global-results> <action name="show" class="com.aumy.struts.example.LoginAction" method="show"> <result name="success">/show.jsp</result> </action> <action name="add" class="com.aumy.struts.example.LoginAction" method="add"> <result name="success">/add.jsp</result> </action> </package> </struts>
(struts.properties)
struts.custom.i18n.resources=message.messageResouce struts.custom.i18n.resources=message.messageResouce (web.xml) Java代码 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts test</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app> <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts test</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>
五、国际化资源文件(messageResouce.properties)
loginPage=Login Page errorPage=Error Page succPage=Welcome Page failTip=Sorry,You can't log in! succTip=welcome,you has logged in! user=User Name pass=User Pass login=Login showPage=Show Page showTip=show a example! addPage=Add Page addTip=add a example! qureyPage=Qurey Page qureyTip=qurey a example!
转自:http://aumy2008.iteye.com/blog/146952
发表评论
-
[转]java字符串格式化:String.format()方法的使用
2012-04-12 15:50 1236常规类型的格式化 String类的format()方法用于 ... -
一种常用的权限控制算法的实现
2010-01-06 15:39 1062这里笔者介绍一种很常 ... -
使用MyEclipse6.0 工具Create a new connection driver (SQL SERVER 2005)
2009-09-05 11:31 17371..如果你同时安装2000和2005请2者使用 命名实例 安 ... -
启动MyEclipse时报JVM Terminated. Exit Code=-1 的解决办法
2009-09-04 09:53 3064出现的错误信息: JVM terminated. Exit c ... -
在myeclipse中连接oracle数据库的配置
2009-05-14 18:11 3217选择myeclipse Hibernate perspecti ... -
使用HttpSessionBindingListener来统计在线人数
2009-05-11 18:02 1630Session代表客户的会话过程,客户登录时,往Session ... -
appfuse是什么
2009-02-24 11:10 1256一、Appfuse简介 Appfuse是Matt Raibl ... -
java 出现乱码一种解决的办法
2009-02-19 12:06 1535修改下tomcat下conf文件夹下面的server.xml文 ... -
MyEclipse很有用的快捷键
2008-09-13 23:24 1279Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其 ... -
Struts2+spring2+hibernate3整合方案
2008-07-23 13:41 2069Struts2+spring2+hibernate3整合方案 ... -
java(Web)中相对路径,绝对路径问题总结
2008-07-23 11:19 2053java(Web)中相对路径,绝 ... -
differences between Request Attributes and Request
2008-07-05 14:28 1373HttpServletRequest类既有getAttribu ...
相关推荐
综上所述,通过Struts2的拦截器,我们可以实现高效且可扩展的权限控制系统。在`Struts2_Authority`压缩包文件中,可能包含了实现上述功能的示例代码,包括自定义拦截器的实现、配置文件以及相关的Action和视图文件,...
"基于Struts2拦截器的权限控制.doc"文档很可能是提供了一个具体的案例,详细讲解了如何创建并使用拦截器进行权限控制。文档可能会涵盖以下内容: 1. 创建自定义拦截器类,实现`Interceptor`接口,重写`intercept()`...
通过这样的实践,你将更好地掌握Struts2拦截器的配置和使用,从而实现用户权限控制以及其他业务需求。 总结起来,Struts2的拦截器机制是其强大功能之一,它使得开发者能够轻松地在Action执行流程中插入自定义逻辑。...
在压缩包文件`Struts2_Interceptor`中,可能包含了关于Struts2拦截器使用的示例代码、解释文档或者教程,你可以进一步研究这些资源,以便更深入地理解并掌握Struts2拦截器的用法。学习如何创建自定义拦截器,以及...
本文将深入探讨Struts2的拦截器使用,结合实例和源码分析,帮助你更好地理解和运用这一特性。 一、拦截器的概念与作用 拦截器是Struts2框架的核心组件之一,它是在动作执行前后插入的一段代码,能够对请求进行...
3. **配置拦截器**:拦截器可以通过Struts2配置文件或注解进行配置,指定在哪些Action上使用哪些拦截器。 ### 二、单个Action配置拦截器实例 1. **创建拦截器**:首先,我们需要创建一个实现了`Interceptor`接口的...
本示例将探讨如何在Struts2中使用拦截器。 首先,我们需要理解Struts2拦截器的工作原理。拦截器是一个实现了`Interceptor`接口的Java类,它们按照指定的顺序组成一个拦截器栈。当请求到达控制器时,Struts2会依次...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要组件,尤其是在权限控制方面。本文将深入探讨Struts2拦截器如何帮助我们实现精细的权限控制,并通过实际例子进行说明。 首先,理解Struts2...
这个“Struts2简单的拦截器示例”是为初学者设计的,旨在帮助理解如何在Struts2中创建和使用拦截器。 首先,我们来理解什么是拦截器。在Struts2中,拦截器是一个实现了`Interceptor`接口或者继承自`...
在这个“struts2拦截器示例”中,你将找到一个简单的配置,展示了如何在Tomcat服务器上部署一个使用了Struts2拦截器的项目。这个示例可能包含了以下内容:Action类、拦截器实现、Struts2配置文件以及对应的JSP页面。...
1. **内置拦截器**:Struts2提供了多种内置拦截器,例如`modelDriven`、`servletConfig`、`chain`、`debugging`等,这些拦截器已经实现了常用的功能,可以直接在配置文件中引用使用。 2. **自定义拦截器**:对于...
在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如日志记录、权限检查、数据验证等操作,极大地提高了代码的复用性和可维护性。 首先,我们需要理解拦截器的工作原理。在Struts2框架...
总结一下,本示例通过Struts2的拦截器实现了权限控制功能,同时利用AJAX提供了更好的用户体验。通过JSP页面展示反馈信息,使得用户能即时了解到他们的操作是否被授权。这个例子不仅展示了Struts2拦截器的灵活性,还...
Struts2的拦截器是一种AOP(面向切面编程)的概念,它在Action调用前后执行特定的逻辑,如日志记录、权限验证、数据校验等。拦截器通过配置在struts.xml或struts-plugin.xml文件中,按照定义的顺序进行调用。每个...
拦截器是Struts2框架中的一个重要组成部分,它们在Action调用前后执行,可以用于实现各种功能,如日志、事务管理以及我们的重点——权限拦截。 权限拦截是Web应用安全机制的重要一环,它确保只有具备特定权限的用户...
这篇博客文章“struts2 拦截器的使用(继承抽象拦截器)”探讨了如何通过继承Struts2的抽象拦截器来创建自定义拦截器。 首先,让我们理解拦截器的基本概念。在Struts2中,拦截器是基于Java的动态代理机制实现的,...
拦截器是Struts2框架的核心组件之一,它允许开发者在动作执行前后插入自定义逻辑,实现如权限验证、日志记录、性能优化等多种功能。在"Struts2 拦截器注解"这个主题中,我们将深入探讨如何利用注解来简化拦截器的...
而`Struts2.782`可能是Struts2的一个版本,其中包含了框架的核心库和示例代码,可以帮助进一步理解和学习拦截器的使用。 通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器...
### Struts2拦截器的使用 ...使用Struts2的拦截器机制,我们可以轻松地控制用户的访问权限,并实现更加安全的Web应用开发。希望这篇文档能帮助读者更好地理解Struts2拦截器的使用及其在实际开发中的作用。
Struts拦截器是Java Web开发中的重要概念,尤其在基于Struts 2框架的应用中扮演着核心角色。这个"struts拦截器的例子"提供了一个学习和理解拦截器工作原理的起点,非常适合对这一主题感兴趣的初学者。 Struts 2框架...