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

JavaWeb学习打卡10(HttpServletRequest详解应用、获取参数,请求转发实例)

HttpServletRequest

HttpServletRequest  代表客户端的请求,用户通过Http 协议访问服务器,HTTP 请求中的所有信息会被封装到 HttpServletRequest ,通过这个HttpServletRequest 的方法,获得客户端的所欲信息

HttpServletRequest  常见  get 方法

应用:

获取前端传递的参数(获取参数的 4 个方法,常见的只有2  个)

Request 应用实例(获取参数,请求转发):

先创建一个 请求类:

package com.xu.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;public class RequestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String username = req.getParameter("username");String password = req.getParameter("password");String[] hobbys = req.getParameterValues("hobbys");System.out.println("====================");System.out.println(username);System.out.println(password);System.out.println(Arrays.toString(hobbys));System.out.println("====================");//通过请求转发req.getRequestDispatcher("/success.html").forward(req,resp);resp.setCharacterEncoding("utf-8");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

再到 index.jsp 文件中写好前端页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body><div style="text-align: center"><!--  这里表单表示的意思为:以post 方式提交表单,提交到我们的login请求      --><form action="${pageContext.request.contextPath}/login" method="post">用户名:<input type="text" name="username"> <br>密码:<input type="password" name="password"><br>爱好:<input type="checkbox" name="hobbys" value="女孩">女孩<input type="checkbox" name="hobbys" value="写代码">写代码<input type="checkbox" name="hobbys" value="唱歌">唱歌<input type="checkbox" name="hobbys" value="电影">电影<br><input type="submit"></form></div></body>
</html>

接着再创建一个自写 success.html 页面:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>登录成功了</h1></body>
</html>

再到web.xml 文件中 注册 Servlet 以及配置请求路径:

    <servlet><servlet-name>RequestServlet</servlet-name><servlet-class>com.xu.servlet.RequestServlet</servlet-class></servlet><servlet-mapping><servlet-name>RequestServlet</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>

测试运行结果:

笔试常见题:

请你聊聊重定向和转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会发生变化    307
  • 重定向的时候,url地址会发生变化    302
http://www.dtcms.com/a/293045.html

相关文章:

  • PyTorch常用工具
  • 我的第一个开源项目 -- 实时语音识别工具
  • C++中的list(2)简单复现list中的关键逻辑
  • 水电站自动化升级:Modbus TCP与DeviceNet的跨协议协同应用
  • CMake实践:CMake3.30版本之前和之后链接boost的方式差异
  • 渗透部分总结
  • 从 COLMAP 到 3D Gaussian Splatting
  • vue2的scoped 原理
  • Flex/Bison(腾讯元宝)
  • 开源AI智能客服、AI智能名片与S2B2C商城小程序在客户复购与转介绍中的协同效应研究
  • 禁食时长与关键生物反应的相对强度对照表
  • syscall函数用法
  • Java 中 String 类的常用方法
  • JavaScript的进阶学习--函数和基本对象的解析
  • 16-MSTP
  • 加速度计输出值的正负号与坐标系正方向相反
  • 基于 Agent 的股票分析工具
  • Windows Server 设置MySQL自动备份任务(每日凌晨2点执行)
  • 洛谷刷题7..22
  • 贪心算法Day3学习心得
  • VBScript 拖拽文件显示路径及特殊字符处理
  • gitlab私服搭建
  • 根据数据,判断神经网络所需的最小参数量
  • 如何搭建appium工具环境?
  • 嵌入式学习-土堆目标检测(2)-day26
  • 浏览器解码顺序xss
  • UE5 UI WarpBox 包裹框
  • Leetcode力扣解题记录--第41题(原地哈希)
  • 【Pytest】从配置到固件的使用指南
  • 【工作常用】C++/QT插件编程思想——即插即用