星星博客 »  > 

Java Servlet 基础知识

Servlet

Servlet基本介绍

Servlet是javaEE规范之一,规范就是接口

javaWeb三大组件:Servlet程序、Filter过滤器、Listener监听器

Servlet是运行在服务器的java程序,可以接收客户端发来的请求,并相应数据给客户端。


Servlet.service()

Servlet接口中service方法是负责处理请求和响应的

<servlet>
    <!--servlet-name:程序别名
    servlet-class:程序的全类名-->
    <servlet-name>hello</servlet-name>
    <servlet-class>com.example.Servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <!--servlet-name:程序别名
    url-pattern:配置访问地址
    http://ip:port/工程路径/访问地址-->
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

配置web.xml文件

Servlet生命周期

Servlet程序生命周期:1. servlet构造器、2. init方法、3. service方法、4. destroy方法

1、2步 第一次访问的时候调用

3步 访问的时候调用

4步 web工程结束的时候调用


请求分发

请求分发:通过HttpServletRequest.getMethod()获取方法判断

分发的请求doxx()负责抛出异常


Servlet继承体系

Interface Servlet<—Class GenericServlet<—Class HttpServlet<—自定义Servlet程序

Interface Servlet:只是负责定义Servlet程序访问规范

Class GenericServlet:实现了Servlet接口,但是基本都是空实现。持有一个ServletConfig的引用,对ServletConfig的使用做了一些方法

Class HttpServlet:抽取实现了service()方法,并实现了分发处理(强转ServletRequest,ServletResponse为HttpServletRequest,HttpServletResponse,通过get方法判断分发处理(其方法全部在抛出错误。)

自定义Servlet: 重写相关方法使其支持相关请求

ServletConfig

是Servlet的配置信息类

Servlet程序和ServletConfig对象都是由Tomcat负责创建

Servlet程序默认被访问的时候创建,ServletConfig是每个Servlet程序创建时创建一个与之对应的ServletConfig对象。

一个ServletConfig对象只属于一个Servlet。

三大作用:

  • 可以获取servlet程序的别名servlet-name的值

    • 一般是类名
  • 获取初始化参数init-param

    • 需要在对应得web.xml文件中得对应得servlet中添加如下

    • 可以配多个键值对

      <init-param>
          <param-name>key</param-name>
          <param-value>value</param-value>
      </init-param>
      
  • 获取ServletContext对象

@Override
public void init(ServletConfig servletConfig) throws ServletException {
    System.out.println("获取servletName: " + servletConfig.getServletName());
    System.out.println("获取init-parame: " + servletConfig.getInitParameter("name"));
    System.out.println("获取servlerContext对象: "+servletConfig.getServletContext());
}

ServletContext

是一个接口,表示Servlet上下文对象

一个web工程,只有一个ServletContext对象实例

ServletContext对象是一个域对象

域对象

是可以像Map一样存取数据的对象,这里的域是指存取数据操作的范围

Map: put() get() remove()

域对象: setAttribute() getAttribute() removeAttribute()

功能作用

  • 获取web.xml中配置的上下文参数context-param
  • 获取当前工程路径,/工程路径
  • 获取工程部署后服务器硬盘上的绝对路径。“/”→工程项目的web文件夹位置。
  • 像Map一样存取数据

相关文章