zoukankan      html  css  js  c++  java
  • servlet(JavaWeb核心)、HttpServlet

    1、servlet(JavaWeb核心)
    (1)创建类实现Servlet接口implement Servlet import javax.servlet.Servlet;
    (2)覆盖尚未实现的方法
    (3)在web.xml进行servlet的配置
    举个例子:
    [<servlet-mapping></servlet-mapping>里面的]的ServletQuick和
    <servlet-name>ServletQuick</servlet-name>[ <servlet></servlet>里面的]的ServletQuick
    名字必须一致;

    <servlet>
    <servlet-name>ServletQuick</servlet-name>
    <servlet-class>com.oracle.web.ServletQuick</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ServletQuick</servlet-name>
    <url-pattern>/ServletQuick</url-pattern>
    </servlet-mapping>

    (4)Servlet接口中的方法
    init(ServletConfig config)何时执行:servlet对象创建的时候执行
    ServletConfig : 代表的是该servlet对象的配置信息
    service(ServletRequest request,ServletResponse response)何时执行:每次请求都会执行
    ServletRequest :代表请求 认为ServletRequest 内部封装的是http请求的信息
    ServletResponse :代表响应 认为要封装的是响应的信息
    destroy()何时执行:servlet销毁的时候执行

    package com.oracle.web;
    
    import java.io.IOException;
    
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class ServletQuick implements  Servlet{
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            System.out.println("destroy方法正在执行");
        }
    
        @Override
        public ServletConfig getServletConfig() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public String getServletInfo() {
            // TODO Auto-generated method stub
            return null;
        }
    
        @Override
        public void init(ServletConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
            //ServletConfig里面封装的是该Servlet在web.xml里面的配置信息
            System.out.println("init方法正在执行");
            ServletContext servletContext = arg0.getServletContext();
        }
    
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
            // TODO Auto-generated method stub
            System.out.println("service方法正在执行");
            arg1.getWriter().write("service方法正在执行");
        }
                
    }

    当再次执行时:

    当直接点击红色方块时:

    当点击stop时:

    (5)Tomcat引擎
    解析请求的资源地址;
    举个例子:localhost:8080/WEB02/ServletQuick
    先找到WEB02文件的web.xml
    然后找到 <url-pattern>/ServletQuick</url-pattern>里面的ServletQuick
    进而找到<servlet-name>ServletQuick</servlet-name>[<servlet-mapping></servlet-mapping>里面的]的ServletQuick
    再找到<servlet-name>ServletQuick</servlet-name>[ <servlet></servlet>里面的]的ServletQuick
    最后找到<servlet-class>com.oracle.web.ServletQuick</servlet-class>的com.oracle.web.ServletQuick

     

    创建Servlet对象;
    创建代表请求的request对象和代表响应的response对象;
    response响应对象注意是否为空;
    每次访问service方法都会创建一对新的request和response对象;


    (6)基本配置:
    完全匹配:/aaa
    目录匹配:/aaa/bbb/ccc/*
    扩展名匹配:*.abcd
    (7)何时创建:默认第一次访问时创建
    当在servlet的配置时 加上一个配置 <load-on-startup>3</load-on-startup>[中间的“3”代表优先级] servlet对象在服务器启动时就创建

    (8)缺省Servlet:
    url-pattern配置一个/,/代表该servlet是缺省的servlet
    当你访问资源地址所有的servlet都不匹配时,缺省的servlet负责处理[D:javaEE omcat-7.0.52(x86)confweb.xml]

    <servlet-mapping>
         <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    注:静态资源举例比如HTML、CSS等;
    2、HttpServlet
    (1)继承 GenericServlet 实现 Servlet, ServletConfig,java.io.Serializable

    (2)重写service()方法:
    在该方法中先将ServletRequest和ServletResponse强转为了HttpServletRequest和HttpServletResponse;
    然后调用重载的service()方法,并将刚刚强转得到对象传递到重载的方法中;

  • 相关阅读:
    启动Kafka
    利用Flume将本地文件数据中收集到HDFS
    集群安装hbase
    安装并配置hive
    python文件引用其他文件中的变量
    模拟用户登录爬取淘宝数据
    信息领域热词分析系统--详细设计说明书
    信息领域热词分析系统--词云
    《TCP/IP详解卷1:协议》——第4章 ARP:地址解析协议(转载)
    深入理解计算机系统——第12章:多线程中共享变量
  • 原文地址:https://www.cnblogs.com/scw123/p/9822186.html
Copyright © 2011-2022 走看看