美文网首页
3. Java Web 第一个Servlet例程

3. Java Web 第一个Servlet例程

作者: 飞扬code | 来源:发表于2019-07-08 19:15 被阅读0次

    Servlet技术: 用java语言开发动态资源的技术

    servlet特点:

    1)servlet就是一个普通的java类,继承HttpServlet类
    2)一个普通的java类实现了Servlet接口,也叫Servlet程序。我们通常继承HttpServlet是为了创建一个基于http协议的servlet程序。
    3)servlet程序交给tomcat服务器运行。

    开发servlet的步骤

    1)编写servlet程序,继承HttpServlet

    /**
     * 第一个servlet程序
     * @author APPle
     */
    public class HelloServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
               throws ServletException, IOException {
           //向浏览器输出内容
          response.getWriter().write("this is first servlet!!!"+new Date());
        } 
    }
    

    2)servlet程序交给tomcat服务器运行
    2.1 把servlet的class字节码拷贝到WEB-INF/classes目录下
    2.2 在web.xml文件中配置

     <!-- 浏览器访问: http://localhost:8080/Demo/hello -->
    
      <!-- 配置一个servlet -->
      <!-- servlet的配置 -->
      <servlet>
        <!-- servlet内部名称。可以自定义 -->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet类的全名:包名+简单类名 -->
        <servlet-class>com.demo.servlet.HelloServlet</servlet-class>
      </servlet>
    
      <!-- servlet的映射配置 -->
      <servlet-mapping>
        <!-- sevlet内部名称。和servlet配置的内部名称保持一致!! -->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet的路径映射。访问servlet的名称 -->
        <url-pattern>/hello</url-pattern>
      </servlet-mapping>
    

    Servlet的路径映射

    url-pattern: 表示servlet的路径映射,也叫servlet访问名称。


    image.png

    注意:
    1)url-pattern要么以/开头,要么以*开头

    例如: neuedu/demo1错误写法。 
    

    2)不能同时使用两种模糊匹配。

    例如: /neuedu/*.html 错误写法
    

    3)当多个url-pattern同时符合匹配规则,那么:

    3.1  精确匹配的url-pattern会优先被执行。(长的最像的url-pattern优先)
    3.2  后缀名结尾的模糊匹配的url-pattern优先级最低。
    

    Sevlet缺省路径

    / : 表示servlet的缺省路径。
    在tomcat服务器中配置了一个DefaultServlet,叫默认Servlet,该默认Servlet的url-pattern就是/ 。默认Servlet的作用,用于解析web应用下的静态资源。

    这里涉及一个经常会考察的问题: 浏览器输入一个资源名称时,查找资源的顺序是如何?
    1)首先,在当前web应用下的web.xml文件中查找是否有匹配的url-pattern
    2)如果匹配到,执行对应的servlet(动态资源)
    3)如果没有匹配到,就交给tomcat服务器的默认Servlet去处理
    4)默认Servlet会到当前web应用下读取对应名称的静态资源文件。
    5)如果读到对应的静态资源文件,那么就把内容返回给浏览器
    6)如果读不到对应的静态资源文件,那么就返回404的错误页面。

    Servlet的生命周期

    servlet的生命周期由tomcat服务器控制的。

    Servlet的四个生命周期实例化、初始化、处理请求、销毁。

    构造方法: 在创建servlet对象时调用。只调用1次。证明servlet对象在tomcat服务器中是单实例的。
    init方法:在创建完servlet对象后调用。只调用1次。
    service方法: 在每次请求servlet时调用。调用n次。
    destroy方法: servlet对象销毁时调用。只调用1次。tomcat服务器停止或web应用重新部署时调用

    image.png

    Servlet2 和 Servlet3的区别

    1、Servlet3可以完全抛弃web.xml配置文件
    欢迎页的名称:index.html或index.jsp,可以自动识别。

    2、创建servlet的区别
    servlet3中创建servlet无需在web.xml中进行配置
    通过注解实现配置,例如:

    @WebServlet(/url) 等价于 @WebServlet(name="xxx",urlPatterns="/url")
    //urlPattern可以设置为数组  urlPatterns={"/url1","/url2"}
    //servlet可以设置多个不同的访问url
    

    相关文章

      网友评论

          本文标题:3. Java Web 第一个Servlet例程

          本文链接:https://www.haomeiwen.com/subject/lngahctx.html