Request
1 Request对象和Response对象的原理
1.1 都是由服务器创建的 我们使用它
1.2Request对象 是获取请求消息 response对象是响应
2 request 对象的继承关系
Request---->ServletRequest--->HttpServletRequest(该对象不需要我们创建 tomact 创建)
3 request 方法
获取请求行的数据
1 获取请求的方式 getMethod();
2 目录的路径 getContextPath(); *****
3 获取servlet路径 getServletPath();
4 获得get请求参数 getQueryString();
5获取请求的url getRequestURI();
getRequestURL(); *****
6 获得协议版本 getProtocol();
7 获取客户的ip getRemoteAddr();
4 其它方法
4.1 获取请求参数的通用方式 不论get还是post 请求的方式都可以使用下列方法获取参数
1 getParameter(String name);
2 根据参数的名称获得参数的数组 getParameterValues(String name)
3 getParameterNames() 获得所有的请求参数的名称
4 getParameterMap() 获得所有参数的集合 map
中文乱码问题
package cn.qu.demo;
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("/loginDemo")
public class ServletDemo3 extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求方式
String method = req.getMethod();
System.out.println(method);
//获取目录路径
String contextPath = req.getContextPath();
System.out.println(contextPath);
//获得servlet路径
String servletPath = req.getServletPath();
System.out.println(servletPath);
//获取get请求参数
String queryString = req.getQueryString();
System.out.println(queryString);
//获取URI地址
String requestURI = req.getRequestURI();
System.out.println(requestURI);
// 获取URL地址
StringBuffer requestURL = req.getRequestURL();
System.out.println(requestURL);
//获得协议版本
String protocol = req.getProtocol();
System.out.println(protocol);
//获取客户ip
String remoteAddr = req.getRemoteAddr();
System.out.println(remoteAddr);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="/loginDemo">
<input name="username">
<input type="submit" value="提交"/>
</form>
</body>
</html>
package cn.lijun.web.servlet;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.lang.reflect.GenericSignatureFormatError;
@WebServlet("/zhuang")
public class Demo2Servlet extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("servlet儿子");
}
}
package cn.lijun.web.servlet;
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("*.do")
public class ServletDemo4 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("提交方式为Post");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("提交方式为get");
}
}