Servlet学习笔记

一、Servlet是使用Java Servlet接口运行在web应用服务器上的Java程序。Servlet需要在Servlet容器中才可以处理请求(Servlet容器包括Tomcat、JBoss、Resin等)。

二、Servlet技术特点
1、有实用的API。
2、多线程处理请求,效率高。
3、跨平台。

三、Servlet配置的相关元素
1、声明Servlet对象
<servlet>
<servlet-name>servlet的名称,可自定义</servlet-name>
<servlet-class>servlet对象的完整位置,包含Servlet对象的包名和类名</servlet-class>
</servlet>

2、映射Servlet
<servlet-mapping>
<servlet-name>这里的名称与上面<servlet>中的名字要一样!</servlet-name>
<url-pattern>映射访问的URL</url-pattern>
</servlet-mapping>

四、Servlet API 编程常用的接口和类:
1、HttpServletRequest接口
getCookies():返回请求中发送的所有cookie对象,返回值为cookie数组
getMethod():返回请求所使用的http类型,如get、post等
2、HttpServletResponse接口
addCookie():向客户端写入cookie信息
sendError():发送错误
3、HttpServlet类(抽象类,实现了service()方法)
doGet()、doPost()、doPut()、doDelete()、doHead()、doTrace()、doOptions()

五、Servlet过滤器
1、Servlet过滤器是客户端与目标资源之间的中间层组件,用于拦截客户端的请求与响应信息。它的使用主要有三个接口(Filter接口、FilterChain接口和FilterConfig接口)。
一个通过实现Filter接口来创建一个过滤器对象,代码如下:

package edu.gdei.bookingsystem.util;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/** * 统一设置字符集 * @author Administrator * */
public class CharsetEncodingFilter implements Filter {

    private String encoding;

    //销毁方法
    public void destroy() {
    }
    //过滤处理方法
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
            FilterChain filterChain) throws IOException, ServletException {

        //设置字符集
        servletRequest.setCharacterEncoding(encoding);
        filterChain.doFilter(servletRequest, servletResponse);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
        //取得初始化参数
        this.encoding = filterConfig.getInitParameter("encoding");
    }
}

2、过滤器的配置
1)声明过滤器对象

<filter>
<filter-name>过滤器的名称,可自定义</filter-name>
<filter-class>过滤器对象的完整位置,包含Servlet对象的包名和类名</filter-class>
<init-param>
<param-name>声明初始化参数的名称</param-name>
<param-value>初始化参数的值</param-value>
</init-param>
</filter>

2)映射过滤器

<filter-mapping>
<filter-name>这里的名称与上面<filter>中的名字要一样!</filter-name>
<url-pattern>映射访问的URL</url-pattern>
<dispatcher>过滤器对应的请求方式</dispatcher>
</filter-mapping>

过滤器配置eg:

<filter>
        <filter-name>OpenSessionInView</filter-name>
        <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
        <init-param>
            <param-name>singleSession</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>  
                <param-name>FlushMode</param-name>  
                <param-value>AUTO</param-value>  
            </init-param>
    </filter>

    <filter-mapping>
        <filter-name>OpenSessionInView</filter-name>
        <url-pattern>/*</url-pattern> </filter-mapping>

你可能感兴趣的:(servlet)