2-HttpServletRequest对象
HttpServletRequest对象
该对象主要用于接收客户端发送过来的信息,如请求参数、请求头等
HttpServletRequest是ServletRequest的唯一的子接口
接收请求
常用方法
//完整url路径
String url = req.getRequestURL().toString();
//部分路径
String uri = req.getRequestURI();
//获取请求的参数(如果有的话,即路径中`?`后面的字符串)
String query = req.getQueryString();
//请求方式get、post
String method = req.getMethod();
//请求协议(http/1/1)
String protocol = req.getProtocol();
//获取项目站点名
String webapp = req.getContextPath();
请求为【localhost:8083/sr02/servlet02
】时输出:
请求为【localhost:8083/sr02/servlet02?name=xiaod&passwd=123456
】时:
详细参数获取(重点)
//获取指定参数,返回字符串
String name = req.getParameter("name"); //用户名
String passwd = req.getParameter("passwd"); //密码
获取多个同名参数(适用于复选框)
//多个参数名称相同,用数组收集
//如:参数为 name=xiaod&passwd=123456&hobby=sing&hobby=dance
String[] hobbies = req.getParameterValues("hobby");
中文乱码问题
tomcat8以上版本只有get请求会乱码,使用字符串乱码处理方式来解决
使用post请求提交表单时,若含有中文,获取到的是乱码
验证步骤
-
在webapp下创建login.jsp文件
-
在login.jsp下粘贴以下代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>登录</title> <form method="post" action="servlet02"> 账户名:<input type="text" name="name"> <br> 密码:<input type="password" name="passwd"> <br> <button>登录</button> <!--button默认为提交按钮--> </form> </head> <body> </body> </html>
需要注意,form标签的属性
action
为**注解@WebServlet("/servlet02")**中的servlet02
(不要有斜线),这样就与这个处理类关联起来了 -
运行启动
-
浏览器访问
-
点击登录提交给
Servlet01
类(含有注解@WebServlet("/servlet02")
)处理查看获取到的数据:
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383537.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人