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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ServletJava编写的服务器端程序,用于处理客户端(通常是浏览器)发送的HTTP请求并生成响应。Servlet运行在支持Java Servlet规范的Web服务器中,如Apache Tomcat。 Servlet通过继承javax.servlet.HttpServlet类来创建。在Servlet中,可以重写一些方法来处理请求和生成响应,其中最常用的方法包括: - doGet(HttpServletRequest request, HttpServletResponse response):处理HTTP GET请求。 - doPost(HttpServletRequest request, HttpServletResponse response):处理HTTP POST请求。 - doPut(HttpServletRequest request, HttpServletResponse response):处理HTTP PUT请求。 - doDelete(HttpServletRequest request, HttpServletResponse response):处理HTTP DELETE请求。 在这些方法中,可以通过HttpServletRequest对象获取请求的参数、头信息等,并通过HttpServletResponse对象生成响应,如设置响应的内容、状态码、头信息等。 为了将Servlet与特定的URL映射起来,需要在web.xml文件中配置Servlet的映射关系。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> ``` 上述配置将名为MyServletServlet映射到"/myservlet"的URL上。当客户端请求该URL时,Web服务器将调用MyServlet的相应方法来处理请求。 除了处理请求和生成响应外,Servlet还可以在初始化和销毁时执行一些操作。可以通过重写init()和destroy()方法来实现这些操作。 希望这个简单的介绍对你有帮助!如果你有更多关于Servlet的问题,欢迎继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值