zoukankan      html  css  js  c++  java
  • Java Servlet总结

    一、Servlet简介

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

    二、Servlet接口

    (1)init(ServletConfig config) 方法

    被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

    (2)service(ServletRequest req, ServletResponse res)方法

    是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

    (3)destroy() 方法

    destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

    (4)getServletConfig()方法

    获取init方法传入的Servlet配置ServletConfig。

    (5)getServletInfo() 方法

    提供有关servlet的信息,如作者、版本、版权。

    三、GenericServlet抽象类

    (1)实现接口

    Servlet、 ServletConfig

    (2)定义属性

    transient ServletConfig config

    (3)新增方法

    a.init()方法

    增加了init无参方法,此方法在Servlet接口的init(ServletConfig config) 方法中调用。

    b.log(String msg)方法与log(String message, Throwable t)

    打印日志

    (4)继承Servlet的方法

    a.service(ServletRequest req, ServletResponse res)方法仍然是抽象方法

    b.init(ServletConfig config) 方法保存ServletConfig,然后调用无参的init()方法

    c.getServletInfo() 方法返回长度为0的字符串

    d.destroy() 方法空实现

    e.getServletConfig()方法返回config

    (5)继承ServletConfig的方法

    通过config获取ServletContext、ServletName以及ServletContext的InitParameter和InitParameterNames

    四、HttpServlet抽象类

    (1)继承父类

    GenericServlet

    (2)新增方法

    a.doGet(HttpServletRequest req, HttpServletResponse resp)方法

    处理http的get方式的请求

    b.doPost(HttpServletRequest req, HttpServletResponse resp)方法

    处理http的post方式的请求

    c.service(HttpServletRequest req, HttpServletResponse resp)方法

    由Servlet接口的service(ServletRequest req, ServletResponse res)方法调用,分发请求到对应的请求方式

    d.getLastModified(HttpServletRequest req) long 方法

    获取最后一次的请求时间

    e.doDelete、doHead、doOptions、doPut和doTrace等不常用方法

    五、自定义servlet处理http请求

    (1)一般继承自HttpServlet

    (2)覆盖doGet方法与doPost方法

    六、配置serlvet

    (1)定义servlet

    在web.xml中定义

    1. <servlet>  
    2.      <servlet-name>MyServlet</servlet-name>  
    3.       <servlet-class>com.mk.MyServlet</servlet-class>  
    4. </servlet>  

    (2)映射servlet

    在web.xml中定义

    1. <servlet-mapping>  
    2. <servlet-name>MyServlet</servlet-name>  
    3. <url-pattern>/welcome</url-pattern>  
    4. </servlet-mapping>  
  • 相关阅读:
    Ubuntu环境下NFS服务器搭建
    Node.js+koa2
    linux rhel7下安装python
    数据结构之链表
    0416. Partition Equal Subset Sum (M)
    0395. Longest Substring with At Least K Repeating Characters (M)
    1015. Smallest Integer Divisible by K (M)
    0227. Basic Calculator II (M)
    0337. House Robber III (M)
    0804. Unique Morse Code Words (E)
  • 原文地址:https://www.cnblogs.com/maokun/p/7586643.html
Copyright © 2011-2022 走看看