zoukankan      html  css  js  c++  java
  • servlet 基础学习一

    Servlet 是个特殊的 java 类,这个java类必须 继承 HttpServlet;每个Servlet可以响应客户端的请求。

    》 doGet:用于响应客户端的GET请求;

    》 doPost:用于响应客户端的POST请求;

    Servlet为了响应这2种请求,必须重写doGet()和doPost两个方法。大部分的时候,Servlet对于所有的请求的响应都是完全一样的。因此,可以采用重写一个方法来替代上面的几个方法:只需要重写service()方法即可响应客户端的所有请求。

    另外,HttpServlet 还包含

          init(ServletConfig config):创建Servlet实例时,调用该方法初始化servlet资源。

          destory():销毁servlet实例时,自动调用该方法回收资源。

          通常无须重写 init() 和 destory() 两个方法,除非需要在初始化Servlet时,完成某些资源初始化的方法,才考虑重写init方法。如果需要在销毁servlet之前,先完成某些资源的回收,如关闭数据库连接等,才需要重写destory()方法。

          注意:不用为servlet类编写构造器,如果需要对servlet进行初始化操作,应将初始化操作放在Servlet的init()方法中定义。如果重写了init(ServletConfig config)方法,则应在该方法的第一行调用 super.init(config); 该方法将调用HttpServlet的init方法。

          Servlet 和 JSP 的 区别在于:

          1、Servlet 中没有内置对象,原来JSP中的内置对象都必须有程序显式创建。

          2、对于静态的html标签,Servlet都必须使用页面输出流逐行输出。

          JSP/Servlet 的生命周期

          jsp的本质就是servlet,开发者编写的jsp页面将由web容器编译成对应的Servlet,当Servlet在容器中运行时,其实例的创建及销毁等都不是由程序员决定的,而是由web容器进行控制的。

          创建Servlet实例有2个时机:

          1、客户端第一次请求某个Servlet时,系统创建该Servlet的实例:大部分的Servlet都是这种Servlet。

          2、web应用启动时立即创建Servlet实例,即load-on-startup Servlet。(注意:应用启动之时就创建Servlet,通常是用于某些后台服务的Servlet,或者需要拦截很多请求的Servlet;这种Servlet通常作为应用的基础Servlet使用,提供重要的后台服务。)

          load-on-startup Servlet 的配置:

          1、在web.xml 文件中通过<servlet.../>元素的<load-on-startup.../>子元素进行配置(eg1);

          2、通过@WebServlet Annotation 的 loadOnStartup 属性指定(eg2)。

          eg1:

         

          eg2:

         

          Servlet生命周期:

          1、创建Servlet实例;

          2、web容器调用Servlet的init方法,对Servlet进行初始化;

          3、Servlet 初始化后,将一直存在于容器中,用于响应客户端请求;如果客户端发送get请求,容器调用servlet的doGet方法处理并响应请求;如果客户端发送POST请求,容器调用Servlet的doPost方法处理并响应请求;或者统一使用service()方法来响应用户请求;

          4、web容器决定销毁Servlet时,先调用Servlet的destory方法,通常在关闭web应用之前销毁Servlet。        

          Servlet 参数配置与获取:

          eg:

          web.xml 文件

                

         TwoServlet.java文件

                

         注意:ServletConfig 获取配置参数的方法和ServletContext 获取配置参数的方法完全一样,只是ServletConfig是取得当前Servlet 的配置参数,而 ServletContext 是获取整个web应用的配置参数。            

         

  • 相关阅读:
    codeforce666A_dp
    杭电1789_贪心
    杭电2059_记忆化搜索
    杭电1503_输出最长公共子序列
    杭电1501_dfs和记忆化搜索
    杭电1081_二维dp
    杭电1078_dfs
    coderforce 675C(贪心)
    杭电2571_01背包
    杭电1069_01背包
  • 原文地址:https://www.cnblogs.com/pan1308/p/4371337.html
Copyright © 2011-2022 走看看