zoukankan      html  css  js  c++  java
  • Servlet基础

    Servlet学习笔记

    1、Servlet优点
        1)可移植性(Portability)
        servlet皆用java语言开发,延续了java 跨平台的优点
        
        2)强大的功能
        Servlet能够完全发挥java API的权威,包括网络、多线程、远程对象调用RMI、JDBC等。
        
        3)性能
        servlet对象实体通常会停留在servlet内存,相同的请求可利用不同的线程来处理。但不是一直停留内存。
        
        4)安全性
        servlet具有类型检查、垃圾收集、异常处理等特性。
        
    2、Servlet包结构
        javax.servlet.*
        提供了servlet基本库,抽象类和接口
        
        javax.servlet.http.*
        扩展继承了javax.servlet.*中某些类/接口,并增加与HTTP协议有关的功能
        
        

    public abstract interface Servlet {
                //得到servlet的初始化信息和启动参数
                ServletConfig getServletConfig();
            
                //被servlet容器调用,并根据初始化信息来创建一个servlet实例
                void init ( ServletConfig servletConfig ) throws ServletException;
                
                
                //接受客户请求并返回相应信息
                 void service(ServletRequest servletRequest,   
                                       ServletResponse   servletResponse)
                                                        throws ServletException, IOException;
                
                //返回servlet相关信息,包括作者、版本、版权等
                String getServletInfo();
                
                //被servlet容器调用,当该servlet不用的时候释放掉所占用的所有资源
                void destroy();
        }

        1、该接口只定义了servlet和客户端联系的方法并无实现。

        2、在servlet开始接收客户请求前由servlet容器调用init()方法对其初始化并将该实例放到服务器中。
        
        3、service()方法被servlet容器调用接受客户的请求并处理。
        ServletRequest类 :包含客户端的请求信息。
        ServletResponse类:包含服务器作出的回应。
        该方法会抛出ServletException和 IOException两个异常。
        
        4、当servlet实例长期不用,将被servlet容器通过垃圾处理器回收,并释放其所占的资源。
        
    3、javax.servlet.Servlet接口的派生类
        javax.servlet.GenericServlet
          该类实现了Servlet接口并实现了部分方法,当创建普通的和HTTP无关的操作是可以通过继承该类创建新的Serlvet。

        javax.servlet.http.HttpServlet
          该类继承了GenericServlet类,并新增了和HTTP有关的几种操作。
          
          doGet(HttpServletRequest request, HttpServletResponse response); 用来处理Http get请求
          doPost(HttpServletRequest request, HttpServletResponse response); 用来处理Http post请求
          
          service(HttpServletRequest request, HttpServletResponse response); 用来处理Http请求的,可以处理get, post,delete
        
    4、创建及配置Servlt
        1)、新建Java类,继承javax.servlet.http.HttpServlet;
        2)、实现service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
            init() throws ServletException
            init(ServletConfig config) throws ServletException 初始化方法,一旦WEB容器启动,则调用该方法
            destroy() WEB容器关闭或者确定了Servlet不再被使用时调用
        3)、进入WEB-INF目录,个性web.xml文件,增加servlet的描述信息,告诉WEB容器已经创建了一些Servlet
        4)、servlet说明:
            

    <servlet>
                <servlet-name></servlet-name>
                <servlet-class></servlet-class>
    </servlet>

        5)、servlet url匹配:
           

    <servlet-mapping>
                <servlet-name></servlet-name>
                <url-pattern></url-pattern> ==>表示由哪个url访问指定名称的servlet
            </seervlet-mapping>

    5、Servlet生命周期
        1)在WEB容器启动时,调用 init(ServletConfig)方法初始化Servlet
        2)由相应的Http请求方法或者service()方法处理请求并返回响应
        3)当servlet不再使用时,web容器调用destroy()方法销毁servlet
        
                                                     --by :练少

  • 相关阅读:
    转载 Spring boot中配置事务管理
    Mybatis Plus条件构造器condition动态判断优化
    【转载】 利用p6spy拦截并查看数据库执行操作
    使用P6Spy监控你的Spring boot数据库操作
    【转载】 《SpringBoot2.0 实战》系列-集成Quartz定时任务(持久化到数据库)
    baomidou的dynamic-datasource读写分离实现和加入AOP根据方法名选择库
    @EnableWebMvc 注解会让Swagger无效访问的问题
    RestTemplate发送请求并携带header信息
    Shell/Linux 将一个文件中的每两行合并成一行
    蛋白质印迹法(免疫印迹试验,Western Blot)
  • 原文地址:https://www.cnblogs.com/A0926/p/5316785.html
Copyright © 2011-2022 走看看