Servlet概述

目录
    1、什么是Servlet
    2、实现Servlet的三种方式
    3、<url-pattern>:映射的url路径
    4、创建一个简单的web应用
=======================================================================
Servlet概述
    生命周期方法:
        * void init(ServletConfig config):--> Tomcat创建Servlet实例后调用一次,传入配置信息,之后都不调用。
        * void service(ServletRequest request,ServletResponse response):-->每次处理请求时都会被调用;
        * void destroy():一般不调用,只有服务器关闭之前,调用一次。(但并不是用它来销毁Servlet)
    特性:
        * Servlet是单例模式的,一个类只有一个对象;当然可能存在多个Servlet类!
        * Servlet线程不安全的,所以它的效率是高的!
    Servlet类由我们来写,但对象由服务器来创建,并且由服务器来调用相应的方法。

1、什么是Servlet
        Servlet是JavaWeb的三大组件之一(Servlet、Filter、Listener),它属于动态资源。
    Servlet的作用是处理请求,服务器会把接收到的请求交给Servlet来处理,在Servlet中通常需要:
        * 接收请求数据;
        * 处理请求;
        * 完成响应。
    例如客户端发出登录请求,或者发出注册请求,这些请求都应该由Servlet来完成处理!Servlet需要我们自己来编写,
    每个Servlet必须实现javax.servlet.Servlet接口。

2、实现Servlet的三种方式(由我们自己来写!)
    实现Servlet有三种方式:
        * 实现javax.servlet.Servlet接口;(不方便)
        * 继承javax.servlet.GenericServlet类;(不方便)
        * 继承javax.servlet.http.HttpServlet类;(方便)
  通常我们会去继承HttpServlet类来完成我们的Servlet,但学习Servlet还要从javax.servlet.Servlet接口开始学习。
    Servlet.java
        public interface Servlet {
            public void init(ServletConfig config) throws ServletException;  -->生命周期方法
            public void service(ServletRequest req, ServletResponse res) throws Exception; 生命周期方法
            public void destroy();  -->生命周期方法
            public ServletConfig getServletConfig();   -->有用的方法,得到Servlet配置信息
            public String getServletInfo();  -->用不到的方法,无意义
        }
    [Servlet的对象不由我们来创建,由Tomcat来创建!Servlet中的方法大多数不由我们来调用,而是由Tomcat来调用。]

3、<url-pattern>:映射的url路径
    <url-pattern>是<servlet-mapping>的子元素,用来绑定Servlet的访问路径
    可以在一个<servlet-mapping>中给出多个<url-pattern>,也就是说一个Servlet可以有多个访问路径:
        <servlet-mapping>
            <servlet-name>xxx</servlet-name>
            <url-pattern>/hello1<url-pattern>
            <url-pattern>/hello2<url-pattern>
        </servlet-mapping>
    还可以在<url-pattern>中使用通配符,即“*”。
        * <url-pattern>/*<url-pattern>:表示匹配任何路径
        * <url-pattern>/do/*<url-pattern>:表示匹配以/do开头的任何路径
        * <url-pattern>*.do<url-pattern>:表示匹配任何以“.do”结尾的路径
    注意:
    * 通配符要么在开头,要么在结尾,不能在中间,例如:/*.do就是错误的使用。
    * 如果不使用通配符,那么<url-pattern>必须以“/”开头,例如:<url-pattern>abc</url-pattern>就是错误的

4、创建一个简单的web应用
        我们开始第一个Servlet应用吧!首先在webapps目录下创建helloservlet目录,它就是我们的应用目录了,
    然后在helloservlet目录中创建准备JavaWeb应用所需内容:
        helloservlet项目
            - WEB-INF目录
                - classes目录
                - lib目录
                - web.xml文件

    接下来我们开始准备完成Servlet,完成Servlet需要分为两步:
        编写Servlet类;
        在web.xml文件中配置Servlet;

    HelloServlet.java
    public class HelloServlet implements Servlet {
        public void init(ServletConfig config) throws ServletException {}
        public ServletConfig getServletConfig() {return null;}
        public void destroy() {}
        public String getServletInfo() {return null;}

        public void service(ServletRequest req, ServletResponse res)
            throws ServletException, IOException {
            System.out.println("hello servlet!");
        }
    }

  我们暂时忽略Servlet中其他四个方法,只关心service()方法,因为它是用来处理请求的方法。我们在该方法内给出一条输出语句!
    web.xml(下面内容需要背下来)
        <servlet>
            <servlet-name>hello</servlet-name>  [Servlet的名字]
            <servlet-class>cn.itcast.servlet.HelloServlet</servlet-class>  [Servlet的路径,用于反射获得Servlet对象]
        </servlet>
        <servlet-mapping>
            <servlet-name>hello</servlet-name>  [Servlet的名字]
            <url-pattern>/helloworld</url-pattern>  [Servlet对应的映射路径]
        </servlet-mapping>
    在web.xml中配置Servlet的目的其实只有一个,就是把访问路径与一个Servlet绑定到一起。
    在浏览器中访问:http://localhost:8080/helloservlet/helloworld即可在控制台上看到输出!
==================================================================================================

猜你喜欢

转载自blog.csdn.net/weixin_42472048/article/details/81592278
今日推荐