servlet

前言:servlet用来响应客户端的请求

servlet基础知识

每一个servlet都是一个特殊的java类,这个类必须继承HttpServlet类 。

HttpServlet类 提供了三个比较重要的方法  ,子servlet可以根据需要进行重写

doGet()        ------用于处理Get方式提交的请求

doPost()      -------用于处理Post方式提交的请求

service()     --------即可处理Get方式的请求,也可处理Post方式的请求 (get方式和post方式提交的请求一般处理流程相同    所有子类重写这个方法来处理请求)

 HttpServlet类还提供以下两个方法

init()          ---------创建servlet实例时,自动调用该方法 进行初始化

destory      ----------销毁servlet实例时,调用该方法进行资源回收

servlet与jsp的主要区别 

1.jsp中内置了9个常用对象    而servlet要使用这几个对象  需要进行获取 

2.servlet要进行字符类的输出需要借助页面输出流out对象(response对象的替代品)来进行输出 

   或者把键值对放入request对象中,然后使用地址转发到一个jsp页面或者servlet类中  

servlet的配置   

要编写jsp页面需要导入jsp-api.jar包 

要编写servlet要导入servlet-api.jar包    这两个包可以在tomcat的lib目录中找到   

servlet有两种配置方式   一种是在web.xml中进行配置     一种是利用注解@WebServletAnnotation来进行配置 (这个支持servlet3.0及以上版本)

jsp/servlet的生命周期  

首先明确   一个servlet类提供服务,是通过这个类的实例对象来调用service()来响应请求的   ,其次,每个servlet类的实例对象是有容器(可以理解为tomcat服务器)来在合适的时间自动创建的   ,不需要程序员去创建 

合适的时间 主要是两个时间点:

1.第一次请求某个servlet类时,容器创建这个类的实例对象

   创建的实例对象存在在容器中,等待下一次来的请求 

  生命周期流程图: 

  请求某个servelt  → 创建该servlet类的实例对象  → 自动调用init()方法进行初始化 → 调用service()方法处理请求    →.....若干时间后,在合适的时间调用destory()方法回收资源 → 销毁该实例对象 

2.容器加载web应用时创建servlet类的实例对象

  这些servlet类要在配置的时候显示指定<load-on-startup     />

   这些servlet类在web应用一加载时就创建它们的实例对象  主要用于提供一些后台服务   (若一个serlet类没有提供service() 表明该类不用于处理用户请求)

   生命流程图 

   web应用加载 → 创建sevlet类的实例对象  → 自动调用init()方法进行初始化........

配置servlet类的参数  和 访问配置的参数  

为了避免硬编码耦合 ,可以通过在web.xml文件配置servlet类时使用

<init-param>

    <param-name></param-name> 

       <param-value></param-value>            

</init-param>

 来配置servlet的参数  让后再servlet中通过config对象(servlet中需要获取,jsp中内置)的getInitParameter()方法类获取配置的参数  

 例如可以把数据库的链接参数 配置web.xml中 ,这样如果需要更改数据库链接   就可以再web.xml文件中更改了  

同样在servlet3.0中可以通过注解@WebServlet 来配置参数   

原文地址:https://www.cnblogs.com/wangliyue/p/4109310.html