Servlet—HttpServletRequest类的常用方法

本文详细介绍了在Servlet中如何使用HttpServletRequest对象来获取HTTP请求的各种信息,包括请求的资源路径、绝对路径、客户端IP、请求方式,以及如何获取请求参数。通过示例代码展示了getParameter和getParameterValues方法的应用,帮助读者掌握处理HTTP请求参数的方法。

1. HttpServletRequest类

每次只要有请求进入Tomcat服务器,Tomcat服务器会把请求过来的HTTP协议信息解析好封装到Request对象中,然后传递到service(doGet或doPost)方法中供我们使用。然后可以通过HttpServletRequest对象获取所有的请求信息。

servlet代码:

public class HttpServletRequest01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1.getRequestURI():获取请求的工程路径
        System.out.println("1.请求资源路径:"+req.getRequestURI());
        //2.getRequestURL():获取请求的绝对路径
        System.out.println("2.请求绝对路径:"+req.getRequestURL());
        //3.getRemoteHost():获取客户端ip
        System.out.println("3.客户端ip:"+req.getRemoteHost());
        //4.getMethod():获取请求的方式(get/post)
        System.out.println("4.请求方式:"+req.getMethod());

        //5.获取请求参数
        String name = req.getParameter("name");
        String sex = req.getParameter("sex");
        String country = req.getParameter("country");
        String []hobby = req.getParameterValues("hobby");

        System.out.println("姓名:"+name);
        System.out.println("性别:"+sex);
        System.out.println("国籍:"+country);
        System.out.println("兴趣爱好:"+ Arrays.asList(hobby));
    }
}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="http://localhost:8088/servlet01_war/HttpServletRequest01" method="get">
        姓名:<input type="text" name="name"><br/>
        性别:<input type="radio" name="sex" value="boy"><input type="radio" name="sex" value="girl"><br/>
        国籍:<select name="country">
                <option name="country">--请选择国籍--</option>
                <option name="country" selected="selected">中国</option>
                <option name="country">美国</option>
                <option name="country">意大利</option>
                <option name="country">俄罗斯</option>
            </select><br/>
        兴趣爱好:<input type="checkbox" name="hobby" value="java">java
        <input type="checkbox" name="hobby" value="c++">c++
        <input type="checkbox" name="hobby" value="python">python
        <input type="checkbox" name="hobby" value="js">javascript<br/>
        <input type="submit" value="提交">
    </form>
</body>
</html>
	运行结果

在这里插入图片描述

2.HttpServletRequest类常用方法

(1)getRequestURI():获取请求的工程路径,可以获取你部署的该工程的路径。
在这里插入图片描述
这就是我的部署的web工程路径,用getRequestURI()就可以得到了
在这里插入图片描述
(2)getRequestURL():获取请求的绝对路径
在这里插入图片描述
在这里插入图片描述
(3)getRemoteHost():获取客户端ip
在这里插入图片描述
如果客户端用localhost访问,得到的是127.0.0.1
在这里插入图片描述
在这里插入图片描述

如果用同一局域网不同ip访问,就能得到客户端真实ip
在这里插入图片描述
(4)getMethod():获取请求的方式(get/post)
在这里插入图片描述
请求有get和post,但大多数是get请求
在这里插入图片描述

3.HttpServletRequest获取请求参数的方法

在这里插入图片描述
在这里插入图片描述
网页数据的对应请求参数
在这里插入图片描述
得到的对应提交信息
在这里插入图片描述
getParameter()是获取单个参数信息,如以上的姓名,性别国籍
而getParameterValues()获取多个参数信息,如以上的兴趣爱好为多个

本数据集为全球范围的高精度海岸线矢量边界产品,具有10米空间分辨率,系统整合多源地理空间数据,通过统一坐标基准与拓扑优化生成全球一致、连续的海岸线边界信息。数据以 ESRI标准Shapefile格式 提供,兼容ArcGIS、QGIS等常用软件,配套提供可编辑MXD制图工程文件 与标准化 TIF成图产品,可直接用于科研绘图、空间分析及专题制图。本数据主要来源于国际权威数据库,包括 NOAA(美国国家海洋和大气管理局)GSHHG高精度全球海岸线数据库、GEBCO(全球海底地形数据集)、OpenStreetMap(OSM)自然地理边界层 以及 Natural Earth物理地理数据等。数据处理采用地理配准、边界平滑、投影一致化与拓扑修复等技术手段,并结合遥感识别的岸线影像数据进行边界精化,确保在10米空间精度下保持海陆分界的连续性与准确性。在复杂的海岸带区域(如三角洲、河口、岛屿群和礁区),采用多尺度分层提取算法与形态学边缘检测方法,实现细节保持与噪声抑制的平衡。通过精度验证,海岸线偏差控制在±10米以内,可满足国家尺度、区域尺度乃至局地尺度的多层次地理分析与可视化需求。数据内容覆盖全球主要大陆及附属岛屿海岸线,包括东亚沿海、东南亚群岛、欧洲西海岸、非洲大西洋沿岸等区域。本数据集可广泛应用于海岸带地貌研究、海平面变化监测、海洋灾害评估、气候变化影响分析、生态红线划定、航运规划及国土空间格局模拟等多个方向。同时,用户可将其与SRTM DEM高程数据、ERA5气候再分析产品、MODIS陆地覆盖数据等多源数据叠加,开展全球尺度的多维空间建模与环境综合分析。配套的 MXD工程文件已内置投影(WGS84)与标准化制图符号体系,可直接用于地图编辑与专题绘制;TIF格式成图文件则提供了可直接用于展示或出版的标准制图成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我没得冰阔落.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值