目录
目录
1.HttpServletRequest说明
2.主要方法说明
3.示例
4.HttpServletResponse说明
5.主要方法说明
6.示例
7.RequestHeader
8.总结
公共接口类HttpServletRequest继承自ServletRequest。客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。对象包含了客户端请求信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内,通过这个对象提供的方法,可以获得客户端请求的所有信息。
(1) 获取参数的方法
getParameter() //获取指定前端传回来的名字,并且返回一个字符串,得到一个前端的类型
getParameterMap() //获取前端参数的map集合
getParameterNames() //返回一个枚举,通常不用这个
getParameterValues() //获取前端参数的数组
(2)请求转发
getRequsetDispatcher()
指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理。
1.通过ServletContext的getRequestDispatcher(String path)方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。
例如:将请求转发的test.jsp页面
RequestDispatcher reqDispatcher =this.getServletContext().getRequestDispatcher("/test.jsp");
reqDispatcher.forward(request, response);
/*** 查询结算账单手账列表*/@GetMapping("/list")public TableDataInfo list(HttpServletRequest request, BmsBillMemo bmsBillMemo) {System.out.println(request);System.out.println(request.getParameter("clientId"));System.out.println(request.getParameter("clientName"));System.out.println(request.getParameter("expenseId"));System.out.println(request.getParameter("currentPage"));System.out.println(request.getParameter("pageSize"));System.out.println(request.getParameterMap());System.out.println(request.getParameterNames());request.getRequestDispatcher("");String orderBy = "create_time desc";Page objects = PageHelper.startPage(bmsBillMemo.getCurrentPage(), bmsBillMemo.getPageSize(), orderBy);List list = bmsBillMemoService.selectBmsBillMemoList(bmsBillMemo);PageInfo pageInfo = new PageInfo(list,5);return getDataTable1(pageInfo);}
对于每次发出的请求,可以通过HttpServletResponse来设置响应的信息,返回到浏览器进行显示。
String data = "132123132山东高速";OutputStream outputStream = resp.getOutputStream();// 获取输出流// 通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码resp.setHeader("content-type", "text/html;charset=UTF-8");// 将字符转换成字节数组,指定以UTF-8编码进行转换byte[] dataByteArr = data.getBytes("UTF-8");//使用OutputStream流向客户端输出字节数组outputStream.write(dataByteArr);outputStream.flush();outputStream.close();
String data = "132123法国进口";resp.setCharacterEncoding("UTF-8");// 设置将字符以"UTF-8"编码输出到客户端浏览器PrintWriter out = resp.getWriter();// 获取输出流// 将字符转换成字节数组,指定以UTF-8编码进行转换resp.setHeader("Content-type", "text/html;charset=UTF-8"); out.write(data);// 使用PrintWriter流向客户端输出字符out.flush();out.close();
SpringMVC提供了@RequestHeader注解用于映射请求头数据到Controller方法的对应参数。
如果指定的参数在请求头中不存在,会报错。如果想要设置默认值,可以使用defaultValue指定,也可以指定该参数不是必须的。
/*** 查询结算账单手账列表*/@GetMapping("/list")public TableDataInfo list(HttpServletRequest request, BmsBillMemo bmsBillMemo, HttpServletResponse response,@RequestHeader("Accept") String accept){System.out.println(accept);String orderBy = "create_time desc";Page objects = PageHelper.startPage(bmsBillMemo.getCurrentPage(), bmsBillMemo.getPageSize(), orderBy);List list = bmsBillMemoService.selectBmsBillMemoList(bmsBillMemo);PageInfo pageInfo = new PageInfo(list,5);return getDataTable1(pageInfo);}
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对 象。
request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。
上一篇:我的2022总结
下一篇:数学杂谈:圆上随机落点问题(一)