JAVAWEB---Servlet全介绍

Servlet

  • 简介:servlet是运行在服务器端的一段小程序。是SUN公司提出的一套javaweb开发规范。
  • 作用:用来接收浏览器端的请求,返回服务器端的响应
  • Servlet与普通java程序的区别?
    普通的java程序需要main方法就可以执行
    Servlet没有main方法,需要实现特定的接口;且必须运行在Servlet容器上(支持Servlet规范的服务器),用请求对象接收客户端的请求信息,用响应对象输出信息给客户端
  • Servlet映射
    所谓的映射就是给这段java小程序可以访问的url地址
    -映射方式一
    修改web.xml文件(无论哪个版本的Servlet都支持)
<servlet>
        <!--名字是可以随便起的,与下面的mapping对应即可-->
        <servlet-name>Demo5Servlet</servlet-name>
        <servlet-class>com.itheima.web.servlet.Demo5Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <!--与上面对应-->
        <servlet-name>Demo5Servlet</servlet-name>
        <url-pattern>/Demo5</url-pattern>
    </servlet-mapping>

-映射方式二
使用注解映射Servlet。必须在Servlet3.0之后

//注意urlPatterns和value都是映射地址,使用哪一个都可以,如果使用value且只有一个值的话,value可以省略
@WebServlet(value = "/Demo5Servlet",/*urlPatterns = {"/Demo5","/Demo6"}*/)

映射的细节:
一个servlet要想被访问到,就必须映射到一个地址上,实际上Servlet可以映射到多个地址上

  • 映射到多个地址上,在xml文件中编写多个<servlet-mapping>标签,或者使用注解,在value或urlpatterns数组中编写多个(优先级1)
  • 使用通配符*,特点,以/开头,以*结尾(优先级2)
  <servlet>        
  <servlet-name>demo3</servlet-name>        
  <servlet-class>com.itheima.servlet.ServletDemo3</servlet-class>    
  </servlet>    
<servlet-mapping>        
<servlet-name>demo3</servlet-name>        
<url-pattern>/demo3/*</url-pattern>    
</servlet-mapping>

地址以/demo3开头的都可以访问到此servlet

  • 以*开头,任意.字母结尾(优先级3)
 <servlet>        
 <servlet-name>demo3</servlet-name>        
 <servlet-class>com.itheima.servlet.ServletDemo3</servlet-class>   
 </servlet>   
 <servlet-mapping>       
 <servlet-name>demo3</servlet-name>        
 <url-pattern>*.do</url-pattern>    
 </servlet-mapping>

以.do结尾的都可以访问到此servlet

  • /*(优先级4)
    任意地址都可以访问到此servlet

Servlet的执行过程:
当在浏览器端输入URL地址后,服务器端接收到请求,去web.xml中的<Servlet-mapping>标签中查找指定的URL,找到后根据<Servlet-name>查找到对应的<Servlet>标签,然后找到对应的Servlet程序,紧接着服务器会创建此Servlet对象并调用service(ServletRequest,ServletResponse)方法(在父类中),在父类中的service(ServletRequest,ServletResponse)方法调用的是 service(HttpServletRequest,HttpServletResponse)方法。父类的service()方法会判断请求方式,进而决定调用doXXX()方法
Servlet的生命周期:
Servlet对象由服务器创建,服务器在创建对象时会调用它的默认构造方法,创建完对象紧接着会调用init(ServletConfig servletConfig)完成初始化。
总结:
1,Servlet对象是由服务器在第一次访问的时候创建的
2,Servlet对象会被创建一次,紧接着会调用init()方法完成初始化
3,多次访问服务器不会再创建该Servlet对象
4,Servlet的存活范围即创建后一直存在,直到服务器停止;即servlet是单例的,每次调用,服 务器会使用多线程机制调用service()方法
5,Servlet对象销毁之前会调用Destory()方法
注意!
我们可以在服务器启动时就创建Servlet对象!
1,修改xml文件

<servlet>
        <!--名字是可以随便起的,与下面的mapping对应即可-->
        <servlet-name>Demo5Servlet</servlet-name>
        <servlet-class>com.itheima.web.servlet.Demo5Servlet</servlet-class>
        //这段代码可以让Servlet在服务器启动时就创建
        <load-on-startup>3</load-on-startup>
    </servlet>

2,使用注解

@WebServlet(value = "/Demo5Servlet",loadOnStartup = 2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值