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

    Servlet简介:

        Servlet是一个符合特定规范的java程序,是一个基于java技术的Web组件,Servlet运行在服务器端,由Servlet容器所管理,用于处理客户端请求并作出相应;

    Servlet作用:

        主要用于生成动态的内容,它可以接受和处理请求,并动态接受和处理请求,并动态生成HTML内容对客户端进行响应;

    Servlet与JSP关系:

        JSP首先转换为.java文件,被JVM编译成一个.class,其实上他俩就是一个东西

        JSP进行页面数据的渲染,Servlet处理请求和响应;

    Servlet的创建配置启动

      实现Servlet接口

         init():初始化Servlet
                默认Servlet的初始化在首次访问到Servlet时进行初始化操作,可以通过<load-on-stratup>控制初始化顺序,如果这个节点为负数或者不配置则是默认的初始化顺序;
                如果这个节点的值正数,则根据数的大小进行初始化操作,也就是说在服务启动的时候会初始化Servlet,并且值越小初始化操作越先执行;
           getServletConfig()获取Servlet配置信息 
           service()负责处理用户的请求和相应
                当每一次请求到Servlet时会执行service()方法;
           getServletInfo()获取Servlet信息
           destroy()销毁
                当项目服务停止时会将Servlet容器中装载的所有Servlet释放掉;

    访问Servlet:
          1.配置Web.xml
              <!-- 同一个Servlet在Web.xml当中有两项配置 -->
               <servlet>
            <!--Servlet名称-->
              <servlet-name>DemoServlet</servlet-name>
              <!--对应Servlet的路径(全路径)-->
              <servlet-class>com.demo.servlet.DemoServlet</servlet-class>
              <!--设置Servlet初始化时机-->
              <load-on-startup>1</load-on-startup>
               </servlet>
               <servlet-mapping>
              <!--映射的名字-->
              <servlet-name>DemoServlet</servlet-name>
              <!--暴露给用户的访问地址,并且可以多个-->
              <url-pattern>/DemoServlet</url-pattern>
               </servlet-mapping>

       2.注解

             //我们通过Servlet模板生成的注解默认是只有一个访问地址,如果说要加上其他配置信息,需要以键值对方式体现出来
             @WebServlet("/DemoServlet")
             @WebServlet(loadOnStartup=1,urlPatterns= {"/DemoServlet","/yyy"})

        3.注意问题:
             web.xml和注解方式可以同时存在,但是name和url必须是不相同的,否则会报错
             Servlet和JSP都是单例的,但是现在如果两种方式同时存在,那么创建了两个

    继承GenericServlet类
           service():负责处理用户的请求和相应
           在GenericServlet类中已经对Servlet接口中的4个方法进行了重写,所以子类不需要再次重写其余4个方法

    继承HttpServlet
         主要关注两个方法:
            doGet(HttpServletRequest request, HttpServletResponse response);
            doPost(HttpServletRequest request, HttpServletResponse response);

    Servlet体系结构
      Servlet接口----->实现类(GenericServlet)------>子类(HttpServlet)
      ServletRequest---->子接口(HttpServletRequest)
      ServletResponse---->子接口(HttpServletResponse)

    初始化参数
          局部:
             在Servlet节点当中配置如下信息
              <init-param>
               <param-name>name</param-name>
               <param-value>王洪涛</param-value>
              </init-param>
             获取:在当前配置的Servlet当中
              String value=getInitParameter("对应的init-param中配置的name属性值")
          全局:
             在外部配置如下信息
              <context-param>
               <param-name>name</param-name>
               <param-value>王洪涛</param-value>
              </context-param>
             获取:在任何Servlet当中
              String value=getServletContext().getInitParameter("对应的context-param中配置的name属性值");

    Servlet的生命周期

        

        

  • 相关阅读:
    怎么防止重复提交
    如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    什么是 JavaConfig?
    Spring Boot 有哪些优点?
    GBK和GB2312编码
    2.补充:计算机表示的单位:
    python中字符串的编码和解码
    Spring Boot 有哪些优点?
    Maven的工程类型有哪些?
    Maven仓库是什么
  • 原文地址:https://www.cnblogs.com/wnwn/p/11142431.html
Copyright © 2011-2022 走看看