星空网 > 软件开发 > ASP.net

struts2的拦截器(Interceptor)与过滤器(Filter)

一.**与过滤器的区别:
  1.filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于Java本身的反射机制,这是两者最本质的区别。
  2.filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。
  3.Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。
  4.Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在 二.应用
filter:常用于系统权限管理(即用户访问某些页面之前,进行Filter权限检查);
 Interceptor:只是在程序访问Action之前进行拦截。常用于记录系统操作日志,或添加额外功能。
felter的三个实例:

(1)-------<利用filter进行中文字符处理>------------
1)
web. <filter>
<filter-name>encoding</filter-name>
<filter-class>
org.lxh.myzngt.filter.EncodingFilter
</filter-class>
  <init-param>
<param-name>charset</param-name>
<param-value>gbk</param-value>
</init-param>

</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>
private String[] doNotFilterURL;
?public void init(FilterConfig filterConfig) throws ServletException {
String params = filterConfig.getInitParameter("doNotFilterURL");
if (params != null) {
String urls[] = params.split(",");
doNotFilterURL = new String[urls.length];
for (int i = 0, size = urls.length; i < size; i++) {
doNotFilterURL[i] = urls[i];
}
}
}


HttpServletRequest req = (HttpServletRequest) request;
  String requestPath = req.getRequestURI(); //如:demo/login.action
  String contextRoot = req.getContextPath(); //如:demo
int length = contextRoot.length();
  String path = requestPath.substring(length); //如:/login.action
if (path != null && path.length() != 0) {
path = path.trim();
}

if (Constants.FIRST_LOGIN_URL.getStringValue().equals(path)) {
return true;
}

//获取请求的地址,比对不需要过滤的URL的数组doNotFilterURL。
boolean doNotFilter = false;
if (doNotFilterURL != null) {
for (String url : doNotFilterURL) {
if (url != null && path.contains(url.trim())) {
doNotFilter = true;
break;
}
}
}
//对不属于不用过滤的,查询数据表,看用户是否有权访问。若没,则返回提示用户无限访问页面。若有,则直接通过。
}



原标题:struts2的拦截器(Interceptor)与过滤器(Filter)

关键词:Struts

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

在境外开离岸账户:https://www.goluckyvip.com/tag/72646.html
开立个人人民币储蓄账户或结算账户:https://www.goluckyvip.com/tag/72648.html
援助计划:https://www.goluckyvip.com/tag/7265.html
怎么开境外帐户:https://www.goluckyvip.com/tag/72651.html
如何开外国账户:https://www.goluckyvip.com/tag/72658.html
跨境电商海外开户:https://www.goluckyvip.com/tag/72659.html
海南琼海市有什么旅游景点 琼海市的旅游景点:https://www.vstour.cn/a/362187.html
快手本地生活上线“吃喝免费试”活动 强化低价供给心智 :https://www.kjdsnews.com/a/1836309.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流