zoukankan      html  css  js  c++  java
  • JAVA SERVLET专题(上)

    SERVLET简介

    ·Java Servlet 是和平台无关的服务器端组件,它运行在Servlet容器中。Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户端的通信采用“请求/响应”的模式。

    ·Servlet可完成如下功能:

    1.创建并返回基于客户请求的动态HTML页面。

    2.创建可嵌入到现有HTML页面中的部分HTML页面(HTML片段)。

    3.与其他服务器资源(如数据库或基于Java的应用程序)进行通信。

     

    Servlet容器响应客户请求的过程

     ServletAPI

     

    Servlet容器响应客户请求的过程

    1.Servlet引擎检查是否已经装载并创建了该Servlet的实力对象。如果是,则直接执行第4步,否则,执行第2步。

    2.装载并创建该Servlet的一个实例对象:调用该Servlet的构造器。

    3.调用Servlet实例对象的init()方法。

    4.创建一个用于封装请求的ServletRequest对象和一个代表响应消息的ServletRequest对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

    5.WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。

    Servlet的注册与运行

    ·Servlet程序必须通过Servlet容器来启动运行,并且储存目录有特殊要求,通常需要存储在<WEB应用程序目录>WEB-INFclasses目录中。

    ·Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。

    ·一个<servlet>元素用于注册一个Servlet,它包含有两个主要的子元素:分别是<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。

    ·一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

    Servlet映射的细节

    ·容一个Servlet可以别映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。

    ·在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定的格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。

    <servlet-mapping>

      <servlet-name>AnyName</servlet-name>

      <url-pattern>*.do</url-pattern>

    </servlet-mapping>

     

    <servlet-mapping>

      <servlet-name>AnyName</servlet-name>

      <url-pattern>/action/*</url-pattern>

    </servlet-mapping>

    ServletConfiguration 接口

    ·Servlet在有些情况下可能需要访问Servlet容器或借助Servlet容器访问外部的资源,所以,Servlet引擎需要将表示Servlet容器的对象传递给Servlet。另外,在web.xml文件中为某个Servlet设置的友好名称和初始化参数等信息也需要传递给该Servlet。

    ·Servlet引擎将代表Servlet容器的对象(ServletContext)和Servlet的配置参数信息一并封装到一个称为ServletConfig的对象中,并在初始化Servlet实例对象时传递给该Servlet。ServletConfig接口则用于定义ServletConfig对象需要对外提供的方法,以便在Servlet程序中可以调用这些方法来获取有关信息。

    ·Servlet迎请调用Servlet的实力对象的init(ServletConfig config)方法将ServletConfig对象传递给Servlet。Servlet.getServletConfig()方法必须返回init(ServletConfig config)方法传递进来的这个ServletConfig对象的引用

    ServletConfig接口的方法

    ·getInitParameterNames

    ·getInitparameter

    ·getServletName

    ·getServletContext

    ServletContext接口

    ·Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象呗包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回SErvletContext对象的引用。

    ·由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为application对象(Web应用程序对象)。

    ·功能:

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

    记录日志

    application域范围的属性

    访问资源文件

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

    WEB应用程序之间的访问

    ServletContext的其他方法

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

    ·为WEB应用程序设置初始化参数的好处在于不需要修改Servlet源程序,就可以改变一些参数信息。

    ·ServletContext.getInitParameterNames方法用于返回一个包含WEB应用程序的所有初始化参数名称的Enumeration集合对象,ServletContext.getInitParameter方法用于返回某个指定名称的初始化参数值。

    ·在web.xml文件的跟元素<web-app>中增加<context-param>子元素,如下所示:

    <context-param>

      <param-name>companyName</param-name>

      <param-value>lampbrother</param-value>

      </context-param>

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

    ·getRealPath(String path)方法:用于返回某个虚拟路径所映射的本地文件系统路径

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/liangxiaoyu/p/5072731.html
Copyright © 2011-2022 走看看