zoukankan      html  css  js  c++  java
  • Servlet

    Servlet的入门
    五个方法:
    1:销毁:  destroy()
    2:初始化:  init (ServletConfig config)
    3:获得其他对象  getServletInfo()
    4:获得其他对象    getServletConfig()
    5:为请求进行服务:  service(ServletRequest req(请求),ServletResponse res(响应))
    Servlet的入门:
    编写类:
    public class ServletDemo1 implements Servlet{
       @Override
       /**
        * 为用户处理请求和响应的方法.
        */
       public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
           res.getWriter().println("Hello Servlet...");
       }
    ...
    }
    配置(XML工程里配置):
     <!-- 配置Servlet -->
     <servlet>
       <!-- Servlet的名称 -->
       <servlet-name>test1</servlet-name>
       <!-- SErvlet的全路径 -->
       <servlet-class>com.itheima.a_servlet.ServletDemo1</servlet-class>
     </servlet>
     <!-- Servlet的映射 -->
     <servlet-mapping>
       <!-- Servlet的名称 -->
       <servlet-name>test1</servlet-name>
       <!-- Servlet的访问路径 -->
       <url-pattern>/ServletDemo1</url-pattern>
     </servlet-mapping>
    访问:
    http://localhost:8080/day09/ServletDemo1
    使用ServletRequest接收参数
                  String getParameter(String name(表单的参数名));---用于接收一个名称对应一个值的数据.
                   String[] getParameterValues(String name);---用于接收一个名称对应多个值的数据.
                   Map getParameterMap();---用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.
                   Enumeration getParameterNames()            ---用于获取表单中提交的所有的参数的名称.
     
     
     
    Servlet的实现的关系
         Servlet            :接口
                   |
         GenericServlet    :通用的Servlet
                   |
          HttpServlet        :HttpServlet
                   编写一个类继承HttpServlet,重写doGet和doPost方法.
                   配置
     
    Servlet的生命周期:
           生命周期:就是一个对象从创建到销毁的过程.
           Servlet生命周期:Servlet从创建到销毁的过程.
               何时创建:用户第一次访问Servlet创建Servlet的实例
               何时销毁:当项目从服务器中移除的时候,或者关闭服务器的时候.
               用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行.
               任何一次请求服务器都会创建一个新的线程访问Servlet中的service的方法.
               在service方法内部根据请求的方式的不同调用doXXX的方法.(get请求调用doGet,post请求调用doPost).
               当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
     
    Servlet的相关的配置:
    启动时创建Servlet
    Servlet默认是在第一次访问的时候创建的.现在让Servlet在服务器启动的时候创建好.进行对Servlet的配置:
    在web.xml中在<servlet></servlet>标签中配置:
    <load-on-startup>2</load-on-startup>  --- 传入正整数,整数越小,被创建的优先级就越高.
     
    url-pattern的配置
    url-pattern配置方式共有三种:
    1.完全路径匹配    :以 / 开始                例如:    /ServletDemo4 , /aaa/ServletDemo5 , /aaa/bbb/ServletDemo6
    2.目录匹配        :以 / 开始 需要以 * 结束.   例如: /* ,/aaa/* ,/aaa/bbb/*
    3.扩展名匹配        : 以 * 开始的  不能以 / 开始. 例如: *.do , *.action
    错误的写法    : /*.do
     
    如果访问地址:
    http://localhost:8080/day09/aaa.do             :第二个
    完全路径匹配 > 目录匹配 > 扩展名匹配
     
    开发中的路径编写:
          相对路径:都是需要找位置相对关系.不能以 / 开始的.
              ./ 当前路径  ../上一级目录
               使用相对路径访问:
           绝对路径:不需要找位置相对关系. 以 / 开始的.
               绝对路径中分为客户端路径和服务器端路径:
                     客户端路径一定要加工程名.    /day09/ServletDemo6
                     服务器端路径不需要加工程名.   /ServletDemo6
     
    定时跳转:
    response中设置响应头
     
    addHeader(String name,String value);       --- 针对一个key对应多个value的响应头.
    addDateHeader(String name,long date);
    addIntHeader(String name,int value);
     
    setHeader(String name,String value);     --- 针对一个key对应一个value的响应头.
    setDateHeader(String name,long date);
    setIntHeader(String name,int value);
     
    例如:头信息: xxx:aaa
          addHeader(“xxx”,”bbb”);       -->xxx:aaa,bbb
          setHeader(“xxx”,”bbb”);       -->xxx:bbb
     
     
     
    获得Servlet的配置信息
    ServletConfig(了解)
    代表当前的servlet的配置信息
    * String getServletName();     ---获得Servlet在web.xml中配置的name的值.
    * String getInitParameter(String name); ---获得Servlet的初始化参数的.
    * Enumeration getInitParameterNames();     ---获得所有Servlet的初始化参数的名称.
     
    ServletContext(重要)
    ServletContext的作用:
    * 1.用来获得全局初始化参数.
    * 2.用来获得文件的MIME的类型.
    * 3.作为域对象存取数据.
    * 4.用来读取web项目下的文件.
     
    ServletContext是一个域对象.
      * 作用范围:整个web工程.
      * 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象.
      * 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.
     
     
    ServletContext的功能
    功能一:读取全局初始化参数
     
    geiInitParameter(String name)
    geiInitParameterName()(枚举)
     
    功能二:获得文件的MIME的类型
    geiMimeType(String file)
     
    功能三:作为域对象存取数据
    范围:整个web项目.而且全局的对象.
    创建:服务器启动的时候,服务器为每个web项目创建一个单独的ServletContext对象.
    销毁:服务器关闭的时候销毁ServletContext.
     
    功能四:读取web项目下的文件
    传统方式读取文件:
         使用的是相对路径,相对的JVM的路径.
         但是现在是一个web项目,相对于JVM的路径的.现在JVM已经交给tomcat管理.
     
    使用ServletContext读取
    InputStream getResourceAsStream(String path); --- 根据提供路径读取文件返回一个文件的输入流.
    String getRealPath(String path); --- 返回一个路径的磁盘绝对路径.
     
  • 相关阅读:
    VMware WorkStation 用 VMTools 官方下载地址 windows-vmtools tools-windows
    LeetCode Golang 9.回文数
    CentOS6.5中配置Rabbitmq3.6.6集群方案
    python之lambda、filter、map、reduce的用法讲解
    跨主机容器之间通信实现方式:etcd+flanned
    mongo3.4安装
    centos 时区的更改 UTC TO CST
    Elasticsearch5安装
    docker1.*.*版本安装
    使用weave来实现多宿主机中的docker容器之间通信
  • 原文地址:https://www.cnblogs.com/govzhou/p/9533992.html
Copyright © 2011-2022 走看看