在最近接触的一个项目中,涉及到对系统初始化的检测。在web.xml中,配置过滤器,用于拦截请求信息。web.xml 中filter 元素 配置如下:
<filter>
<filter-name>PowerCheck</filter-name>
<filter-class>apabi.edoc.util.filter.PowerFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>PowerCheck</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter 的配置和servlet 差不多,有一个filter-name 元素节点,定义了该filter的name ,filter-class 为该filter的具体实现的类,<init-param> 初始化参数 encoding,在powerFilter.java 文件中,可以获取。
对应的PowerFilter.java文件为:
public class PowerFilter implements Filter{
private FilterConfig filterConfig;
protected String encoding = null;
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
{
try
{
//进行请求和响应的类型转换
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
String spath = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
spath = spath.toUpperCase();
if(spath.indexOf(".cebx") >= 0 || spath.indexOf("/downloadcebx.do") == 0 || spath.indexOf("/IMGS/") == 0 || spath.indexOf("/SCRIPTS/") == 0 || spath.indexOf("/CSS/") == 0 || spath.indexOf("/LAYOUTS/") == 0)
{
chain.doFilter(request, response);
return;
}
//设置编码,处理中文编码问题
if(encoding != null)
{
httpRequest.setCharacterEncoding(encoding);
httpResponse.setContentType("text/html; charset=" + encoding);
}
httpResponse.setHeader("Cache-Control", "no-cache");
/* String spath = httpRequest.getRequestURI().substring(httpRequest.getContextPath().length());
spath = spath.toUpperCase();
if(spath.indexOf("/IMGS/") == 0 || spath.indexOf("/SCRIPTS/") == 0 || spath.indexOf("/CSS/") == 0 || spath.indexOf("/LAYOUTS/") == 0)
{
chain.doFilter(request, response);
return;
}
*/
//系统初始化
if(spath.indexOf("/SERVICES/ERRORPAGES/ERROR.HTM") == -1)
{
if (!SysEnv.init(httpRequest))
{
// TODO 添加系统初始化错误处理
PrintWriter wr = httpResponse.getWriter();
wr.write( "<script language='javascript'>alert('系统初始化失败,请检查。');window.top.location.replace( '" + httpRequest.getContextPath()+ "/services/errorpages/Error.htm' );</script>" );
wr.flush();
wr.close();
return;
}
}
//权限控制
// if(!PowerAdmin.PowerQuery(httpRequest, httpResponse))
// return;
chain.doFilter(request, response);
}
catch (ServletException sx)
{
filterConfig.getServletContext().log(sx.getMessage());
}
catch (IOException iox)
{
filterConfig.getServletContext().log(iox.getMessage());
}
catch(Exception e)
{
Logger.getLogger().error(e.getMessage(), e);
}
catch(Error e)
{
Logger.getLogger().error(e.getMessage(), e);
}
}
public FilterConfig getFilterConfig()
{
return this.filterConfig;
}
public void setFilterConfig(FilterConfig filterConfig)
{
this.filterConfig = filterConfig;
}
public void init(FilterConfig filterConfig)throws ServletException
{
this.filterConfig = filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
}
public void destroy()
{
}
}
在该java文件中,需要实现三个方法,init(),doFilter(),以及destroy();其中,init()方法,在容器启动时便开始进行初始化。在web.xml 中,配置<url-pattern>/*</url-pattern> ,对所有的请求均通过该过滤器检查,如果 当前环境检测失败,提示系统初始化失败。
对servlet 中,filter 的配置,可以参考一下网页介绍,http://www.java2s.com/Tutorial/Java/0400__Servlet/0340__Filter.htm;
该网页提供了几个实例,可以小试一下。。。
分享到:
相关推荐
jdk升级之后出现异常:java.lang.NoClassDefFoundError: javax/xml/ws/Service ... <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> .....
1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...
Missing artifact com.oracle:ojdbc6:jar:11.2.0.1.0问题解决 ojdbc包pom.xml出错 <!-- oracle数据库驱动 -->...3.最后找到项目的pom.xml引入如下代码,右击项目名称,找到maven,找到update project更新下就ok了
人性化设计<br><br>软件产品介质:<br>1.oa.rar <br>2.oaclass.rar <br>3.oalib.rar<br>4.oadatabase.rar<br>4.Web版办公自动化OA系统使用手册.doc <br>5.web.xml server.xml <br><br>需要者请联系:e_mail:fzlotuscn...
DOM <br> <br>· 第三章:XML的术语<br>· 导言 <br>· 一.XML文档的有关术语<br>· 二.DTD的有关术语<br>· 第四章:XML的语法<br>· 一.XML语法规则<br>· 二.元素的语法<br>· 三.注释的语法<br>· 四.CDATA的语法...
xbeanetc.rar 该压缩包包括如下jar包:<br>xbean.jar<br>xbean_xpath.jar<br>xerces.jar<br>xercesImpl.jar<br>xercesImpl-2.6.2.jar<br>xml-apis.jar<br>xml-apis1.jar<br>xml-apis-2.6.2.jar<br>xmlbeans-qname.jar...
其它小型社区<br><br>软件产品介质:<br>1.xwfb.rar <br>2.xwfbclass.rar <br>3.xwfblib.rar<br>4.Web版新闻发布管理系统使用手册.doc <br>5.web.xml server.xml <br><br>需要者请联系:<br><br>e_mail:fzlotuscn@...
<br>res\xml\network_and_internet.xml res\drawable\ic_ethernet_cell.xml <br>res\values\strings.xml res\xml\ethernet_settings.xml <br>res\xml\ethernet_static_ip.xml <br>src\...
9<br>1.1 什么是XML. 10<br>1.1.1 XML是元标记语言... 10<br>1.1.2 XML描述的是结构和语义,而不是格式化... 10<br>1.2 为什么开发人员对XML感到激动... 13<br>1.2.1 设计与特定领域有关的标记语言... 13<br>1.2.2 ...
<br><br>本系统是WEB模式的实验室教学管理系统<br>运行环境:Tomact+JDK<br>编程模式:JSP+JavaBean+JavaServlet<br>后台数据库:MS-Access\MySql<br><br>系统特点:<br><br>1.基于免费环境开发 jdk+Tomcat+Ms-Access...
DOM <br>· 第三章:XML的术语<br>· 导言 <br>· 一.XML文档的有关术语<br>· 二.DTD的有关术语<br>· 第四章:XML的语法<br>· 一.XML语法规则<br>· 二.元素的语法<br>· 三.注释的语法<br>· 四.CDATA的语法<br>...
人性化设计<br><br><br>软件产品介质:<br>1.zxks.rar <br>2.zxksclass.rar <br>3.zxkslib.rar<br>4.Web版在线考试管理系统使用手册.doc <br>5.web.xml server.xml <br>需要者请联系:<br>e_mail:fzlotuscn@yahoo....
人性化设计<br><br>软件产品介质:<br>1.ticket.rar <br>2.ticketclass.rar <br>3.ticketlib.rar<br>4.Web版航空订票系统管理系统使用手册.doc <br>5.web.xml server.xml <br><br>需要者请联系:<br><br>e_mail:...
1,codenet5.ZIP <br>网络五子棋(84KB)<br>2,mailcheck.ZIP <br>邮件检查程序(8KB)<br>3,sendmail.ZIP <br>简单电子邮件发送程序(4KB)<br>4,whois.ZIP <br>Whois 示例程序(2KB)<br>5,mailsender_plus.ZIP <br>发送...
系统帮助<br><br>软件产品介质:<br>1.lab.rar <br>2.labclass.rar <br>3.lablib.rar<br>4.Web版实验室教学管理系统使用手册.doc <br>5.实验室教学管理系统分析和设计手册(论文).doc <br>6.web.xml server.xml <br>...
* 编号 <br>PRODUCT_NAME VARCHAR(50) 名称<br>PRICE FLOAT 价格<br>DESCRIPTION VARCHAR(200) 描述<br><br>我的Tomcat 安装目录是:D:\Tomcat5<br><br><br>连接池配置:<br> 请查看文件:WebRoot.xml 和 web.xml<br...
<br><br>系统环境<br><br>操作系统 :WindowsXP <br><br>Java运行环境 :JDK1.5<br>Tomcat服务器 :Tomcat5.5<br>Apache服务器 :Apache2.2<br><br><br><br><br><br><br>开始配置:<br><br>1、我们先以普通的方式配置...
完全由Spring接管DWR AJAX处理(不需要配置dwr.xml)等技术点<br>源码在/mytest/WEB-INF/src下<br>Winxp sp3+JDK1.6+Tomcat 6.0下运行通过<br>因文件长度限制,未加入相关类库,请自行加入,需要的类库有:<br>dom.jar...
-------hadoop配置--------- core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://slave-01:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/root...
<br><br>一、用ant编译源码(所有源文件及目录结构请下载)<br><br>C:\cs>ant compile<br>Buildfile: build.xml<br><br>compile:<br>[mkdir] Created dir: C:\cs\build<br>[javac] Compiling 60 source files to C:\cs...