Request获取请求方式、请求资源、请求参数、请求行和请求头

版权声明:最终解释权归属Hern所有,恒! https://blog.csdn.net/qq_36761831/article/details/86526013

获取请求方式

采用 request.getMethod() 方法。

获取请求资源(URL、URI)

1、request.getRequestURI():只是获取该Javaweb项目的相对路径。

2、request.getRequestURL():获取该Javaweb项目的URL地址,这种方式比较安全、稳定。

获取GET请求参数

采用 request.getQueryString() 方法。

注意:只对GET方法得到的数据有效,POST方法无效(得到的参数是null)。

获取当前web应用名称

采用 request.getContextPath() 方法。

获取请求行和请求头

1、获取指定的头信息:采用 request.getHeader("头名称") 方法。

注意:头参数名称中 Refer 代表从哪个页面发送过来的信息,用refer可以防盗链(爬虫),这样只能是自己服务器的域名网址才能访问,否则不能访问,refer只有在 a标签、input标签或是submit提交的表单POST或GET)、JavaScript提交的表单(POST或GET)才能获取,其他的方式很可能无效(例如直接在地址栏中输入地址访问)。

2、获取所有头信息:

               Enumeration<String> headerNames = request.getHeaderNames();

		while (headerNames.hasMoreElements()) {
			String string = (String) headerNames.nextElement();
			System.out.println(string);
		}

3、打印所有的请求头和指定的信息:

               Enumeration<String> headerNames2 = request.getHeaderNames();
		while (headerNames2.hasMoreElements()) {
			String string = (String) headerNames2.nextElement();
			String header2 = request.getHeader(string);
			System.out.println(string+"   "+header2);
		}

上述内容综合代码:

package com.RequestHttpServlet;

import java.io.IOException;
import java.util.Enumeration;

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

/**
 * Servlet implementation class SecondRequestServlet
 */
@WebServlet("/SecondRequestServlet")
public class SecondRequestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SecondRequestServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		//获取请求方式
		String method = request.getMethod();
		
		//获取请求资源
		String requestURI = request.getRequestURI();
		StringBuffer requestURL = request.getRequestURL();
		
		//获取get请求参数
		String queryString = request.getQueryString();
		
		//获取当前web应用名称
		String contextPath = request.getContextPath();
		//获取所有请求头名称
		Enumeration<String> headerNames = request.getHeaderNames();
		while (headerNames.hasMoreElements()) {
			String string = (String) headerNames.nextElement();
			System.out.println(string);
		}
		
		//根据名称获取指定的头信息
		String header = request.getHeader("referer");//refer代表从哪个页面发送过来,这里是从项目工程下的index.html页面发送过来
		//用refer可以防盗链(爬虫),这样只能是自己服务器的域名网址才能访问,否则不能访问
		//refer只有在 a标签、input标签或是submit提交的表单、JavaScript提交的表单(POST或GET)才能获取,其他的方式很可能无效
		System.out.println("header"+header);
		//打印所有的请求头和指定的信息
		Enumeration<String> headerNames2 = request.getHeaderNames();
		while (headerNames2.hasMoreElements()) {
			String string = (String) headerNames2.nextElement();
			String header2 = request.getHeader(string);
			System.out.println(string+"   "+header2);
		}
		
		System.out.println();
		System.out.println(method);
		System.out.println(requestURI);
		System.out.println(requestURL);
		System.out.println(queryString);
		System.out.println(contextPath);
	}

}

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/86526013