一、request的概念及结构
1、概念
request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后通过request对象的相关方法来获取这些数据。request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项
2、结构
request
ServletRequest -- 通用request,提供一个request应该具有的最基本的方法
|
|--HttpServletRequest -- ServletRequest的孩子,针对http协议进行了进一步的增强
二、requset获取客户机信息
常见功能:
getRequestURL方法返回客户端发出请求完整URL
!!getRequestURI方法返回请求行中的资源名部分
getQueryString 方法返回请求行中的参数部分
!!getRemoteAddr方法返回发出请求的客户机的IP地址
!!getMethod得到客户机请求方式
!!getContextPath 获得当前web应用虚拟目录名称
例子:
package com.java.request;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustInfoServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1.获取客户端请求的完整URL
String url = request.getRequestURL().toString();
System.out.println("客户端请求的完整URL:"+url);
//2.获取客户端请求的资源部分的名称
String uri = request.getRequestURI();
System.out.println("客户端请求的资源部分的名称:"+uri);
//3.获取请求行中参数部分
String qStr = request.getQueryString();
System.out.println("请求行中参数:"+qStr);
//4.获取请求客户端的ip地址
String ip = request.getRemoteAddr();
System.out.println("客户端的ip地址:"+ip);
//5.获取客户机的请求方式
String method = request.getMethod();
System.out.println("客户机的请求方式:"+method);
//6.获取当前web应用的名称
String name = request.getContextPath();
System.out.println("web应用的名称:"+name);
// response.sendRedirect(request.getContextPath()+"/index.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
注意:以后表示web应用目录名称就用getContextPath,同时注意web应用目录的名称和工程是不同的两个概念,如何修改web应用的目录?
在project->properties->myeclipse->web目录下修改,修改后需重新发布