在STRUTS2前进行处理FILTER处理

在STRUTS2的FILTER之前 比如StrutsPrepareAndExecuteFilter之前放一个FILTER
可以进行reponse.sendRedirect操作
或者request.getRequestDispatcher().forward操作
如果forward以后要继续经过struts2的FILTER 那么STRUTS2的FILTER要这样配置


<filter-mapping>
<filter-name>StrutsPrepareAndExecuteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>


或者你可以把你的FILTER定义在
struts2的prepareFilter和excuteFilter之间

例子

public class SwpFilter extends StrutsPrepareAndExecuteFilter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse reponse = (HttpServletResponse) res;
//在这里进行URLREWRITE的操作
if (request.getRequestURI().equals("/aa")) {
request.getRequestDispatcher("swp/getResource?type=page&id=609&edit=true").forward(req,
res);
return;
}
if (request.getServletPath().startsWith("/fckeditor")) {
super.doFilter(req, res, chain);
} else if (request.getServletPath().equals("/manager/")) {
reponse.sendRedirect(request.getRequestURI() + "manager.jsp");
} else if (request.getServletPath().equals("/login")) {
reponse.sendRedirect("manager/login.jsp");
} else if (request.getServletPath().equals("/login/")) {
reponse.sendRedirect("../manager/login.jsp");
} else {
super.doFilter(req, res, chain);// 调用父类的方法
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值