简单项目开发之一(springmvc+filter)
2015-11-19 18:36
405 查看
前面的框架搭建已经基本完成,后面的开发我们就在这个简单架子的基础上做开发,这一篇先加过滤器filter
一:准备过滤器处理类AuditFilter(主类)和AuditHandler(实际处理类)
AuditFilter的代码如下:
package com.template.filter; import java.io.IOException; import javax.annotation.Resource; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class AuditFilter implements Filter { private AuditHandler auditHandler; private String appName; public AuditFilter() {} public AuditFilter(AuditHandler auditHandler) { this.auditHandler = auditHandler; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { auditHandler.auditRequest(appName,request); chain.doFilter(request, response); } public void init(FilterConfig filterConfig) throws ServletException { appName = filterConfig.getInitParameter("appName"); } public void destroy() {} }
AuditHandler的代码如下:
package com.template.filter; import javax.servlet.ServletRequest; import org.apache.log4j.Logger; public class AuditHandler { private static Logger logger = Logger.getLogger(AuditHandler.class); public void auditRequest(String appName,ServletRequest request) { logger.info(appName+" received request from " + request.getRemoteAddr()); } }
二:web.xml增加如下配置:
<!-- spring security Filter --> <filter> <filter-name>auditFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <!-- invoke lifecycle methods --> <param-name>targetFilterLifecycle</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>appName</param-name> <param-value>mytemplateweb</param-value> </init-param> </filter> <filter-mapping> <filter-name>auditFilter</filter-name> <url-pattern>*.htm</url-pattern> </filter-mapping>
这里需要注意的是:filter-name的名字就是写的filter的类名
三:spring.xml增加:
<bean id="auditHandler" class="com.template.filter.AuditHandler"/> <bean id="auditFilter" class="com.template.filter.AuditFilter"> <constructor-arg ref="auditHandler"/> </bean>
注意:本来想通过注解的方法注入的,没起作用,就改成这种方式了,用这种方式注入,声明的bean要么没有构造方法(有参数的和无参的),要么显示声明无参的构造方法,不然报错
相关文章推荐
- Eclipse常见错误
- java学习笔记2
- MyEclipse 2015 stable 2.0 下载 破解激活
- java二分查找方法
- struts框架设计
- java插入排序方法
- java选择排序方法
- java冒泡排序方法
- JavaSE__Jdbc关闭
- java 每日习题(六)从文件收集数据记录到mysql
- Java中利用socket实现简单的服务端与客户端的通信(入门级)
- idea类似eclipse鼠标提示java api信息
- Java获取操作系统信息和Java版本信息
- Spring MVC学习一
- 运行时java对象在内存中是什么样子的?
- eclipse和myeclipse下main方法找不到主类的一种情况
- JAVA NIO:Path ,File
- 简单的安卓手势处理类
- java 选择排序法
- struts2 ajax一个很经典的小例子