简单项目开发之一(springmvc+filter)

来源:互联网 发布:何曼婷淘宝店 编辑:程序博客网 时间:2024/06/05 04:36
   前面的框架搭建已经基本完成,后面的开发我们就在这个简单架子的基础上做开发,这一篇先加过滤器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要么没有构造方法(有参数的和无参的),要么显示声明无参的构造方法,不然报错

0 0
原创粉丝点击