客户端浏览器发出一个请求,服务器接收请求并作出一系列操作后,发送给客户端一个响应,客户端接收这个响应,完成一次Web操作。
在这里,我们主要关注请求对象request的一些方法,看看request都能做哪些事情。
package cn.hanxd.servlet;
import java.io.IOException;
import java.security.Principal;
import java.util.Locale;
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 RequestServlet
*/
@WebServlet("/RequestServlet")
public class RequestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public RequestServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
//获取保护servlet的认证方案名(BASIC或SSL),未受保护的servlet返回的就是null
String authType = request.getAuthType();
System.out.println("authType:" + authType);
//本地IP,即服务器IP
String localAddr = request.getLocalAddr();
System.out.println("localAddr:" + localAddr);
//本地名称,即服务器名称
String localName = request.getLocalName();
System.out.println("localName:" + localName);
//本地端口号,即Tomcat端口号
int localPort = request.getLocalPort();
System.out.println("localPort:" + localPort);
//用户的语言环境
Locale locale = request.getLocale();
System.out.println("locale:" + locale.toString());
//context路径
String contextPath = request.getContextPath();
System.out.println("contextPath:" + contextPath);
//GET方式还是POST方式
String method = request.getMethod();
System.out.println("method:" + method);
//协议,这里就是HTTP协议
String protocol = request.getProtocol();
System.out.println("protocol:" + protocol);
//查询字符串,就是?后面的字符串
String queryString = request.getQueryString();
System.out.println("queryString:" + queryString);
//远程IP,即客户端IP
String remoteAddr = request.getRemoteAddr();
System.out.println("remoteAddr:" + remoteAddr);
//远程端口,即客户端端口
int port = request.getRemotePort();
System.out.println("port:" + port);
//远程用户
String remoteUser = request.getRemoteUser();
System.out.println("remoteUser:" + remoteUser);
//客户端Session的ID
String requestedSessionId = request.getRequestedSessionId();
System.out.println("requestedSessionId:" + requestedSessionId);
//用户的请求URI,就是http://localhost:8080/后面的内容
String requestURI = request.getRequestURI();
System.out.println("requestURI:" + requestURI);
//用户的请求RUL,就是我们在地址栏中输入的内容
StringBuffer requestURL = request.getRequestURL();
System.out.println("requestURL:" + requestURL.toString());
//协议头,这里就是http
String scheme = request.getScheme();
System.out.println("scheme:" + scheme);
//服务器名称
String serverName = request.getServerName();
System.out.println("serverName:" + serverName);
//服务器端口号
int serverPort = request.getServerPort();
System.out.println("serverPort:" + serverPort);
//Servlet路径
String servletPath = request.getServletPath();
System.out.println("servletPath:" + servletPath);
//浏览器支持的格式
String accept = request.getHeader("accept");
System.out.println("accept:" + accept);
//从哪个页面进入到的这个页面
String referer = request.getHeader("referer");
System.out.println("referer:" + referer);
//User Agent信息,包括操作系统类型、版本号、浏览器类型及版本号等
String userAgent = request.getHeader("user-agent");
System.out.println("userAgent:" + userAgent);
//服务器信息
String serverInfo = this.getServletContext().getServerInfo();
System.out.println("serverInfo:" + serverInfo);
}
/**
* @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);
}
}