Servlet

Posted 咕噜噜zmj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet相关的知识,希望对你有一定的参考价值。

一、简介

  1、Servlet:
    狭义上的Servlet:仅仅指的是这个servlet接口
    广义的Servlet:不仅包含该Servlet接口,还包含该Servlet的接口的子类!
  2、Servlet是JavaWeb部分的三大组件:
    JavaWeb部分三大组件:Servlet、Filter、Listener,这三个组件都需要交给web服务器管理!

  3、Servlet的主要作用
          接收请求
          处理请求
          完成响应

  4、创建Servlet的方法:      

      1>自定义一个Servlet:
        1).自定义一个类,实现Servlet接口,并实现接口中的方法
        2).将自定义的servlet类在web.xml文件中配置一下!

 1     <!-- 使用servlet标签配置我们自定义的servlet -->
 2     <servlet>
 3     <!-- 在servlet-name该标签中,我们可以配置一个servletName,
 4     建议和servlet类的简类名一致 ,该servletName是我们自己使用-->
 5     <servlet-name>HelloServlet</servlet-name>
 6     <!-- 使用servlet-class标签配置自定义servlet类的全类名,
 7     这个全类名是给服务器使用的,服务器会使用这个全类名创建该类所对应的servlet对象
 8     -->
 9     <servlet-class>com.neuedu.servlet.HelloServlet</servlet-class>
10     </servlet>

 

1     <!-- 使用servlet-mapping标签配置servlet映射 -->
2     <servlet-mapping>
3     <servlet-name>HelloServlet</servlet-name>
4     <!-- 该url-pattern 是用来请求映射url地址的,也就说
5     该标签中的内容是给浏览器访问使用的!
6     -->
7     <url-pattern>/Hello</url-pattern>
8     </servlet-mapping>

 

      2>直接在项目的某一个包下右键—>New—>Servlet
          这种创建方式不用配置web.xml文件,系统会进行自动配置

二、Servlet生命周期

  1. Servlet生命周期:就是Servlet对象由产生到销毁的过程

    涉及到的方法:

      1)    Servlet构造器:在第一次访问该servlet的时候调用,且只会被调用一次,说明该Servlet是单例的,注意:不要在Servlet中定义非共享的变量。

      2)    init()方法:在第一次访问该servlet的时候调用【在构造器被调用之后紧接着被调用】,且该方法只会被调用一次

      3)    service()方法:每次访问该Servlet都会调用一次service()方法,因此业务逻辑代码,主要写在service()方法中

      4)    destroy()方法:该方法会在项目被卸载(服务器关闭)的时候被调用,且只会被调用一次

  2、普通Servlet生命周期:请求的时候才将Servlet对应的字节码文件加载到虚拟机中

  3、默认<load-on-startup></load-on-startup>值为负,即普通Servlet

  4、设置<load-on-startup>1</load-on-startup>值为正(优先级0,1,2……),当部署的时候就会调用init()方法

三、相关接口

  1、ServletConfig

    1)    代表:代表当前Servlet的配置信息,每个Servlet对应唯一的一个ServletConfig对象

1 <servlet>
2       <servlet-name>MyServlet1</servlet-name>
3       <servlet-class>com.neuedu.firstservlet.web.MyServlet1</servlet-class>
4       <init-param>
5           <param-name>username</param-name>
6           <param-value>张三</param-value>
7       </init-param>
8 </servlet>

 

    2)    获取:由Tomcat服务器创建,通过参数的形式传递给init()方法

    3)    功能:

        获取当前servlet的名称【getServletName()】

        获取当前servlet的初始化参数【getInitParameter("username")】

        获取Servletcontext【getServletContext()】

  2、ServletContext:

    1)    代表:ServletContext代表的是当前web应用!

    2)    获取 :通过ServletConfig对象获取[getServletContext()]

    3)    功能:

         获取整个web应用的初始化参数【getServletContext()】

        可以做为javaweb部分的四大域对象之一使用

        可以获取当前项目的名称【getContextPath()】

        可以获取文件的绝对路径[getRealPath("/index.html")]

    路径:

                   虚拟路径:http://localhost:8080/servlet01/BServlet

                   真实路径:是指的在本地磁盘上的具体路径

以上是关于Servlet的主要内容,如果未能解决你的问题,请参考以下文章

servlet和filter的区别

Java基础——JSP

java---servlet与filter的联系与区别

servlet,filter,listener,intercepter区别

Tomcat根据JSP生成Servlet机制解析

servlet,过滤器,监听器,拦截器的区别