HttpServletRequest——获取URL的方法

1、request.getRequestURL()

返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。
2、request.getRequestURI()

得到的是request URL的部分值,并且web容器没有decode过的

3、request.getContextPath()
返回 the context of the request.

4、request.getServletPath()
返回调用servlet的部分url.

5、request.getQueryString()
返回url路径后面的查询字符串

1. 获得客户机信息
    getRequestURL方法返回客户端发出请求时的完整URL。
    getRequestURI方法返回请求行中的资源名部分。
    getQueryString 方法返回请求行中的参数部分。
    getRemoteAddr方法返回发出请求的客户机的IP地址
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回客户机所使用的网络端口号
    getLocalAddr方法返回WEB服务器的IP地址。
    getLocalName方法返回WEB服务器的主机名
    getMethod得到客户机请求方式

 2.获得客户机请求头

    getHeader(string name)方法
    getHeaders(String name)方法
    getHeaderNames方法 

 3. 获得客户机请求参数(客户端提交的数据)
    getParameter(name)方法
    getParameterValues(String name)方法
    getParameterNames方法
    getParameterMap方法



### Java HttpServletRequest 功能与使用介绍 `HttpServletRequest` 是 Java Servlet API 中的一个重要接口,它代表了一个 HTTP 请求对象。通过该接口可以获取客户端发送的各种数据以及操作请求范围内的属性。 #### 接口定义与继承关系 `HttpServletRequest` 继承自 `ServletRequest` 接口[^2],因此除了具备父类的功能外,还提供了更多针对 HTTP 协议的特有方法和支持。这些扩展使得开发者能够更加方便地处理来自浏览器或其他客户端的具体请求细节。 #### 主要功能概述 以下是 `HttpServletRequest` 的一些核心功能: 1. **获取请求参数** 使用 `getParameter(String name)` 方法可以从 URL 查询字符串或者 POST 表单提交的数据中提取指定名称对应的值;如果存在多个同名参数,则可通过 `getParameterValues(String name)` 获取它们组成的数组形式返回结果。 ```java String username = request.getParameter("username"); ``` 2. **读取头部信息** 可以调用诸如 `getHeader(String name)` 或者遍历所有头字段的方法来访问由客户机附加到当前事务上的元数据(比如 User-Agent、Referer 等)。 ```java String userAgent = request.getHeader("User-Agent"); ``` 3. **管理会话状态** 借助内置机制实现跨页面间共享临时变量的需求——即创建/加入现有 HttpSession 实例并设置其有效期限等功能均在此处完成。 ```java HttpSession session = request.getSession(); session.setAttribute("user", user); ``` 4. **文件上传支持** 当表单采用 multipart/form-data 编码方式传递较大二进制流时,需借助第三方库解析实际内容体部分后再逐项保存至服务器本地磁盘位置上。 5. **路径映射分析** 提供了一系列工具函数帮助定位资源所在目录结构及其关联链接地址等辅助计算逻辑。 6. **安全上下文验证** 对于某些敏感操作可能还需要确认发起者的身份合法性等问题,在此阶段可以通过认证插件介入判断是否允许继续执行后续流程。 7. **国际化配置调整** 支持动态改变响应语言环境以便适配不同地区用户的偏好习惯设定。 8. **其他实用特性** 包括但不限于远程IP地址探测(`getRemoteAddr`)、主机域名反查(`getServerName`)等等不一而足... 以上只是列举了一些常见的应用场景而已,并不代表全部可能性边界。随着技术发展不断推陈出新,未来或许会有更新颖强大的能力被引入进来满足日益增长的实际需求场景变化趋势所驱动下的创新实践探索过程之中去寻找答案吧! ```java // 示例代码片段展示如何综合运用上述提到的部分技巧点构建简单的登录校验服务端逻辑实现版本号如下所示: @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException ,IOException{ // 设置字符编码防止乱码现象发生 req.setCharacterEncoding("UTF-8"); // 获取用户名密码输入框填写的内容 String uname=req.getParameter("uname"); String pwd=req.getParameter("pwd"); boolean flag=false; if(uname!=null && !"".equals(uname.trim())&& pwd != null&&!"".equals(pwd)){ // 这里简单模拟数据库查询匹配过程省略具体业务层封装细节描述 if ("admin".equalsIgnoreCase(uname)&&"123456".equals(pwd)){ flag=true; } } PrintWriter out=resp.getWriter(); if(flag){ // 登录成功跳转首页或者其他受保护区域界面显示欢迎消息等内容呈现给最终使用者查看体验效果最佳化考虑因素纳入整体设计思路当中统筹规划合理安排各项资源配置比例达到最优解方案目标追求极致用户体验价值最大化原则指导方向引领前行道路光明前景可期值得期待共同奋斗创造辉煌成就梦想成真指日可待时不我待只争朝夕加油干吧少年们!!! out.println("<h1>恭喜您已顺利登陆系统</h1>"); }else { out.println("<h1 style='color:red;'>很遗憾未能找到对应记录,请重新尝试输入正确的账号密码组合再次提交审核谢谢合作。</h1>"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值