Javaweb之HttpServletRequest

每次请求时,服务器都会创建新的request和response对象。

1. 获取请求头

String getHeader(String name):适用于单值头
int getIntHeader(String name):适用于单值int类型的请求头
long getDateHeader(String name):适用于单值毫秒类型的请求头
Enumeration<String> getHeaders(String name):适用于多值请求头

2.获取请求URL

http://localhost:8080/Javaweb01/AServlet?username=xxx&password=yyy

request.getMethod():获取请求方式
String getScheme():获取协议,http
String getServerName():获取服务器名,localhost
String getServerPort():获取服务器端口,8080
String getContextPath():获取项目名,/Javaweb01
String getServletPath():获取Servlet路径,/AServlet
String getQueryString():获取参数部分,即问号后面的部分。username=xxx&password=yyy
String getRequestURI():获取请求URI,项目名+Servlet路径。/Javaweb01/AServlet
String getRequestURL():获取请求URL,不包含参数部分的请求路径。http://localhost:8080/Javaweb01/AServlet


3. 获取请求参数

浏览器地址栏直接输入:一定是GET请求;

超链接:一定是GET请求;

表单提交:可以是GET,也可以是POST,取决于<form>method属性值;

GET请求:

请求参数会在浏览器的地址栏中显示,所以不安全;

请求参数长度限制长度在1K之内;

请求没有请求体,无法通过request.setCharacterEncoding()来设置参数的编码;

POST请求:

请求参数不会显示浏览器的地址栏,相对安全;

请求参数长度没有限制;

String getParameter(String name):获取指定名称的请求参数值,适用于单值请求参数
String[] getParameterValues(String name):获取指定名称的请求参数值,适用于多值请求参数
Enumeration<String> getParameterNames():获取所有请求参数名称
Map<String,String[]> getParameterMap():获取所有请求参数,Map中key为参数名,value为参数值。

4.小结

request.getParameter()和request.getAttribute()
 * getParameter()是获取客户端参数,它是从客户端传递给服务器的数据。
 * getAttribute()是获取服务器端自己设置的数据,而不是客户端的数据。
 * request没有setParameter()方法,不能自己设置参数,参数都由客户端传递
 * request有setAttribute()方法,在getAttribute()之前,需要先setAttribute()才能获取到。
 * getAttribute()和setAttribute()用于在请求转发和请求包含中的多个Servlet中共享数据。
int getContentLength():获取请求体的字节数,GET请求没有请求体,没有请求体返回-1;
String getContentType():获取请求类型,GET返回null;POST默认为application/x-www-form-urlencoded,表示请求体内容使用了URL编码;
String getMethod():返回请求方法,例如:GET
Locale getLocale():返回当前客户端浏览器的Locale。java.util.Locale表示国家和言语,这个东西在国际化中很有用;
String getCharacterEncoding():获取请求编码,如果没有setCharacterEncoding(),那么返回null,表示使用ISO-8859-1编码;
void setCharacterEncoding(String code):设置请求编码,只对请求体有效!对于GET而言,没有请求体!所以此方法只能对POST请求中的参数有效!
String getContextPath():返回上下文路径,例如:/hello
String getQueryString():返回请求URL中的参数,例如:name=zhangSan
String getRequestURI():返回请求URI路径,例如:/hello/oneServlet
StringBuffer getRequestURL():返回请求URL路径,例如:http://localhost/hello/oneServlet,即返回除了参数以外的路径信息;
String getServletPath():返回Servlet路径,例如:/oneServlet
String getRemoteAddr():返回当前客户端的IP地址;
String getRemoteHost():返回当前客户端的主机名,但这个方法的实现还是获取IP地址;
String getScheme():返回请求协议,例如:http;
String getServerName():返回主机名,例如:localhost
int getServerPort():返回服务器端口号,例如:8080

猜你喜欢

转载自blog.csdn.net/qq_41706150/article/details/80161533
今日推荐