Request
HTTP请求协议:
请求首行 请求方式 请求路径 协议/版本号
String getMethod() 获得请求方式request.getContextPath(): /day08-request 获得项目路径
String getServletPath()
request.getQueryString(): name=tom?age=19 获得请求路径中的参数
request.getRequestURI(): /day08-request/AServlet 获得当前访问的相对路径,相对主机路径
request.getRequestURL(): http://localhost:8080/day08-request/AServlet 获得当前访问的绝对路径
request.getServletPath(): /AServlet 获得servlet路径
String getScheme() 获得协议协议
请求头 键:值
request.getContentLength(): -1 返回正文内容长度request.getContentType(): null 返回正文内容类型
request.getLocale(): zh_HANS_CN 获得accept-language:zh_CN
request.getServerName(): localhost 获得主机名称
request.getServerPort(): 8080 获得访问端口号
String getHeader(String name) 根据键获得值(值只有一个)
long getDateHeader(String name)
int getIntHeader(String name)
Enumeration getHeaderNames() 获得所有请求头的名字
Enumeration getHeaders(String name) 根据键获得值(值有多个)
请求空行
请求正文 post请求才有=> 请求参数 => name=tom&age=18
String getParameter(String name) 根据参数键获得参数值Map<String,String[]> getParameterMap() 返回封装参数的Map
Enumeration getParameterNames() 获得所有参数的键
String[] getParameterValues(String name) 根据参数键获得参数值(值有多个)
网络编程
request.getRemoteAddr(): 192.168.13.102
request.getRemoteHost(): 192.168.13.102
request.getRemotePort(): 53479
例子1 request对象分析
public class AServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//返回正文内容长度
System.out.println("request.getContentLength(): " + request.getContentLength());
//返回正文内容类型
System.out.println("request.getContentType(): " + request.getContentType());
///day08-request 获得项目路径
System.out.println("request.getContextPath(): " + request.getContextPath());
//获得请求方式
System.out.println("request.getMethod(): " + request.getMethod());
//zh_HANS_CN 获得accept-language:zh_CN
System.out.println("request.getLocale(): " + request.getLocale());
//name=tom?age=19 获得请求路径中的参数
System.out.println("request.getQueryString(): " + request.getQueryString());
// 获得当前访问的相对路径,相对主机路径 /day08-request/AServlet
System.out.println("request.getRequestURI(): " + request.getRequestURI());
//获得当前访问的绝对路径 http://localhost:8080/day08-request/AServlet
System.out.println("request.getRequestURL(): " + request.getRequestURL());
// 获得servlet路径 /AServlet
System.out.println("request.getServletPath(): " + request.getServletPath());
//获得远程Ip地址 例如192.168.13.102
System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
//例如192.168.13.102
System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
//端口号
System.out.println("request.getRemotePort(): " + request.getRemotePort());
//获得协议
System.out.println("request.getScheme(): " + request.getScheme());
//localhost 获得主机名称
System.out.println("request.getServerName(): " + request.getServerName());
//8080 获得访问端口号
System.out.println("request.getServerPort(): " + request.getServerPort());
}
}
浏览器输入:http://192.168.0.126:8080/day08-request/AServlet
结果:
request.getContentLength(): -1
request.getContentType(): null
request.getContextPath(): /day08-request
request.getMethod(): GET
request.getLocale(): zh_CN
request.getQueryString(): null
request.getRequestURI(): /day08-request/AServlet
request.getRequestURL(): http://192.168.0.126:8080/day08-request/AServlet
request.getServletPath(): /AServlet
request.getRemoteAddr(): 192.168.0.126
request.getRemoteHost(): 192.168.0.126
request.getRemotePort(): 56988
request.getScheme(): http
request.getServerName(): 192.168.0.126
request.getServerPort(): 8080
例子2:request对象获得请求参数
首先在index.jsp里面声明2个表单:
<body>
<form action="/day08-request/BServlet" method="get" >
用户名:<input type="text" name="name" /><br/>
密码:<input type="password" name="password" /><br/>
<input type="submit" value="提交" />
</form>
<hr>
<form action="/day08-request/BServlet" method="post" >
用户名:<input type="text" name="name" /><br/>
密码:<input type="password" name="password" /><br/>
<input type="submit" value="提交" />
</form>
</body>
public class BServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1 获得 所有参数的键
Enumeration<String> en = request.getParameterNames();
// 2 遍历所有键
while(en.hasMoreElements()){
String key = en.nextElement();
//根据键 获得值
String value = request.getParameter(key);
System.out.println(key+"==>"+value);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 1 获得 所有参数的键
Enumeration<String> en = req.getParameterNames();
// 2 遍历所有键
while(en.hasMoreElements()){
String key = en.nextElement();
//根据键 获得值
String value = req.getParameter(key);
System.out.println(key+"==>"+value);
}
}
}