购物网站建设 成都,wordpress主题修改视频教程,网站开发一般黄了,程序员培训机构最新排名一、预览
在上一篇Servlet体系结构中#xff0c;我们初步了解了怎么快速本篇将介绍Servlet中请求Request的相关内容#xff0c;包括Request的体系结构#xff0c;Request常用API。
二、Request体系结构 我们注意到我们定义的Servlet类若实现Servlet接口时#xff0c;请求…一、预览
在上一篇Servlet体系结构中我们初步了解了怎么快速本篇将介绍Servlet中请求Request的相关内容包括Request的体系结构Request常用API。
二、Request体系结构 我们注意到我们定义的Servlet类若实现Servlet接口时请求参数是ServletRequest类型的若继承HttpServlet抽象类时请求参数是HttpServletRequest类弄的而这两个请求参数的类型都接口类型。在Servlet执行流程一文中我们讲到过Servlet中的service方法是由Web服务器如Tomcat调用的那么它在调用方法时传递的参数不可能是接口类型的必然有其实现类。如上图在Tomcat中这一实现类就是RequestFacade类。
三、常用API
API的使用总是简单的直接看如下代码与注释
package com.byhuang;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.BufferedReader;
import java.io.IOException;WebServlet(/req1)
public class ServletRequestDemo extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 1 请求行// 获取请求方式String method req.getMethod();System.out.println(method);// 获取虚拟目录项目访问路径String contextPath req.getContextPath();System.out.println(contextPath);// 获取URL统一资源定位符StringBuffer requestURL req.getRequestURL();System.out.println(requestURL);// 获取URI统一资源标识符String requestURI req.getRequestURI();System.out.println(requestURI);// 获取请求参数String queryString req.getQueryString();System.out.println(queryString);// 2 请求头String header req.getHeader(user-agent);System.out.println(header);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 3 请求体BufferedReader reader req.getReader();String s reader.readLine();System.out.println(s);}
}四、通用方式获取请求参数
对于GET请求和POST请求HttpServletRequest接口为我们提供了通用的获取参数的方法具体使用见下面的代码与注释。
package com.byhuang;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.BufferedReader;
import java.io.IOException;
import java.util.Map;WebServlet(/req2)
public class ServletRequestDemo2 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(get...);// getParameterMap 获取所有参数Map集合MapString, String[] parameterMap req.getParameterMap();for (String key : parameterMap.keySet()) {System.out.println(key);String[] values parameterMap.get(key);for (String value : values) {System.out.println(value);}}System.out.println(-----------);// getParameterValue 根据名称获取参数值数组String[] hobbies req.getParameterValues(hobby);for (String hobby : hobbies) {System.out.println(hobby);}// getParameter 根据名称获取参数值单个String password req.getParameter(password);System.out.println(password);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println(get...);// getParameterMap 获取所有参数Map集合MapString, String[] parameterMap req.getParameterMap();for (String key : parameterMap.keySet()) {System.out.println(key);String[] values parameterMap.get(key);for (String value : values) {System.out.println(value);}}System.out.println(-----------);// getParameterValue 根据名称获取参数值数组String[] hobbies req.getParameterValues(hobby);for (String hobby : hobbies) {System.out.println(hobby);}System.out.println(-----------);// getParameter 根据名称获取参数值单个String password req.getParameter(password);System.out.println(password);}
}