Request
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"); } }