• Servlet使用简介


    Servlet的使用基本包含三个步骤:

    1、继承HttpServlet 或实现Servlet 接口 (根据源码分析最终都是对servlet接口的实现)

    2、配置地址: 配置web.xml 或者用注解的方式@WebServlet("/")

    3、重写service方法  

    Servlet使用的几种基本方法及其比较

    一、实现servlet接口,继承GenericServlet,继承HttpServlet,创建servlet类

           个中区别:

                  1、Servlet接口的实现

               其中接口要实现的方法有以下几个: 

               1)init(ServletConfigconfig)初始化根据servlet的配置进行初始化            

               2)、getServletConfig()  获取servlet配置,其返回值就是servletContext

               3)、service(ServletRequestrequest, ServletResponse respose) service方法,解决处理逻辑以及业务的实现

               4)、getServletInfo() 其返回得到的是servlet的描述信息

               5)、destroy()使用结束的销毁

              其中主要用到的是service(),其中service方法的参数requestrespose是由服务器解析请求页面传过来的参数。当然request以及response涉及到很多的方法,此就不做过多解释,大家可以自己自己使用过程中了解总结。

                 2、继承GenericServlet

        

    public abstract class GenericServlet      implements Servlet, ServletConfig, java.io.Serializable

                   可以看出GenericServlet其实是接口了servlet,并且对servlet实现方法中的service进行了抽象,这样在继承GenericServlet时只需要实现service方法就足够了,这样对于简单的逻辑开发就节省了很多代码量,也方便使用。

                3、继承HttpServlet   推荐使用

                  HttpServlet其实就是对GenericServlet类的继承,使用时需要重写service方法,在此就不多赘述。

                4、创建servlet类  推荐使用

                   既然servlet适用范围很广,使用范围大,那么开发者就为其创建了更加简单的使用方法,直接创建使用,这种方式也是比较推荐的方法,创建出来之后大家可以看到其又继承了HttpServlet,所以我们可以说其归根到底还是在实现servlet接口。

                

          (创建servle类,若new没有那么就在Other中找一下)

        

     1  //类声明之上是注解的方法,指定对应请求地址
     2 
     3              @WebServlet("/ServletTest")
     4 
     5             publicclass ServletTest extends HttpServlet {
     6 
     7               //因为在HttpServlet中接口了序列化,因此在这声明了一个序列化Id,可删
     8 
     9                private static final long serialVersionUID = 1L;
    10 
    11               //构造函数
    12 
    13                 public ServletTest() {
    14 
    15                      super();
    16 
    17                  }
    18 
    19              //值得一提的是其将service方法拆分,这里分为doGet() 和 doPost方法分别处理请求中doGet或doPost请求,但逻辑处理时基本不分。
    20 
    21             protectedvoid doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    22 
    23                   response.getWriter().append("Served at: ").append(request.getContextPath());
    24 
    25              }
    26 
    27  
    28 
    29               protectedvoid doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    30 
    31                 //这里将doPost请求转到doGet处理,所以若非业务需要完全可以在doGost只写一套处理逻辑  
    32 
    33                   doGet(request, response);
    34 
    35             }
    36 
    37         }

     

     

    二、配置地址,其中配置地址有两种方式。

           1、web.xml配置

                  在生成动态web项目时都会相应的产生web.xml,其中需要使用servlet时就要对其配置,其基本配置如下:

     1  <servlet>
     2 
     3     <servlet-name>myServlet</servlet-name>
     4 
     5     <servlet-class>com.lh.c8.n7.MyServlet</servlet-class>
     6 
     7   </servlet>
     8 
     9   <servlet-mapping>
    10 
    11     <servlet-name>myServlet</servlet-name>
    12 
    13     <url-pattern>/MyServlet</url-pattern>
    14 
    15   </servlet-mapping>

                   其中servlet标签中用servlet-name是设置的servlet标签名,可自由设置,但不可重复,在创建web项目时2.5版本之前直接创建servlet类时会直接生成响应的web.xml配置

                   其servlet-nameurl-pattern地址均用的servlet类名。

                   servlet-class是标识创建的,创建的servlet类所在的全路径名。

                    servlet-mapping中的 servlet-name需要与其对应的servlet相同,如此才能映射的到, url-pattern就是标识你的请求地址。

               2、注解的方式配置地址

               使用@WebServlet(“/请求地址”)

               使用了注解的情况下不需要配置web.xml

    三、重写其中的方法,主要是对service的重写

              对servlet的重写根据自己的业务需求,选择处理方法,同样在创建的servlet类中也按照需求操作,在此不做过多赘述。

             大家可能会想到,这里的每个类中只能处理一个servlet请求那么,是不是要对每个请求都要创建或继承servlet啊?是的这种方法确实这样。那么有没有什么好的方法呢,那答案必然是有的啦,就是粉装好的框架SpringMvc,对于SpringMvc 的使用之后会做类似总结,欢迎大家关注。

                      以上 为个人总结,若存在错误或不妥之处,还请各路大佬指点批评。

  • 相关阅读:
    [HTML] IE=edge,chrome=1的META标签详解
    [FFmpeg] ffmpeg 常用命令
    rsyncd 配置使用
    httpd配置
    ftp利用脚本添加本地用户
    zabbix监控概念
    搭建本地yum源并定时同步
    linux添加lvm磁盘大小,命令行创建swap
    500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    利用saltstack批量安装clamav杀毒软件
  • 原文地址:https://www.cnblogs.com/Mr-Dawei/p/7354643.html
Copyright © 2020-2023  润新知