当前位置: 首页 > article >正文

学习Java第57天,Servlet的基本使用步骤

步骤1 开发一个web类型的module

步骤2 开发一个UserServlet

public class UserServlet  extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 获取请求中的参数
        String username = req.getParameter("username");
        if("atguigu".equals(username)){
            //通过响应对象响应信息
            resp.getWriter().write("NO");
        }else{
            resp.getWriter().write("YES");
        }

    }
}
  • 自定义一个类,要继承HttpServlet类

  • 重写service方法,该方法主要就是用于处理用户请求的服务方法

  • HttpServletRequest 代表请求对象,是有请求报文经过tomcat转换而来的,通过该对象可以获取请求中的信息

  • HttpServletResponse 代表响应对象,该对象会被tomcat转换为响应的报文,通过该对象可以设置响应中的信息

  • Servlet对象的生命周期(创建,初始化,处理服务,销毁)是由tomcat管理的,无需我们自己new

  • HttpServletRequest HttpServletResponse 两个对象也是有tomcat负责转换,在调用service方法时传入给我们用的

步骤3 在web.xml为UseServlet配置请求的映射路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">

    <servlet>
        <!--给UserServlet起一个别名-->
        <servlet-name>userServlet</servlet-name>
        <servlet-class>com.atguigu.servlet.UserServlet</servlet-class>
    </servlet>


    <servlet-mapping>
        <!--关联别名和映射路径-->
        <servlet-name>userServlet</servlet-name>
        <!--可以为一个Servlet匹配多个不同的映射路径,但是不同的Servlet不能使用相同的url-pattern-->
        <url-pattern>/userServlet</url-pattern>
       <!-- <url-pattern>/userServlet2</url-pattern>-->
        <!--
            /        表示通配所有资源,不包括jsp文件
            /*       表示通配所有资源,包括jsp文件
            /a/*     匹配所有以a前缀的映射路径
            *.action 匹配所有以action为后缀的映射路径
        -->
       <!-- <url-pattern>/*</url-pattern>-->
    </servlet-mapping>

</web-app>
  • Servlet并不是文件系统中实际存在的文件或者目录,所以为了能够请求到该资源,我们需要为其配置映射路径

  • servlet的请求映射路径配置在web.xml中

  • servlet-name作为servlet的别名,可以自己随意定义,见名知意就好

  • url-pattern标签用于定义Servlet的请求映射路径

  • 一个servlet可以对应多个不同的url-pattern

  • 多个servlet不能使用相同的url-pattern

  • url-pattern中可以使用一些通配写法

    • / 表示通配所有资源,不包括jsp文件

    • /* 表示通配所有资源,包括jsp文件

    • /a/* 匹配所有以a前缀的映射路径

    • *.action 匹配所有以action为后缀的映射路径

步骤4 开发一个form表单,向servlet发送一个get请求并携带username参数

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="userServlet">
        请输入用户名:<input type="text" name="username" /> <br>
        <input type="submit" value="校验">
    </form>
</body>
</html>

最后启动项目测试.


http://www.kler.cn/news/155102.html

相关文章:

  • PTA结构体经典编程题
  • Android studio Load error:undefined path variables
  • ARM架构安全简介
  • 数据链路层之VLAN基本概念和基本原理
  • springboot 整合 RocketMQ 可用于物联网,电商高并发场景下削峰,保证系统的高可用
  • HarmonyOS应用开发——程序框架UIAbility、启动模式与路由跳转
  • 鸿蒙绘制折线图基金走势图
  • 一缕青丝寄相思
  • 万宾科技第四代可燃气体监测仪的作用
  • C-语言每日刷题
  • 测试类运行失败:TestEngine with ID ‘junit-jupiter‘ failed to discover tests
  • docker+jmeter+influxdb+granfana
  • 力扣labuladong一刷day25天
  • MacDroid Pro for Mac – 安卓设备文件传输助手,实现无缝连接与传输!
  • 整数分频,奇偶分频。
  • 【BVITS2】配置debug记录——Bert-VITS2-Integration-Pack-v2.0.2
  • 第十节HarmonyOS 使用资源引用类型
  • 在 TypeScript 中,interface、implements 和 extends 的作用
  • WT2003H语音芯片系列:通过bin文件实现板载语音更新,支持宽范围音频码率
  • CC++枚举类型与类型定义(typedef)
  • 【MySql】悲观锁和乐观锁的介绍
  • Micropython for QNX编译过程
  • Linux下配置邮箱客户端MUTT,整合msmtp + procmail + fetchmail
  • idea通过remote远程调试云服务器
  • 2015年五一杯数学建模C题生态文明建设评价问题解题全过程文档及程序
  • 分享一些Git的常用命令
  • 【Python】Gym的使用
  • OpenTelemetry系列 - 第2篇 Java端接入OpenTelemetry
  • ctfhub技能树_web_web前置技能_HTTP
  • Python海绵宝宝