初识Servlet

本文介绍了Servlet的基本概念,展示了如何创建一个简单的Servlet程序,并详细讲解了在web.xml中配置Servlet映射的方法。通过一个HelloServlet实例,阐述了Servlet的工作原理。同时,讨论了常见的servlet-mapping匹配规则,包括精确路径、最长路径和扩展匹配,帮助读者理解Servlet的路由配置。
摘要由CSDN通过智能技术生成

系列文章目录

暂无



前言

本文包括以下内容

  • Servlet的介绍
  • 一个servlet的简单示例
  • servlet路由映射配置和规则

初识Servlet

  • Servlet = Service + applet (服务端小程序)是sun公司开发的一种动态web技术
  • 工作模式:客户端发送请求至服务器;服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器;服务器将响应返回客户端。
  • Servlet运行于支持Java的应用服务器中(servlet容器)。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来响应HTTP请求。

简单实现一个Servlet程序

  1. 实现HttpServlet接口并重写其中的doGet()和doPost()方法

    package com.quanlvsan.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class HelloServlet extends HttpServlet {
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setContentType("text/html;charset=utf-8");
            resp.getWriter().print("hello Servlet!我是权律三爸爸");
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doGet(req,resp);
        }
    }
    
    
  2. 配置路由 修改web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"         
             version="4.0"         
             metadata-complete="true">
      <display-name>Archetype Created Web Application</display-name>
      <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.quanlvsan.servlet.HelloServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
      </servlet-mapping>
    </web-app>
    
    
  3. 配置tomcat服务器
    在这里插入图片描述

  4. 访问对应的url
    在这里插入图片描述

常见servlet-mapping映射形式

  1. 一个servlet可以指定多个映射路径
    在这里插入图片描述

  2. 通用映射路径
    在这里插入图片描述

  3. 默认请求路径
    在这里插入图片描述

servlet-mapping规则

  1. 精确路径匹配
    – 例子:比如servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test,这个时候容器就会先进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,也不会去理会其他的servlet了。
    List item
  2. 最长路径匹配
    – 例子:servletA的url-pattern为/test/,而servletB的url-pattern为/test/a/,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。
  3. 扩展匹配
    – 例子:如果url最后一段包含扩展,容器将会根据扩展选择合适的servlet。例子:servletA的url-pattern:*.action
  4. 如果前面三条规则都没有找到一个servlet,容器会根据url选择对应的请求资源。如果应用定义了一个default servlet,则容器会将请求丢给default servlet
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值