- 浏览: 286859 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
cheetah_ysc:
不错不错,我喜欢!
Java固定时间间隔执行 -
voyage_mh:
阿选百度竟然一下可以吧你百度出来
使用DWR注解Annotation
JSP请求(login.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
function abc(id){
var buttonObj = document.getElementById(id);
buttonObj.style.color="red";
}
function efg(id){
var buttonObj = document.getElementById(id);
buttonObj.style.color="black";
}
</script>
</head>
<body>
<div style="color:red" align="center">${requestScope.tip}</div>
<form action="login.action" method="post">
<table align="center">
<caption><h2>用户登录</h2></caption>
<tr>
<td style="font-style: inherit;color: green">用户名:<input type="text" name="username" style="color: red;background: #fffddd" /></td>
</tr>
<tr>
<td style="font-style: inherit;color: green">密 码:<input type="password" name="password" style="color: red;background: #fffddd"/></td>
</tr>
<tr align="center">
<td colspan="2"><input id="1" onmouseover="javascript:abc(this.id)" onmouseout="javascript:efg(this.id)" style="color: black" type="submit" value="登录"/>
<input type="reset" id="2" onmouseover="javascript:abc(this.id)" onmouseout="javascript:efg(this.id)" style="color: black" value="重填" /></td>
</tr>
</table>
</form>
<div align="center"><a href="viewBook.action">
查看图书</a><div>
</body>
</html>
struts.xml文件
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
<package name="login" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="authority" class="com.lbx.interceptor.AuthorityInterceptor" />
</interceptors>
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<action name="login" class="com.lbx.action.LoginAction">
<result>/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="viewBook">
<!-- 返回success视图名时,转入/WEB-INF/jsp/viewBook.jsp页面 -->
<result>/viewBook.jsp</result>
<!-- 拦截器一般配置在result元素之后! -->
<interceptor-ref name="defaultStack"/>
<!-- 应用自定义拦截器 -->
<interceptor-ref name="authority"/>
</action>
</package>
</struts>
User类
package com.lbx.model;
public class User {
private String username;
private String password;
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;
}
}
过滤器(实现AbstractInterceptor接口)
package com.lbx.interceptor;
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;
@SuppressWarnings("serial")
public class AuthorityInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
//取得相关的ActionContext实例
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
String user = (String)session.get("user");
if(user!=null && user.equals("libinxuan")){
return invocation.invoke();
}
ctx.put("tip", "你还没有登录,请输入libinxuan登录系统");
return Action.LOGIN;
}
}
Action
package com.lbx.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class LoginAction extends ActionSupport {
private String username;
private String password;
// 封装处理结果的tip属性
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;
}
@Override
public String execute() throws Exception {
Thread.sleep(1500);
if (getUsername().equals("libinxuan")) {
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
session.put("user", getUsername());
return SUCCESS;
} else {
return ERROR;
}
}
}
error.jsp部分代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<s:debug></s:debug>
您不能登录!<br />
<a href="viewBook.action">查看图书</a>
</body>
</html>
success.jsp部分代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="ss" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<ss:debug></ss:debug>
您已经登录!<br />
<a href="viewBook.action">查看图书</a>
</body>
</html>
viewBook.jsp部分代码
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %>
<!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>
<h3>作者的图书:</h3>
Java<br />
Java EE<br />
Ajax<br />
</body>
</html>
发表评论
-
Struts2类型转换
2010-12-17 14:46 13541.自定义类型转换器 第一步:编写自定义的转换器类 ... -
Struts2的基本原理
2010-12-17 14:35 1212Struts2 的基本工作流程 Struts2框架是由 ... -
Strrts2基于Annotation的输入验证
2010-10-18 17:35 1163客户端jsp请求Action代码 <%@ page ... -
Struts2异常处理
2010-10-18 12:28 1320异常映射分为两种:局部异常映射,全局异常映射。局部异常映射会 ... -
Struts2向结果传参数
2010-10-15 11:43 1909JSP请求页面(传参) &l ... -
Struts2动态指定结果
2010-10-14 22:32 1255Jsp反问页面 <%@ page language= ... -
Strut2中Action的Result类型
2010-10-14 22:16 1596type="dispatcher" 只是跳 ... -
Web中request,session,application的获取(1)
2010-10-14 17:51 1109jsp请求 <%@ page language=&q ... -
文件下载(struts2 Action)
2010-10-10 11:34 1718客户端jsp请求Actin <%@ page lan ... -
文件下载(超链接)
2010-10-10 11:09 1086文件下载有时候很简单,直接通过一个超链接就可以实现文件下载(注 ... -
Struts2多文件上传
2010-10-10 00:03 895可以是数组也可以是list和map jsp请求代码 A ... -
Struts2上传文件通过配置文件实现文件过滤
2010-10-09 18:07 3247客户端端jsp请求 <%@ page content ... -
Struts2上传文件手动实现文件过滤
2010-10-09 17:10 2892在实现了上传的功能的情况下,再加一点点代码就可以实现手动文件 ... -
Struts2上传文件(2)
2010-10-09 14:08 838html请求 Action处理(和前面那个上传基本一样 ... -
Struts2上传文件
2010-10-09 13:31 1073struts上传需要的jar包 ... -
Action基本的验证(校验规则文件)
2010-10-06 10:47 979客户端jsp请求 <%@ page language= ... -
Action基本的验证
2010-10-06 10:12 800JSP请求 <%@ page language=&qu ... -
使用action属性接收参数,中文问题
2010-10-05 16:08 1135客户端JSP请求(这里可 ... -
使用模型驱动来接收参数
2010-10-05 16:02 1753一个简单的javaBean来封装将要请求的参数可以是VO,属性 ... -
使用域模型接收参数并封装
2010-10-05 15:57 946JSP请求代码,传了参数 <%@ page langu ...
相关推荐
在这个“Struts2拦截器实现权限控制demo”中,我们将深入探讨如何利用拦截器来实现细粒度的用户权限管理。 首先,我们需要了解Struts2中的拦截器工作原理。拦截器是基于Java的动态代理模式实现的,它们按照配置的...
在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...
Struts2 中拦截器与过滤器的区别及执行顺序 Struts2 中的拦截器(Interceptor)和过滤器(Filter)是两个不同的概念,虽然它们都可以影响请求的处理过程,但它们的作用域、执行顺序和实现机制都有所不同。 拦截器...
通过对Struts 2框架中过滤器和拦截器的核心区别以及具体应用场景的分析,我们可以看到,虽然两者都能实现类似的功能(如权限验证),但它们的工作方式和技术基础存在明显差异。选择合适的技术方案取决于实际项目的...
2. **拦截器链**:在Struts2中,多个拦截器可以形成一个拦截器链,每个拦截器按照定义的顺序依次执行。如果所有拦截器都允许Action执行,那么Action的结果将被传递到下一个拦截器,直到整个链执行完毕。 ### 二、...
在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的基本概念。拦截器是在Action调用之前和之后执行的一段代码,可以用来做日志记录、权限检查...
拦截器是基于Java的动态代理机制实现的,它可以看作是一个过滤器,它在Action调用前后执行一些额外的任务,如日志记录、权限检查、数据验证等。在Struts2中,拦截器工作在Action和结果(Result)之间,形成一个拦截...
在这个场景中,我们将重点讨论如何使用Struts2的拦截器来实现权限控制,结合AJAX和JSP技术,为用户提供更流畅的交互体验。 首先,我们了解下Struts2拦截器的工作原理。拦截器就像一个过滤器,位于Action调用之前和...
拦截器是Struts2框架的核心组件之一,用于增强应用的功能,比如权限验证、日志记录、数据校验等。 在Struts2中,每个Action执行前都会经过一系列预定义或自定义的拦截器。这些拦截器按照配置的顺序逐个执行,每个...
这个名为"Struts2编写的通用(拦截器,过滤器)Filter"的项目,主要目标是防止用户非法访问未授权的页面,确保只有登录用户才能访问特定的资源。 **拦截器(Interceptor)** 拦截器是Struts2框架的核心特性之一,它...
- **拦截器**:在Struts2框架中,拦截器是基于AOP(面向切面编程)的一种设计,主要负责处理请求和响应之间的一系列操作,如日志记录、权限验证、事务管理等。拦截器工作在Action调用之前和之后,形成了一个执行链...
在Struts2中,拦截器是实现业务逻辑控制和处理流程的重要组件,它们可以添加额外的功能,如日志记录、权限检查、事务管理等,而不干扰实际的业务操作。本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的...
Struts2还提供了一些抽象类如`AbstractInterceptor`和`MethodFilterInterceptor`,简化了拦截器的实现过程,例如`MethodFilterInterceptor`允许开发者指定要过滤的Action方法。 4. **定义拦截器示例** 下面是一个...
拦截器是Struts2的核心特性之一,它们在Action调用之前和之后执行,扮演着类似于过滤器的角色,允许我们实现诸如日志记录、权限检查、事务管理等通用功能。在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器...
### Struts2拦截器的使用 ...使用Struts2的拦截器机制,我们可以轻松地控制用户的访问权限,并实现更加安全的Web应用开发。希望这篇文档能帮助读者更好地理解Struts2拦截器的使用及其在实际开发中的作用。
拦截器是Struts2框架的一个重要组成部分,它们是基于责任链模式实现的,可以看作是过滤器的扩展,提供了更多的控制和灵活性。在请求到达Action之前,一系列的拦截器会按照配置的顺序依次执行,之后在Action执行完毕...
其中,拦截器(Interceptor)是Struts2中的一个关键特性,用于扩展框架的功能,实现诸如事务管理、权限控制、输入验证等功能。 #### Struts2的处理流程 1. **客户端请求**: 当客户端发起HTTP请求时,请求首先到达...
### Struts2拦截器详解 #### 一、拦截器的概念与意义 拦截器(Interceptor)在Struts2框架中扮演着至关重要的角色。它的工作原理类似于过滤器(Filter),能够拦截用户请求,并对其进行预处理或者后处理。拦截器...
Struts权限过滤器是Java Web开发中用于控制用户访问权限的关键组件,主要应用于基于Struts 2框架的应用程序。在Struts 2框架中,过滤器扮演着重要的角色,它们在HTTP请求到达Action之前进行拦截,对请求进行预处理,...