获取请求方式
采用 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);
}
}