一、如何获取请求行数据
* GET /day14/demo1?name=zhangsan HTTP/1.1
* request包含的方法:
1. 获取请求方式 :GET
* String getMethod()
2. (*)获取虚拟目录:/day1
* String getContextPath()
3. 获取Servlet路径: /demo1
* String getServletPath()
4. 获取get方式请求参数:name=zhangsan
* String getQueryString()
5. (*)获取请求URI:/day1/demo1
* String getRequestURI(): /day1/demo1
* StringBuffer getRequestURL() :http://localhost/day1/demo1
* URL:统一资源定位符 : http://localhost/day14/demo1
* URI:统一资源标识符 : /day14/demo1
注意:URI的范围比URL大
6. 获取协议及版本:HTTP/1.1
* String getProtocol()
7. 获取客户机的IP地址:
* String getRemoteAddr()
二、举例:
ServletDemo04.java
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ServletDemo04")
public class ServletDemo04 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1. 获取请求方式 :
System.out.println("1: "+ request.getMethod());
//2. (*)获取虚拟目录:
System.out.println("2: "+request.getContextPath());
//3. 获取Servlet路径:
System.out.println("3: "+request.getServletPath());
//4. 获取get方式请求参数
System.out.println("4: "+request.getQueryString());
//5. 获取请求URI
System.out.println("5: "+request.getRequestURI());
//5. 获取请求URL
System.out.println("6: "+request.getRequestURL());
//6. 获取协议及版本:HTTP
System.out.println("7: "+request.getProtocol());
//8. 获取客户机的IP地址:
System.out.println("8: "+request.getRemoteAddr());
}
}
在浏览器中输入:http://192.168.0.103/servlet/ServletDemo04?username=hello&name=lf
注意将上面的IP地址修改自己电脑的(cmd.exe 输入ipconfig获取)
输出结果:
1: GET
2: /servlet
3: /ServletDemo04
4: username=abc&name=lf
5: /servlet/ServletDemo04
6: http://192.168.0.103/servlet/ServletDemo04
7: HTTP/1.1
8: 192.168.0.103