第一、 Servlet的创建和配置

           1、 创建一个Servlet需要实现javax.servlet.Filter接口,同时实现Filter的3个方法。

            第一个方法时过滤器中的init()方法用于对过滤器的初始值进行处理,destroy()方法是过滤器的销毁方法,主要用于释放资源,过滤处理的业务逻辑都在doFilter()方法里,在请求过滤处理后,需要调用chain.doFilter(request,response)方法将请求传递给下一个过滤器或者目标资源(相当于放行)。

           2、过滤的配置(其实过滤器和servlet差不多)

           首先我们要声明过滤对象

           其次我们创建过滤器映射。

           配置代码在下面:

//声明过滤器对象 
<filter>
      <filter-name>CountFilter</filter-name>
      <filter-class>com.luo.filter.CountFilter</filter-class>
      <init-param>
            <param-name>count</param-name>
            <param-value>0</param-value>
      </init-param>
  </filter>


//过滤器映射   
  <filter-mapping>
      <filter-name>CountFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping> 

下面是过滤器类代码和jsp代码:

类代码:

 1 package com.luo.filter;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletContext;
 9 import javax.servlet.ServletException;
10 import javax.servlet.ServletRequest;
11 import javax.servlet.ServletResponse;
12 import javax.servlet.http.HttpServletRequest;
13 
14 public class CountFilter implements Filter {
15     //来访数量
16     private int count;
17     
18     @Override
19     public void destroy() {
20         // TODO Auto-generated method stub
21 
22     }
23 
24     @Override
25     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
26             throws IOException, ServletException {
27           
28         count++;
29         HttpServletRequest req = (HttpServletRequest)request;
30         ServletContext context = req.getSession().getServletContext();
31         context.setAttribute("count", count);
32         chain.doFilter(request, response);
33         
34     }
35 
36     @Override
37     public void init(FilterConfig filterConfig) throws ServletException {
38          //获取配置文件中的初始化参数
39           String param = filterConfig.getInitParameter("count");
40           count = Integer.valueOf(param);
41             
42     }
43 
44 }

jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
  
  <body>
  你好,你是本站${count }访客。
   
 
      
  </body>
</html>

  这样一个简单的访客计数就通过过滤器简单完成了,不会的私信我。愿意为你解答。

 

posted on 2018-01-02 19:59  Leroy_罗先生  阅读(547)  评论(0编辑  收藏  举报