首页 > 编程语言 > 详细

JavaWeb-Request对象

时间:2020-05-12 22:34:07      阅读:84      评论:0      收藏:0      [点我收藏+]

Request对象

  • HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
  • 注意只有post请求才会有请求体,而get请求直接在地址中跟在?后面,多个参数使用&隔开。

技术分享图片

请求行 存放请求资源、HTTP协议版本号、请求方式
请求头header 一般用来存放一些cookie,token信息
请求体body 一般用来存储post的参数和参数数据

技术分享图片

获取客户机环境信息

返回值均为String字符串

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

java代码

package com.torain.web;
/**
 * request.getMethod();
 * request.getRequestURI();
 * request.getRequestURL();
 * request.getContextPath();
 * request.getQueryString();
 * request.getRemoteAddr();
 */
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LineServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		// 获取请求方式
		System.out.println("获取请求方式");
		String method = request.getMethod();
		System.out.println("method:" + method);
		System.out.println();
		// 获取请求地址
		System.out.println("获取请求地址");
		String URI = request.getRequestURI();
		StringBuffer URL = request.getRequestURL();
		System.out.println("URI:" + URI + "\t" + "URL:" + URL);
		System.out.println();
		// 获取WEB应用名称
		System.out.println("获取WEB应用名称");
		String webApp = request.getContextPath();
		System.out.println("webApp-name:" + webApp);
		System.out.println();
		// 获取如果是get请求的请求请求航后面的请求参数字符串
		System.out.println("获取如果是get请求的请求请求航后面的请求参数字符串");
		String query = request.getQueryString();
		System.out.println("query:" + query);
		System.out.println();
		// 获取客户端ip地址
		System.out.println("获取客户端ip地址");
		String IP = request.getRemoteAddr();
		System.out.println("IP:" + IP);
		System.out.println();
		/**
		 *  获取请求方式
			method:GET
			
			获取请求地址
			URI:/WEBTEST/LineServlet	URL:http://localhost:9090/WEBTEST/LineServlet
			
			获取WEB应用名称
			webApp-name:/WEBTEST
			
			获取如果是get请求的请求请求航后面的请求参数字符串
			query:username=admin&pwd=123
			
			获取客户端ip地址
			IP:0:0:0:0:0:0:0:1
		 */
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/WEBTEST/LineServlet">
		用户名:<input type="text" name="username">
		密码:<input type="text" name="pwd">
		<input type="submit" value="SUBMIT">
	</form>	
</body>
</html>

获得客户机请求头

  • 浏览器向服务器发送请求时会将浏览器版本,本机地址、端口号等信息发送到服务器。
    |方法|说明|
    |----|---|
    |getHeader(String name)|获取单个请求头name对应的value值|
    |getHeaders(String name)|获取多个同名请求头对应的一组value值,因此返回枚举类型数据|
    |getHeaderNames()|获取请求头的所有name值,返回的数据也是一个枚举类型的数据,将枚举中的元素依次遍历出来,根据name获取对应的value值,即可得到Http请求头的所有信息|
    java
package com.torain.web;
/**
 * 获取请求头中的Referer属性
 */
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HeadServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// 获取referer
		String referer = request.getHeader("referer");
		response.setContentType("text/html;charset=utf-8");
		if (referer.startsWith("http://localhost")) {
			response.getWriter().write("护士节快乐");
		} else {
			response.getWriter().write("请求来源异常,拒绝访问");
		}
		// 获取源
		String Origin = request.getHeader("origin");
		System.out.println("Origin:" + Origin);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="/WEBTEST/HeadServlet">512护士节快乐</a>
</body>
</html>

获得客户机请求体(请求参数)

  • 客户机提交的参数是指form表单中存放的数据,通过表单的action属性提交到Servlet,由Tomcat引擎封装到request对象中。

java

 package com.torain.web;
/**
 * request.getParameter()
 * request.getParameterValues()
 * request.getParameterMap()
 */
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class BodyServlet extends HttpServlet {
	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// 获取用户名和密码,返回字符串
		System.out.println("// 获取用户名和密码,返回字符串");
		String username = request.getParameter("username");
		String password = request.getParameter("pwd");
		System.out.println("username:" + username);
		System.out.println("password:" + password);
		
		// 获取爱好,返回字符串数组
		System.out.println("// 获取爱好,返回字符串数组");
		String[] hobbys = request.getParameterValues("hobby");
		for (String s : hobbys) {
			System.out.println(s);
		}
		// 获取整个quest对象中的参数
		System.out.println("// 获取整个quest对象中的参数");
		Map<String, String[]> map = request.getParameterMap();
		Set<String> list = map.keySet();
		for(String s : list) {
			String[] strs = map.get(s);
			for (String m : strs) {
				System.out.println(s + ":" + m);
			}
			System.out.println("-------------------");
		}
	
		/*// 获取用户名和密码,返回字符串
		username:admin
		password:123
		// 获取爱好,返回字符串数组
		swim
		singsong
		SUBMIT
		// 获取整个quest对象中的参数
		username:admin
		-------------------
		pwd:123
		-------------------
		hobby:swim
		hobby:singsong
		hobby:SUBMIT
		-------------------*/
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="/WEBTEST/BodyServlet">
	用户名:<input type="text" name="username"><br>
	密码:<input type="text" name="pwd"><br>
	爱好:篮球:<input type="checkbox" name="hobby" value="basketball"><br>
		游泳:<input type="checkbox" name="hobby" value="swim"><br>
		唱个歌: <input type="checkbox" name="hobby" value="singsong"><br>
		跳个舞:<input type="checkbox" name="hobby" value="dance"><br>
	<input type="submit" value="SUBMIT" name="hobby" value="submit">
	</form>
</body>
</html>

JavaWeb-Request对象

原文:https://www.cnblogs.com/torain/p/12879089.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!