JavaEE——HttpServletRequest
创始人
2024-02-03 18:32:07
0

HttpServletRequest

核心方法

方法功能
String getProtocol()返回请求协议的名称和版本。
String getMethod()返回请求的 HTTP 方法的名称
String getRequestURI()从协议名称直到 HTTP 请求的第一行的查询字符串中,返回该请求的 URL 的一部分。
String getContextPath()返回指示请求上下文的请求 URI 部分。
String getQueryString()返回包含在路径后的请求 URL 中的查询字符串。
Enumeration getParameterNames()返回一个 String 对象的枚举,包含在该请求中包含的参数的名称。
String getParameter(String name)以字符串形式返回请求参数的值,或者如果参数不存在则返回null。
String[] getParameterValues(String name)返回一个字符串对象的数组,包含所有给定的请求参数的值,如果参数不存在则返回 null。
Enumeration getHeaderNames()返回一个枚举,包含在该请求中包含的所有的头名。
String getHeader(String name)以字符串形式返回指定的请求头的值。
String getCharacterEncoding()返回请求主体中使用的字符编码的名称。
String getContentType()返回请求主体的 MIME 类型,如果不知道类型则返回 null。
int getContentLength()以字节为单位返回请求主体的长度,并提供输入流,或者如果长度未知则返回 -1。
InputStream getInputStream()用于读取请求的 body 内容. 返回一个 InputStream 对象.

实例

获取request信息

例如,我们可以用这些方法来打印类似抓包的效果

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;
import java.util.Enumeration;@WebServlet("/showRequest")
public class ShowRequest extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf8");resp.setContentType("text/html; charset=utf-8");StringBuffer stringBuffer = new StringBuffer();stringBuffer.append(req.getProtocol());stringBuffer.append("
");stringBuffer.append(req.getMethod());stringBuffer.append("
");stringBuffer.append(req.getRequestURI());stringBuffer.append("
");stringBuffer.append(req.getContextPath());stringBuffer.append("
");stringBuffer.append(req.getQueryString());stringBuffer.append("
");Enumeration headerNames = req.getHeaderNames();while(headerNames.hasMoreElements()){String headerName = headerNames.nextElement();stringBuffer.append(headerName + " " + req.getHeader(headerName));stringBuffer.append("
");}resp.getWriter().write(stringBuffer.toString());} }

在这里插入图片描述

获取请求中的参数

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("/getParameter")
public class GetParameter extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf8");resp.setContentType("text/html; charset=utf-8");String studentId = req.getParameter("studentId");String studentName = req.getParameter("studentName");System.out.println(studentId);System.out.println(studentName);resp.getWriter().write(studentId + " | " + studentName);}
}

获取post中的参数

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("/postParameter")
public class PostParameter extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf8");resp.setContentType("text/html; charset=utf-8");String studentId = req.getParameter("studentId");String studentName = req.getParameter("studentName");System.out.println(studentId);System.out.println(studentName);resp.getWriter().write(studentId + " | " + studentName);}
}

并在webapps下创建post.html,利用ajax方式提交post请求



Document

在这里插入图片描述
如果没有queryString时,getParameter获取的就是null

在这里插入图片描述
在这里插入图片描述

获取json数据

先去maven中央仓库导入jackson
在这里插入图片描述

import com.fasterxml.jackson.databind.ObjectMapper;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;class Student {public int classId;public int studentId;
}@WebServlet("/postParameterJson")
public class PostParameterJson extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html; charset=utf-8");req.setCharacterEncoding("utf8");ObjectMapper objectMapper = new ObjectMapper();Student student = objectMapper.readValue(req.getInputStream(),Student.class);System.out.println(student.classId + " | " + student.studentId);resp.getWriter().write(student.classId + "| " + student.studentId);}
}

再用postman构造请求来看代码写的对不对
在这里插入图片描述
可以看到,成功的获得了classId和studentId

相关内容

热门资讯

爱情短笑话爆笑 爱情短笑话大全爆笑  虽说爱情是风花雪月,婚姻是酱米油盐。但是婚姻也该潇洒,才能经久保鲜。玫瑰情人节...
语序不当的句子语病分析 语序不当的句子语病分析  该句有两处语序不当。首先,“架起”的是“政工干部和学生干部”之间的桥,应把...
提醒降温的暖心句子 提醒降温的暖心句子  天气转凉了,北风清凉了,气温骤降了,变化更狂了,衣服不要藏了,不然你就凄凉了,...
怀念父亲的伤感句子   大去已然十四年,几番盼梦不成眠。天命盛年仁不寿,追恨孝养未周全。  其二  戊辰仲春二十六,严君...
描写春天校园的美景的句子 描写春天校园的美景的句子(精选60句)  在平平淡淡的学习、工作、生活中,大家都接触过比较经典的句子...
诗人余秀华:《穿过大半个中国... 诗人余秀华:《穿过大半个中国去睡你》  穿过大半个中国去睡你  余秀华  其实,睡你和被你睡是差不多...
五月的第一天句子 五月的第一天句子(精选170句)  在现实生活或工作学习中,大家或多或少都接触过一些经典的句子吧,根...
最新早安暖心句子 最新早安暖心句子(精选110句)  在日常的学习、工作、生活中,许多人都接触过一些比较经典的句子吧,...
旅行的唯美句子 关于旅行的唯美句子 (精选165句)  在平时的学习、工作或生活中,大家都对那些朗朗上口的句子很是熟...
优美语句 精选优美语句大全  生活的无奈,有时并不源于自我,别人无心的筑就,那是一种阴差阳错。生活本就是矛盾的...
温暖亲情的句子 关于温暖亲情的句子  亲情,顾名思义,就是亲人的情义。人,作为社会的人,起首并每每接触的是哺育本人的...
晚上发朋友圈的好句子 关于晚上发朋友圈的好句子大全  在平日的学习、工作和生活里,大家都听说过或者使用过一些比较经典的句子...
经典朋友圈早安文案 经典朋友圈早安文案汇总(精选140句)  每一个人只要心里有山巅,即使道路再曲折,也能够到达人生的顶...
调侃男友俏皮句子 调侃男友俏皮句子 (精选85句)  在日常的学习、工作、生活中,大家总免不了要接触或使用句子吧,根据...
打动人心的正能量句子 打动人心的正能量句子  在日常学习、工作或生活中,大家最不陌生的就是句子了吧,根据结构的不同句子可以...
哀悼逝者的句子 哀悼逝者的句子(精选140句)  在平时的学习、工作或生活中,大家一定都接触过一些使用较为普遍的句子...
最新美到极致的惊蛰节气句子 最新美到极致的惊蛰节气句子(精选110句)  在日常学习、工作或生活中,大家都接触过很多优秀的句子吧...
曾经爱情的句子有哪些 关于曾经爱情的句子有哪些  1、曾经,在那个花季的年代,你突然出现在我面前,信诺誓言的对我说,你爱我...
表达兄弟情深的句子 关于表达兄弟情深的句子  在平日的学习、工作和生活里,许多人对一些广为流传的句子都不陌生吧,句子是能...
高情商发圈被秒赞的句子正能量 高情商发圈被秒赞的句子正能量  在平平淡淡的日常中,大家都接触过比较经典的句子吧,句子是能够表达一个...