Java Web Servlet

Java Web Servlet

Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。

Servlet可完成以下功能:
  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。
【手工编写Servlet】
  1. 继承HttpServlet

  2. 重写doGet()或者doPost()方法

  3. 在web.xml中注册Servlet

Servlet的装载三种情况
  1. 1、自动装载:某些Servlet如果需要在Servlet容器启动时就加载,需要在web.xml下它的标签里中,添加优先级代码:

    <Servlet><load-on-startup>1</load-on-startup></Servlet>

    数字越小表示该servlet的优先级越高,会先于其他自动装载的优先级较低的先装载

  2. Servlet容器启动后,客户首次向某个Servlet发送请求时,Tomcat容器会加载它

  3. 当Servlet类文件被更新后,也会重新自动加载,Servlet是长期驻留在内存里的。某个Servlet一旦被加载,就会长期存在于服务器的内存里,直到服务器关闭,Servlet被装载后,Servlet容器创建一个Servlet实例并且调用Servlet的init()方法进行初始化。在Servlet的整个生命周期内,init()方法只被调用一次。

Servlet配置:
   <servlet>
       <!-- 声明Servlet对象 -->
       <servlet-name>MyServlet</servlet-name>
       <!-- 上面一句指定Servlet对象的名称 -->
       <servlet-class>com.servlet.MyServlet</servlet-class>
       <!-- 上面一句指定Servlet对象的完整位置,包含包名和类名 -->
   </servlet>
   <servlet-mapping>
       <!-- 映射Servlet -->
       <servlet-name>MyServlett</servlet-name>
       <!--<servlet-name>与上面<Servlet>标签的<servlet-name>元素相对应,不可以随便起名  -->
       <url-pattern>/MyServlet</url-pattern>
       <!-- 上面一句话用于映射访问URL -->
   </servlet-mapping
Servlet生命周期:

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。
ServletConfig

ServletConfig是针对特定的Servlet的参数或属性。ServletConfig是表示单独的Servlet的配置和参数,只是适用于特定的Servlet。从一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet有效,一个servlet的ServletConfig对象不能被另一个servlet访问。

初始化参数为局部的

 <servlet>
     <servlet-name>ServletConfigDemo</servlet-name>
     <servlet-class>com.yyz.servletconfig.ServletConfigDemo</servlet-class>
     <init-param>
                <param-name>xxx</param-name>
                <param-value>yyy</param-value>
     </init-param>
 </servlet>
 <servlet-mapping>
     <servlet-name>ServletConfigDemo</servlet-name>
     <url-pattern>/servlet/ServletConfigDemo</url-pattern>
 </servlet-mapping>

调用形式:

//获取指定的初始化参数
String value = config.getInitParameter("xxx");
response.getOutputStream().write(value.getBytes());
//获取所有的初始化参数
Enumeration<String> e = cofig.getInitParameterNames();
while(e.hasMoreElements()){
  String name = e.nextElement();
  value = config.getInitParameter(name);
  response.getOutputStream().write((name+"="+value+"<br/>").getBytes());
}
ServletContext

一个ServletContext对象表示了一个Web应用程序的上下文。

Servlet上下文:Servlet上下文提供对应用程序中所有Servlet所共有的各种资源和功能的访问。Servlet上下文API用于设置应用程序中所有Servlet共有的信息。Servlet可能需要共享他们之间的共有信息。运行于同一服务器的Servlet有时会共享资源,如JSP页面、文件和其他Servlet。

初始化参数为全局的

功能:

  • 获取web应用程序的初始化参数

  • 记录日志

  • application域范围的属性

  • 访问资源文件

  • 获取虚拟路径所映射的本地路径

  • web应用程序之间的访问

  • ServletContext的其他方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值