servlet

来源:互联网 发布:网络尖兵版本 编辑:程序博客网 时间:2024/05/16 02:06

Servlet监___过滤器:

Servlet一共分为三类:

简单servlet:是作为一种程序所必须的开发结构保存下来的。

过滤servlet:以组件形式出现

监听servlet:以组件形式出现

 

本章目标:

掌握过滤器的基本结构及实现

可以通过过滤器进行编码过滤及登陆验证

 

在简单servlet中,是继承HTTPSERVLET类形式完成,但是在器中不再使用类,而是接口。

 

具体内容

 如果想要完成一个过滤器的开发,则首先必须让一个类实现File接口,此接口是JAVAX.SERVLET包中的,那么根据此包的特点就可以发现,此接口的主要功能是完成公共协议操作。

 

package org.serveltfilter.wade;

import java.io.*;

import javax.servlet.*;

 

public class ServletFilter implements Filter{

 public void init(FilterConfig config)throws ServletException

  {

 

  }

 public void doFIlter(ServletRequest request,ServletResponseresponse,FilterChain chain)throws ServletException,EOException

  {

 

  }

 public void destroy()

  {

 

  }

}

如果现在是一个普通的Servlet则在使用的时候必须手工的调用,例如在FORM表彰的action之中编写的路径

但是过滤这种操作本身可是属于自动完成的。

 

package org.serveltfilter.wade;

import java.io.*;

import javax.servlet.*;

 

public class ServletFilter implementsFilter{

 public void init(FilterConfig config)throws ServletException

  {

   String initParam=config.getInitParameter("ref");

         System.out.println("*******init:"+initParam);

  }

 public void doFilter(ServletRequest request,ServletResponseresponse,FilterChain chain)throws ServletException,IOException

  {

  System.out.println("doFilter");

  }

 public void destroy()

  {

   System.out.println("********this end destroy");

  }

}

 

Web.xml配置

<filter>

  <filter-name>simple</filter-name>

  <filter-class>org.serveltfilter.wade.ServletFilter</filter-class>

  <init-param>

   <param-name>ref</param-name>

   <param-value>hello ! simple</param-value>

         </init-param>

 </filter>

 <filter-mapping>

  <filter-name>simple</filter-name>

   <url-pattern>/*</url-pattern>

 </filter-mapping>

  对全部进行过滤。

 

FilterChain:

 FilterChain接口的主要作用是将用户的请求向下传递给其他的过滤器或者servlet:

 在FilterChain接口中依然定义了一个风云榜的doFilter()方法,这是因为在一个过滤器后面可能存在着另一个过滤器,也可能是请求的最终目标,这样就通过FiilterChain形成一个过滤链的操作。

 

public voiddoFilter(ServletRequest request,ServletResponse response,FilterChainchain)throws ServletException,IOException

  {

   chain.doFilter(request,response);

   System.out.println("doFilter");

  }

 

实际上过滤器的概念比较简单,而且也好理解,从实际上来讲在开发中使用最频繁的两种操作是:编码过滤和合建验证。

 

编码过滤:

 

package org.serveltfilter.wade;

import java.io.*;

import javax.servlet.*;

 

public class ServletFilterEncodingimplements Filter{

 private String charSet;

 public void init(FilterConfig config)throws ServletException

  {

   this.charSet=config.getInitParameter("charset");

   String initParam=config.getInitParameter("ref");

         System.out.println("*******init:"+initParam);

  }

 public void doFilter(ServletRequest request,ServletResponseresponse,FilterChain chain)throws ServletException,IOException

  {

  chain.doFilter(request,response);

  System.out.println("doFilter");

  request.setCharacterEncoding(this.charSet);

  }

 public void destroy()

  {

   System.out.println("********this end destroy");

  }

}

 

 

 <filter>

  <filter-name>simpleeccoding</filter-name>

  <filter-class>org.serveltfilter.wade.ServletFilterEncoding</filter-class>

  <init-param>

   <param-name>charset</param-name>

   <param-value>utf-8</param-value>

         </init-param>

 </filter>

 <filter-mapping>

  <filter-name>simpleeccoding</filter-name>

  <url-pattern>/*</url-pattern>

 </filter-mapping>

 

 

 

 

Servlet监听器。

 

掌握监听器的主要作用

掌握监听器的实现及配置

通过监听器完成一个在线人员列表的功能

 

具体内容:

Web中的监听主要的功能就是用于对servletContextsession Request进行监听的一种操作。

监听器:第三种servlet程序称为监听servlet主要的功能是负责监听web的各种操作,当相关的事件触发这后将产生事件,并对此事进行处理。在web中可以对application session request三种操作进行监听。

 

对application监听

Application 是servletCOntext监听的对象,表示是整个上下文的环境。

如果要想实现对application监听则可以使用如下两个接口。

对application监听。实际上就是对servletContext (servlet上下文)主要使用以下两个接口

ServletContextListener:对整个上下文的环境监听

ServletContextAttributeListener:对属性的监听

 

如果一个web.xml文件之中包含简单servlet,过滤器,监听器,则的编写配置顺序:

<filter>

<filter-mapping>

<listener>

<servlet>

<servlet-mappin>

 

对session监听:

在监听器中,针对session的监听操作提供三个接口。

HttpSessionListener

HttpsessionAttributeListener

HttpSessionBindingListener

0 0