HttpServletRequest对象(一)获取请求行信息的相关方法

1.获取请求行信息的相关方法

当访问Servlet时,会在请求消息的请求行中包含请求方法、请求资源名、请求路径等信息。
HttpServletRequest接口中获取请求行的相关方法:

方法声明功能描述
String getMethod()该方法用于获取HTTP请求消息中的请求方式(如GET、POST等)
String getReauestURI()该方法用于获取请求行中资源名称部分,即位于URL的主机和端口之后、参数部分之前的部分
String getQueryString()该方法用于获取请求行中的参数部分,也就是资源路径后问号(?)以后的所有内容
String getProtocol()该方法用于获取请求行中的协议名和版本,例如,HTTP/1.0 或 HTTP/1.1
String getContextPath()该方法用于获取请求URL中属于WEB应用程序的路径,这个路径以"/"开头,表示相对于整个WEB站点的根目录,路几个结尾不含“/”。如果请求URL属于web站点的根目录,那么返回结果为空字符串“”
String getServletPath()该方法用于获取Servlet的名称或Servlet所映射的路径
String getRemoteAddr()该方法用于获取请求客户端的IP地址,其格式类似于"192.168.0.3"
String getRemoteHost()该方法用于获取请求客户端的完整主机名,其格式类似于"pc1.xxxx.cn"。需要注意的是,如果无法解析出客户机的完整主机名,该方法会返回客户端的IP地址
int getRemotePort()该方法用于获取请求客户端网络连接的端口号
String getLocalAddr()该方法用于获取Web服务器上接收当前请求网络连接的IP地址
String getLocalName()该方法用于获取Web服务器上接收当前网络连接IP所对应的主机名
int getLocalPort()该方法用于获取Web服务器上接收当前网络连接的端口号
String getServerName()该方法用于获取当前请求所指向的主机名,即HTTP请求消息中HOST头字段所对应的主机名部分
int getServerPort()该方法用于获取当前请求所连接的服务器端口号,即如果HTTP请求消息中HOST头字段所对应的端口号部分
String getScheme()该方法用于获取请求的协议名,例如http、https或ftp
StringBuffer getRequestURL()该方法用于获取客户端发出请求时的完整URL,包括协议、服务器名、端口号、资源路径等信息,但不包括后面的查询参数部分。注意,getRequestRUL()方法返回的时StringBuffer类型,而不是String类型。

新建项目并测试上述某些方法

新建Servlet类RequestLineServlet:

public class RequestLineServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		// 获取请求行相关信息
		out.println("getMethod : " + request.getMethod() + "<br>");
		out.println("getRequestURI : " + request.getRequestURI() + "<br>");
		out.println("getQueryString:" + request.getQueryString() + "<br>");
		out.println("getProtocol : " + request.getProtocol() + "<br>");
		out.println("getContextPath:" + request.getContextPath() + "<br>");
		out.println("getPathInfo : " + request.getPathInfo() + "<br>");
		out.println("getPathTranslated : " + request.getPathTranslated() + "<br>");
		out.println("getServletPath:" + request.getServletPath() + "<br>");
		out.println("getRemoteAddr : " + request.getRemoteAddr() + "<br>");
		out.println("getRemoteHost : " + request.getRemoteHost() + "<br>");
		out.println("getRemotePort : " + request.getRemotePort() + "<br>");
		out.println("getLocalAddr : " + request.getLocalAddr() + "<br>");
		out.println("getLocalName : " + request.getLocalName() + "<br>");
		out.println("getLocalPort : " + request.getLocalPort() + "<br>");
		out.println("getServerName : " + request.getServerName() + "<br>");
		out.println("getServerPort : " + request.getServerPort() + "<br>");
		out.println("getScheme : " + request.getScheme() + "<br>");
		out.println("getRequestURL : " + request.getRequestURL() + "<br>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

运行结果

在这里插入图片描述
部分方法图示。。。。
在这里插入图片描述

更多解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏至xz

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

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

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

打赏作者

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

抵扣说明:

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

余额充值