Servlet进阶

来源:互联网 发布:mac兼容性视图设置 编辑:程序博客网 时间:2024/05/12 07:08

在初级Servlet基础上进一步深化了Servlet的知识。
主要从以下几个方面来加深理解Servlet:

一,路径匹配规则

这里写图片描述
这里写图片描述

二,Web程序启动时就创建Servlet实例
一般用于在Web程序部署时,进行初始化工作,比如在init()方法中操作数据库中的表。

<servlet>    <servlet-name>xxx</servlet-name>    <servlet-class>com.jackie.web.servlet.xxx</servlet-class>    <load-on-startup>3</load-on-startup>  </servlet>

这里写图片描述

三,重定向和请求分派
a,重定向:
重定向
b,请求分派:
请求分派
注意:
对于客户端(HTML)来说,路径前面的“/”是相对web容器地址的路径;
对于服务器端程序来说,路径前面的“/”是相对于web应用程序根路径的路径。

请求分派中的一个重点知识:
请求域
请求域

四,ServletConfig对象和ServletContext对象

package com.jackie.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class TestServlet */public class TestServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doPost(request, response);    }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        System.out.println(this.getServletConfig().getInitParameter("paramName"));        System.out.println(this.getServletContext().getInitParameter("contextParam"));    }}

web.xml文件:

...<servlet>    <servlet-name>TestServlet</servlet-name>    <init-param>        <param-name>paramName</param-name>        <param-value>参数值!</param-value>    </init-param>    <servlet-class>com.jackie.web.servlet.TestServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>TestServlet</servlet-name>    <url-pattern>/test</url-pattern>  </servlet-mapping>  <context-param>      <param-name>contextParam</param-name>      <param-value>上下文值!</param-value>  </context-param>  ...
0 0