以下代码为项目期间,使用fiter过滤器控制统一编码和防止非法url进入
package com.tongtech.bjvsp.sysmng.filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.tongtech.bjvsp.sysmng.constant.ConstantServlet;
public class EncodingFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
// Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
// Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
boolean isValid = true;
String uriStr = httpRequest.getRequestURI();
if (uriStr.indexOf(".jsp") == -1 && uriStr.indexOf(".do") == -1) {
isValid = true;
} else if (uriStr.indexOf("login.jsp") == -1 && uriStr.indexOf("login.do") == -1
&& httpRequest.getSession().getAttribute("UserWraper") == null) {
isValid = false;
}
if (isValid) {
request.setCharacterEncoding("GBK");
filterChain.doFilter(request, response);
}
else {
request.setCharacterEncoding("GBK");
PrintWriter out = httpResponse.getWriter();
if( uriStr.indexOf("index.jsp") == -1 ) {
out.write("<script>window.parent.parent.location.href='../../login.jsp'</script>");
} else {
out.write("<script>window.parent.parent.location.href='../login.jsp'</script>");
}
}
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
// Clean up resources
public void destroy() {
}
}
out.write内的内容为当未登录时或Session过期时通过地址栏访问应用URL时
对于页面跳转的控制
web.xml配置
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.tongtech.bjvsp.sysmng.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
相关推荐
java filter打印请求返回参数
利用java filter 实现业务异常拦截 跳转到错误信息提示页面 我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理...
java中filter的用法(过滤器),介绍各种过滤方法
Java Filter相关资料,Filter的使用和生命周期。
Java_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter...
filter过滤器在java的用法,配置文件怎样写,一看就明白
关于java filter 的相关知识!!
KalmanFilter,KalmanFilter3,KalmanFilter5 一共7种,以上三种实现保证可用,其余待调试,调试函数写好,直接运行即可 KalmanFilter KalmanFilter2 KalmanFilter3 KalmanFilter4 KalmanFilter5 KalmanFilter6 Kalman...
这是自己编写的一个简单的filter测试小程序,用于帮助自己复习Java-filter。
过滤器Filter也具有生命周期:init()->doFilter()->destroy(),由部署文件中的filter元素驱动。在servlet2.4中,过滤器同样可以用于请求分派器,但须在web.xml中声明,<dispatcher>INCLUDE或FORWARD或REQUEST或ERROR...
Java EE中Filter技术的研究与应用.pdf
java filter过滤器执行过程,可以很清楚的了解和知道过滤器的原理
Java DSP FIR Filter experiment
这是一个java版的bloomFilter Hash函数集,并带有测试程序。在我的资源里还有一个c版的,函数功能相同,在我的应用中具有良好表现。
Java-BloomFilter, 在Java中,一个独立的Bloom过滤器 java-bloomfilterJava bloomfilter是一个独立于Java的Bloom过滤器实现。 它旨在在不需要额外库开销的情况下包含在现有项目中。 第一个版本是由 Ian的博客条目...
Java FIR Filter demonstration
Java filter过滤器在项目开发中的应用
JEECG权限根据业务数据的机构字段,实现的工具类。可用于datagrid方法中,list页面过滤,add,update页面也可以
Java登录注册列表小项目和Filter测试代码,其中包括自己写的一个小项目包括登录,注册,页面权限拦截,添加,删除,修改。
Java Filter 限制用户浏览权限,这是个很简单的例子,初学者也能看懂!