zoukankan      html  css  js  c++  java
  • JavaWeb总结(三)

    什么是Servelt

      - 是运行在Web服务器或应用服务器上的Java程序

      - 在Web上创建动态内容的有效而强大的解决方案

      - 由容器来管理生命周期与Web服务器交互

    Servlet规范的组成

      Java Servlet作为Java EE的一部分,Sun公司规范并定义了许多功能

        - Web应用程序

        - Servlet与HTTPServlet

        - 过滤器

        - 安全

        - 国际化

    Servlet API

      - SUN公司定义的一套专门用于开发Servlet程序的Java类和接口

      - Web容器和Servlet程序之间使用Servlet API进行通信

     

    Servlet API类图

    Servlet生命周期

      - 控制Servlet运行的多线程环境

      - 遵循初始化、服务器和销毁三个阶段

     

    Servlet生命周期图

    Servlet与HTTP协议

      - 基本的Servlet对HTTP一无所知

      - 以Javax.servlet.http.HttpServlet类的形式实现对HTTP协议的支持

     

    HttpServlet生命周期

    编译Servlet

      将Servlet类库包含进来的方法

        - 将servlet-api.jar 放置在CLASSPATH中

        - 将servlet-api.jar 放置在 JDK安装目录jrelibext目录下

     

    Servlet Api放置目录

    部署Servlet

      Servlet是作为容器管理的Web应用程序的一部分,要使Servlet能够运行,即被Web容器调用,以产生动态响应,就需要部署Servlet。

      - 创建部署描述文件(web.xml)

        创建的web.xml文件:

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    </web-app>

      - 在容器中注册Servlet

        更改后的web.xml文件:

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <servlet>
    <description></description>
    <display-name>ServletTest</display-name>
    <servlet-name>ServletTest</servlet-name>
    <servlet-class>java.com.test.ServletTest</servlet-class> 
    </servlet>
    </web-app>

    注册Servlet

      - 映射Servlet

        更改后的web.xml文件:

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <servlet>
    <description></description>
    <display-name>ServletTest</display-name>
    <servlet-name>ServletTest</servlet-name>
    <servlet-class>java.com.test.ServletTest</servlet-class> 
    </servlet>
    <servlet-mapping>
    <servlet-name>ServletTest</servlet-name>
    <url-pattern>/ServletTest</url-pattern>
    </servlet-mapping>
    </web-app>

    映射Servlet

    Servlet URL映射路径

      - 精确模式匹配:这种类型的模式用于将请求一对一映射到指定的Servlet。

      - 扩展名匹配“*.扩展名”:在这种情况下,所有以指定扩展名结尾的URL都转向指定的Servlet。

      - 路径映射:路径映射必须以'/'开始,以'/*'结尾,在这之间可以出现任意字符。路径匹配通常用于将对某个目录的所有请求转向一个指定的Servlet。

      - 默认的Servlet,'/':默认的Servlet映射用于定义一个在没有给出路径信息时请求转向的Servlet。

    Servlet配置

      - 为Servlet提供初始化配置信息 

      - 配置信息由web.xml声明中的字符串组成 

      Servlet在编译的代码之外有初始化参数,当参数改变时,不需要重新编译Servlet,每个servlet都有一个与之相联的对象ServletConfig,Servlet对象提供了如下的方法来访问初始化数据

        - getInitParameter(String name):这个方法返回指定参数的值,如果该值不存在就返回null;

        - getInitParameterNames():这个方法以字符串对象枚举的方式返回Servlet初始化参数的名称,如果没有初始化参数,则返回一个空的枚举;

      web.xml文件代码

    <servlet><init-param>
            <param-name>name</param-name>
            <param-value>Tiger</param-value>
        </init-param>
    </servlet>

      Java代码

    //str的值为Tiger
    String str = getServletConfig().getInitParameter("name"); 

    ServletContext

      在Servlet编程中,容器创建了应用程序上下文对象(ServletContext),用于描述Servlet运行坏境的环境,使得Servlet可以同容器进行通讯。

      - 属于整个Web应用程序

      - 可以访问到Web应用程序资源的本地输入流 

      - 把资源的虚拟路径转换为物理路径 

      - 记录事件日志 

      - 绑定一个对象在整个Web应用程序中共享 

      ServletConfig接口有一个方法getServletContext()返回一个ServletContext对象。然后就可以利用ServletConfig接口定义的方法获取在开发中需要的信息。ServletContext接口定义了主要方法有:

    方法

    描述

    getMajorVersion()

    返回容器支持的Servlet API的主要版本

    getResourceAsStream()

    返回资源对象的输入流

    getAttribute()

    获得绑定在容器中的对象

    setAttribute()

    通过名字把一个对象绑定在容器中

    getInitParameter()

    获得容器的初始化信息参数

    getRealPath()

    返回虚拟路径的物理路径

    Log()

    把信息写入到Servlet日志文件中

     

    ServletContext和ServletConfig的关系

    在Servlet中共享信息 

      - 为所有的Servlet设置一个实时变化的参数值 

      - 在Web应用程序中共享一个对象 

    虚拟路径转换为物理路径 

      - Web应用程序的所有资源都被抽象到一个虚拟路径上 

      - 以根'/'开始,后面接上Web资源所在子目录的虚拟路径 

    http://localhost:8080/JavaWeb/servlet.html

      -  不能直接使用虚拟路径来获得物理资源的位置 

        getResourcePaths(java.lang.String path):该方法返回指定路径下所有Web资源的列表。路径必须从Web应用程序的根"/"开始。

        getResourceAsStream(java.lang.String path):该方法返回Web应用程序中一个物理资源的InputStream对象。对一个资源需要逐字节读取的时候该方法比较适用。

        getResource(java.lang.String path):该方法返回一个Web资源的URL地址。

     

     

    我不作恶

    但有权拒绝为善

    我不赞同

    但是我捍卫你不为善的权力

  • 相关阅读:
    windows下载
    vue-element-admin改造步骤
    js处理url
    好用的工具
    数据库设计工具
    虚拟机使用
    Mac上编译C
    MAC系统配置
    SQL语法
    SSMP一次请求数据处理过程分析
  • 原文地址:https://www.cnblogs.com/HackerBlog/p/5945736.html
Copyright © 2011-2022 走看看