Tomcat服务器种的HttpServletRequest类
HttpServletRequest 类有什么作用:
每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。
然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息
HttpServletRequest 类的常用方法:
getRequestURI() 获取请求的资源路径
getRequestURL() 获取请求的统一资源定位符(绝对路径)
getRemoteHost() 获取客户端的 ip 地址
getHeader() 获取请求头
getParameter() 获取请求的参数
getParameterValues() 获取请求的参数(多个值的时候使用)
getMethod() 获取请求的方式 GET 或 POST
setAttribute(key, value); 设置域数据
getAttribute(key); 获取域数据
getRequestDispatcher() 获取请求转发对象
创建了Tomcat工程之后,通过自定义类去继承HttpServlet类之后,重写doGet方法或者doPost方法之后,去调用对应上诉方法
请记住,这些方法都是请求的方法,也就是说 浏览器访问服务器 的一些参数。
如何获取请求参数:
比如说。我要获取表单中的请求参数,如用户名文本框等等 通过 getParameter() 方法即可得到,代码如下
POST 请求的中文乱码解决:
如果是post请求,当我们需要获取参数比如说是 用户名的时候,如果用户名是中文的,会出现乱码的现象
这是因为请求体的字符集默认不是utf-8,所以可以通过setCharacterEncoding("utf-8")去设置,当然这个方法需要在获取请求参数之前设置
请求的转发:
什么是请求的转发?
请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。
这需要两个Servlet程序,第一个Servlet程序,负责接收用户的请求参数,通过serAttribute()方法,设置一个域即盖个章,方便Servlet2程序检查
通过.getRequestDispatcher("要告诉浏览器的工程位置"); 指明这个位置在哪 在通过 forward方法,让它走向Servlet2程序。
我们要记住的一点,就是这个请求转发它的路径是有一定的问题的,比如说,
具体如何实现,代码如下: 记住了,这些也必须在web.xml 文件中导入相关信息,如 <servlet> 标签等
为了解决跳转导致路径不一致的问题:使用base标签即可
Web 中的相对路径和绝对路径:
在 javaWeb 中,路径分为相对路径和绝对路径两种:
相对路径是:
. 表示当前目录
.. 表示上一级目录
资源名 表示当前目录/资源名
绝对路径:
http://ip:port/工程路径/资源路径
在实际开发中,路径都使用绝对路径,而不简单的使用相对路径。
1、绝对路径
2、base+相对
web 中 / 斜杠的不同意义:
在 web 中 / 斜杠 是一种绝对路径。
/ 斜杠 如果被浏览器解析,得到的地址是:http://ip:port/
/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径
1、/servlet1
2、servletContext.getRealPath(“/”);
3、request.getRequestDispatcher(“/”);
特殊情况: response.sendRediect(“/”);
把斜杠发送给浏览器解析。得到 http://ip:port/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)