一、Servlet创建与使用

一、Servlet实现步骤
  1. 编写一个java类,继承httpServlet
  2. 把开发好的java类部署到web服务器上
继承关系
Servlet
            --genericServlet
                  --HttpServlet
                          --自己的servlet
二、项目创建与部署
1、创建项目
2、配置服务器环境
部署到服务器上
三、Web.xml 会增加这些配置
       1 <servlet>
           <servlet-name>ServletDemo1</servlet-name>
           <servlet-class>com.javaweb.servlet.ServletDemo1</servlet-class>
             </servlet>
         <servlet-mapping>
              <servlet-name>ServletDemo1</servlet-name>
           <url-pattern>/servlet/ServletDemo1</url-pattern>
        </servlet-mapping>   


<servlet>
servlet-name servlet的注册名称
servlet-class 完整类名

<servlet-mapping>
url-pattern servlet的注册名称
servlet-name 访问路径 
 2、servlet访问URL映射配置 
     同一个 servlet 可以被映射到多个 URL 上,也可以使用通配符进行映射,有两种格式:一种是 *. 拓展名,一种是 /*
      例如:
 <servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/servlet/ServletDemo1</url-pattern>
  </servlet-mapping>
 
   <servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/index</url-pattern>
  </servlet-mapping>
     
      <servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
 
  <servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>*.haha</url-pattern>
  </servlet-mapping>
 
对于如下的一些映射关系:
   Servlet1 映射到 /abc/*
   Servlet2 映射到 /*
   Servlet3 映射到 /abc
   Servlet4 映射到 *.do
问题:
  当请求 URL “/abc/a.html” “/abc/*” “/*” 都匹配,哪个 servlet 响应
       Servlet 引擎将调用 Servlet1
  当请求 URL “/abc” 时, “/abc/*” “/abc” 都匹配,哪个 servlet 响应
       Servlet 引擎将调用 Servlet3
  当请求 URL “/abc/a.do” 时, “/abc/*” “*.do” 都匹配,哪个 servlet 响应
       Servlet 引擎将调用 Servlet1
  当请求 URL “/a.do” 时, “/*” “*.do” 都匹配,哪个 servlet 响应
       Servlet 引擎将调用 Servlet2
  当请求 URL “/xxx/yyy/a.do” 时, “/*” “*.do” 都匹配,哪个 servlet 响应
       Servlet 引擎将调用 Servlet2
匹配的原则就是 " 谁长得更像就找谁 "
3 load-on-startup
<!-- tomcat 启动时就开始加载值越小优先级越高 -->
    <load-on-startup>1</load-on-startup>
四、 servlet 运行过程
1 servlet 程序是由 web 服务器调用, web 服务器接受到客户的访问 servlet 访问请求后:
       1 )、 web 服务器首先检查是否已经装载并创建了该 servlet 实例对象,如果是直接执行第四步。
       2 )、装载并创建该 servlet 实例对象。
       3 )、调用该 servlet 实例对象的 initi() 方法
       4 )、创建一个用于封装 http 请求消息的 HttpServletRequest 对象和一个代表 HTTP 响应消息 HttpServletResponse 对象,然后调用 Servlet service() 方法并将请求和响应作为参数传递进去
       5)、web应用在被停止或重新启动前,servlet引擎将卸载servlet,并在卸载之前调用servlet的destory()方法。
* 只有首次访问才创建目标 servlet
2 、生命周期
    当第一次访问servlet这个对象的时候,服务器就会创建servlet实例,构造方法和initi方法会被先后调用,当发生请求时,服务器就会创建一个新的线程执行servlet里面的service方法在service方法里根据不同的请求方式 去调用doGet(),或doPost方法,服务器销毁的时候会销毁servlet对象,调用的destory方法。



猜你喜欢

转载自blog.csdn.net/gj_user/article/details/79927459
今日推荐