Servlet基础总结

Servlet是JavaWeb应用开发的核心组件。Servlet运行在Servlet容器中(例如最常用的Tomcat),它可以为各种客户请求提供相应服务。Servlet可以轻松完成以下任务:

  • 动态生成HTML文档(即服务端交互,动态页面)
  • 把请求转发给同一个Web应用中的其他Servlet组件。
  • 访问服务器资源(如数据库访问)
  • 读取客户端的Cookie。

ServletAPI有4个包,如下:

  • javax.servlet :包含定义了Servlet与Servlet容器之间签约的类和接口。
  • javax.servlet.http : 包含定义了HttpServlet与与Servlet容器之间签约的类和接口。
  • javax.servlet.annotation :包含对Servlet、Filter和Listener进行标注的注解。即Servlet3.0的注解配置。
  • javax.servlet.descriptor:包含为Web应用的配置信息提供编程式访问的类型。

servlet包和servlet.tttp包之间主要接口和类的关系如下:

Servlet的重点对象

请求对象(ServletRequest和HttpServletRequest) :Servlet获取请求头信息。
响应对象(ServletResponse和HttpServletResponse) :Servlet生成响应结果。
Servlet配置对象(ServletConfig):Servlet容器创建Servlet实例时,传入一个ServletConfig对象。 Servlet通过该对象来获取初始化参数及ServletContext对象。【初始化参数仅作用该Servlet本身】
Servlet上下文对象(ServletContext):Servlet容器启动Web应用时,创建唯一的ServletContext对象,即代表Web应用。 通过ServletContext对象可以共享web应用资源,可以用于在多个Servlet中共享数据。
【注意:Servlet容器启动时,JavaWeb应用会被启动,ServletContext对象随之创建】

Servlet接口的5个方法

init()           //创建servlet实例时,初始化servlet参数。
service()        //根据请求方式,处理客户端请求,并发出响应结果。
destroy()       //Web应用销毁(停止运行)时,执行该方法。通常用于回收资源。
getServletConfig() //返回一个ServletConfig对象,该对象表示Servlet配置信息。
getServletInfo()   //返回关于该Servlet的说明信息。

Servlet生命周期

init()、service()和destroy()分别对应Servlet的三个阶段:初始化阶段、运行时阶段和销毁阶段。
对应如下的Servlet执行流程:
当客户端向某个Web服务器发出请求,Tomcat(Servlet容器)接收并解析HTTP请求,然后调用匹配请求的Servlet类。

1.创建Servlet实例,执行init()完成初始化,Servlet容器传入一个ServletConfig对象。
2.根据请求方式,调用相应的响应方法(doGet()、doPost()或service()),传入包含请求信息的HttpServletRequest对象和用于响应的HttpServletResponse对象,生成响应结果。
3.Servlet容器将响应结果发送给客户端,然后执行destroy()方法,销毁和该Servlet有关的对象。例如请求对象、响应对象以及ServletConfig。至此,Servlet的生命周期结束。

额外说明:
创建Servlet实例有两种时机:

1.客户端发起请求,相应的Servlet实例才开始创建。

2.Web应用一启动,就创建Servlet实例,这里方式需要配置一下:<servlet>中配置<load-on-startup>1</load-on-startup>,值越小,实例化优先级越高。注解配置Servlet,则指定参数loadOnStartup = 1。

关于Servlet初始化参数和Web应用的上下文参数的配置方式,在web.xml文件中:

<!-- Web应用参数,可以被Web应用中所有Servlet所共享 -->
<context-param>
<param-name>movement</param-name>
<param-value>10086</param-value>
</context-param>
<context-param>
<param-name>railway</param-name>
<param-value>12306</param-value>
</context-param>
<servlet>
<servlet-name>ServletConfig_Context_Test</servlet-name>
<servlet-class>com.test.ServletConfig_Context_Test</servlet-class>
<!-- Servlet的初始化参数 -->
<init-param>
<param-name>sevletConfig01</param-name>
<param-value>测试servlet配置信息</param-value>
</init-param>
</servlet>

若是注解配置Servlet初始化参数,如下:

@WebServlet(urlPatterns= {"/瞎写的URL"}, name="arbitrary",
  initParams= {
        @WebInitParam(name="admin", value="牛批"),
        @WebInitParam(name="info", value="10086")
  }
)
public class InitParamServlet extends HttpServlet{
//省略.....
}

原文地址:https://www.cnblogs.com/fwnboke/p/9119244.html

时间: 2024-10-31 01:06:56

Servlet基础总结的相关文章

Servlet基础

Servlet基础 Jsp的本质即为Servlet,jsp页面部署到web容器中后会被编译为Servlet.Servlet使用输出流输出html标签,开发过程复杂且难以进行设计. Servlet是一个完整的java类,jsp是对Servlet的简化.Servlet中没有jsp的内置对象,jsp内置对象需要Servlet显式创建. 在MVC架构中,Servlet已不再作为视图仅仅作为控制器使用. 这里介绍了Servlet开发中所涉及的基础知识以及局部应用范例,Servlet作为控制器的应用介绍请见

JSP数据交互(二)和Servlet基础

01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. 02.在一个应用中只有一个application,每一个用户都会共享这一个application对象. 03.通过统计网站访问次数来讲解application的用法 02.对象作用域 03.Cookie简介 解析:cookie是Web服务器保存在客户端的一系列文本信息,根据域名和端口号区分是否保存成

JavaWeb-07(tomcat与web程序结构与Http协议与Servlet基础)

JavaWeb-07 JavaWeb-tomcat与web程序结构与Http协议与Servlet基础 HTTP协议(记住) 1.http协议:规定了客户端和服务端交流时的数据格式 a. WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议. b. HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式. c. HT

JSP/Servlet基础语法

相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp/web_xml.html http://blog.csdn.net/liaoxiaohua1981/article/details/6761053 http://computer.c.blog.163.com/blog/static/102524482012314537670/ http://ww

Unit01: Servlet基础 、 HTTP协议

Unit01: Servlet基础 . HTTP协议 在页面上输出当前时间 package web; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import

Servlet基础知识详解

Servlet基础知识详解 Servlet基础知识详解 Servlet程序执行全过程 Servlet映射路径 Servlet映射练习 Servlet生命周期 为什么要学习Servlet生命周期 Servlet重要的生命周期方法 模拟通过反射构造Servlet对象 Servlet单实例多线程 Servlet留给开发者的init方法 Servlet中核心对象学习 HttpServletRequest对象 HttpServletResponse对象 ServletConfig对象 ServletCon

Servlet - 基础

Servlet - 基础 标签 : Java与Web HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器(Browser)和万维网服务器(WebServer)之间互相通信的规则.其主要特点可简单概括如下: 1) 简单快速: 客户端向服务器请求服务时,只需传送请求方法和路径, 因此使得HTTP服务器的程序规模小,通信速度快; 2) 灵活: HTTP允许传输任意类型的数据对象(传输类型由Content-Type控制); 3)

SERVLETJSP学习(一)——Servlet基础 、 HTTP协议

1. Servlet基础 1.1. Web应用的演变 1.1.1. 单机程序 软件从附着于电脑硬件之日起,就在不断的进行着自我完善和演变.从其使用模式的角度出发,可以简单分为单机程序和网络程序.发展到今时今日仍有大量的不依赖网络的单机程序被我们使用,如记事本.Excel.PPT.ZIP压缩等软件都是大家熟知的装机必备软件. 1.1.2. 网络程序 当电脑越来越多的参与到日常生产生活中,单机程序已经不能满足企业的需要.企业级应用要求能够最大程度的让更多的客户端参与到协同办公之中,所以依赖于网络的程

Servlet基础之一:Servlet基本接口与类

1.概述 Servlet API中共有5个包,约113个接口和类: javax.servlet javax.servlet.http javax.servlet.jsp javax.servlet.annotation javax.servlet.descriptor 2.Servlet接口 (1)所有Servlet/JSP应用必须直接或者间接实现Servlet接口, Servlet/JSP容器会将实现了Servlet接口的类加载至容器,以供访问. (2)Servlet中共定义了5个方法: vo

Java web基础总结四之—— Servlet基础

Java web基础总结四之-- Servlet基础 一.什么是Servlet? 通过名字就能看出来,Servlet 就是在服务器上运行的小程序.Servlet是sun公司(现在已经属于oracle了)实现的一门用于开发动态java web资源的技术.Sun公司在其API中提供了一个servlet接口,如果你想开发一个动态的java web资源,需要完成以下2个步骤:编写一个Java类,实现servlet接口.把开发好的Java类部署到web服务器中. Servlet接口已经有了两个默认的实现类