HttpServletRequest请求是获取请求行、请求头和请求体;可以通过这个方法设置防盗链,获取地址。牢记解决乱码的方式。
怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。详见https://www.cnblogs.com/wenanbang/p/4142415.html
其实也可以单纯的认为是若是带数据的话就请求转发了,若改地址的话就重定向了。
一、获取请求行:
1、获得客户端的请求方式:
getMethod() 获得String类型;
2、获得请求的资源:
getContextPath() 获得String类型的 web应用的名称(项目名)
getQueryString() 获得 get提交url 地址后的参数字符串;
getRequestURI() 获取URI地址String类型
getRequestURL() 获取URL地址StringBuffer类型
request.getRemoteAddr() 获得访问的客户端IP地址
package com.oracle.demo01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LineServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取请求方式 String method=request.getMethod(); System.out.println("请求方式"+method); //获取请求地址 StringBuffer url=request.getRequestURL(); System.out.println("url"+url); String uri=request.getRequestURI(); System.out.println("uri"+uri); //请求web应用(项目)名称 String name=request.getContextPath(); System.out.println("项目名"+name); //获取get请求参数字符串 String query=request.getQueryString(); System.out.println("get请求参数"+query); //获取客户端IP地址 String ip=request.getLocalAddr(); System.out.println("IP"+ip); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }