当前位置:首页 » 净水方式 » struts2配置过滤器

struts2配置过滤器

发布时间: 2021-03-11 22:50:03

㈠ struts2配置过滤器与拦截器

你在过滤器中 重定向的啊。我们这个项目是在 拦截器 中返回字符串,然后通过 struts.xml 跳转到 你要跳转的页面。。。。
代码:
这是配置的拦截器。
<!-- 只有admin 用户才能访问的action -->
<package name="onlyadmin" extends="struts-default">
<interceptors>
<!--定义一个名为admin的拦截器-->
<interceptor class="e.cuit.course.interceptor.AdminInterceptor"
name="admin" />
<!--定义一个包含权限检查的拦截器栈-->
<interceptor-stack name="adminInterceptor">
<!--配置内建默认拦截器-->
<interceptor-ref name="defaultStack" />
<!--配置自定义的拦截器-->
<interceptor-ref name="admin">
<param name="excludeMethods">list</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>

<default-interceptor-ref name="adminInterceptor" />
<global-results>
<result name="login">/user/userLogin.jsp</result>
</global-results>
【这是全局的result,你就晓得,当自定义拦截器返回login的时候,它就会跳转到你要跳转的页面了。】
<action name="admin" class="e.cuit.course.action.AdminAction">
</action>
<action name="mole" class="e.cuit.course.action.MoleAction">
<result name="addMole">/mole/moleadd.jsp</result>
<result name="addSuccess">/mole/suc.jsp</result>
<result name="listByPageSuccess">/page/molelist.jsp</result>
<result name="update">/mole/moleupdate.jsp</result>
<result name="updateSuccess">/mole/suc.jsp</result>
</action>

<action name="menu" class="e.cuit.course.action.MenuAction">
<result name="add">/menu/menuadd.jsp</result>
<result name="addSuccess">/menu/suc.jsp</result>
<result name="listByPageSuccess">/page/menulist.jsp</result>
<result name="update">/menu/menuupdate.jsp</result>
<result name="updateSuccess" type="redirectAction">
<param name="actionName">menu</param>
<param name="method">listByPage</param>
</result>
</action>
</package>
。。。。。。。。。。。。。。。。。。。。。。。。。。。
这就是自定义的拦截器:
package e.cuit.course.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.MethodFilterInterceptor;

import e.cuit.course.action.UserAction;
import e.cuit.course.pojo.User;

public class UserInterceptor extends MethodFilterInterceptor {
private static final long serialVersionUID = -4390311642665624081L;

private UserAction userAction = new UserAction();
@Override
public String doIntercept(ActionInvocation invocation) throws Exception {

ActionContext ctx = invocation.getInvocationContext();

Map<String ,Object> session = ctx.getSession();

User user = (User) session.get("user");
if (user == null) {
ctx.put("loginTip", "你还没有登录");
return Action.LOGIN;
}
return invocation.invoke();
}

public void setUserAction(UserAction userAction) {
this.userAction = userAction;
}
public UserAction getUserAction() {
return userAction;
}
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
应该差不多了,还有个system 的拦截器,差不多的结构。。要知道 你提交请求的时候,先叫由web。xml然后通过过滤器一层一层到 拦截器,也就是在你的逻辑前加一些 验证的东西,系统的拦截器有很多, invocation.invoke()就是一层一层去 触发拦截器,当系统 的拦截器和 自定义的拦截器 都通过了的时候 才回访问你的 逻辑 action 或者方法,这个叫做aop编程 。面向切面编程。

㈡ Struts2入口过滤器配置

本人试验了一下配置成*.action index.jsp是可行的,不过一般情况下是配置成/*的 然后结合版struts.properties文件里面的struts.action.extension(定义扩展名,例如权.do,.action等等,多个扩展名中间用逗号隔开)值使用,楼主你最好检查下你的服务器启动日志 看看项目是否正常启动。

㈢ struts2过滤器

WEB.xml中配置struts2的代码片段
<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>
'/*'是拦截所有的url,你这里可以配置你的过滤规则的啊(例如/*.jsp、/*_aaa.jsp等)回,但是一般不需答要修改的,改了以后,扩展起来会给你带来一些的不必要的麻烦的

㈣ struts2 自带过滤器

实际上,struts2中叫做拦截器它起到类似过滤器的作用但不是过滤器实际上,是一个核心控制器servlet

㈤ struts2怎么在web.xml配置过滤器过滤掉指定的url或者指定的url不过滤

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern> //这个 地方指定要过回滤的答url

</filter-mapping>

㈥ struts2配置过滤器问题

楼上发的是拦截器,不是过滤器,别误导人.
过滤器就是过滤器跟struts2没有什么直接关系.
基本配置满足一对filtre <--> filter-mapping就行了,如下:
<filter>
<filter-name>AuthFilter</filter-name><!--这个名字随便取-->
<filter-class>com.sofly.test.web.filer.AuthFilter</filter-class><!--你写的过滤器类全名-->
</filter>
<filter-mapping>
<filter-name>AuthFilter</filter-name><!--上面你取的那个名字->
<url-pattern>*.action</url-pattern><!--你需要过滤的东西-->
</filter-mapping>

㈦ 如何配置struts2的过滤器

你说的是拦截器吧
第一步:创建一个类实现Intercepter接口并实现其中方法
第二步:注册拦截器(在struts.xml)如:
<package name="cust"
="/cust"
extends="struts-default">
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="first"
class="com.interceptor.FirstInterceptor"/>
<interceptor name="second"
class="com.interceptor.SecondInterceptor"/>
<!-- 注册拦截器栈,将所有拦截器打包在一起 -->
<interceptor-stack name="mystack">
<interceptor-ref name="first"/>
<interceptor-ref name="second"/>
<!-- 引用自定义的拦截器时,会使struts2自带的拦截器失效
因此,要将默认的拦截器加入到自定义的拦截器栈中 -->
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!--第三步: 引用拦截器 ,

<action name="toUpdateCustomer"
class="com.action.ToUpdateCustomerAction"
method="execute">
<!-- 引用拦截器 ,
<interceptor-ref name="first"/>
<interceptor-ref name="first"/>-->
<!-- 引用拦截器栈,会一次将所有的拦截器引用 -->
<interceptor-ref name="mystack"/>
<result name="success">
/WEB-INF/cust/update_customer.jsp
</result>
</action>
</package>
供参考

㈧ web.xml配置struts2过滤器后,无法显示jsp

struts2的过滤器改成这个把<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

现在一般用这个
然后在web.xml里面看看设置了welcomefilelist是这个页面版了吗
然后看看这权个页面的位置是在web根目录下了吗
如果还不行,注册一个action,看看能不能debug进java代码
然后应该就差不多了

㈨ struts2 拦截器和过滤器的作用是什么

拦截器的工作原理:
当接收到一个httprequest ,
a) 当外部的httpservletrequest到来时
b) 初始到了servlet容器 传递给一个标准的过滤器链
c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy
d) ActionProxy将会通过ConfigurationManager来查找配置struts.xml
i. 下一步将会 通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前)
ii. Interceptor做一些拦截或者初始的工作
e) 一旦action返回,会查找相应的Result
f) Result类型可以是 jsp或者freeMark 等
g) 这些组件和ActionMapper一起返回给请求的url(注意拦截器的执行顺序)
h) 响应的返回是通过我们在web.xml中配置的过滤器
i) 如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocal ActionContext;如果ActionContextCleanUp不使用,则将会去清理sreadlocals。
拦截器实现原理:

1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

过滤器的作用:
(1)执行Actions
过滤器通过ActionMapper对象,来判断是否应该被映射到Action.如果mapper对象指示他应该被映射,过滤链将会被终止,然后Action被调用。这一点非常重要,如果同时使用SiteMesh filter,则SiteMesh filter应该放到该过滤器前,否则Action的输出将不会被装饰。
(2)清除ActionContext
过滤器为了确保内存溢出,会自动的清除ActionContext。这可能会存在一些问题,在和其它的框架集成时,例如SiteMesh。ActionContextCleanUp提供了怎么处理这些问题的一些信息。
(3)维护静态内容
过滤器也会维护在Struts2中使用的一些公共的静态的内容,例如JavaScript文件,CSS文件等。搜索/struts/*范围内的请求,然后将/struts/后面的值映射到一些struts的公共包中,也可以在你的类路径中搜索。默认情况下会去查找以下包:org.apache.struts2.static.template。这样你只用请求/struts/xhtml/styles.css,XHTML UI主题默认的样式表将会被返回。同样,AJAX UI组件需要的JavaScript文件,也可以在org.apache.struts2.static包中被找到。如果你想加入其它被搜索的包,在web.xml中设置filter时,通过给"actionPackages"初始参数一个逗号隔开的包列表值来设定。

㈩ 配置了CAS过滤器之后Struts2的过滤器失效了

http://www.2cto.com/Article/201310/250927.html

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239