写点什么

JavaWeb 快速入门 --Servlet(2)

  • 2022 年 4 月 17 日
  • 本文字数:1587 字

    阅读完需:约 5 分钟

2. 获取请求头数据


  • 方法:


1.通过请求头的名称获取请求头的值:String getHeader(String name);


2.获取所有的请求头名称:Enumeration<String> getHeaderNames();


3. 获取请求体数据:


  • 获取流对象


获取字符输入流,只能操作字符数据:BufferedReader getReader();


获取字节输入流,可以操作所有类型数据:ServletInputStream getInputStream();


  • 从流对象中拿数据


BufferedReader br = request.getReader();


ServletInputStream si= request.getInputStream();


4. 其他功能:


获取请求参数通用方式:


  • 1.根据参数名称获取参数值:String getParameter(String name);

  • 2.根据参数名称获取参数值的数组: String[] getParameterValues(String name);

  • 3.获取所有请求的参数名称: Enumeration<String> getParameterNames();

  • 4.获取所有参数的 map 集合: Map<String,String[]> getParameterMap();


中文乱码问题:在获取参数前,设置 request 的编码:request.setCharacterEncoding("utf-8");


请求转发:一种在服务器内部的资源跳转方式


  • 1. 通过 request 对象获取请求转发器对象: RequestDispatcher getRequestDispatcher(String path)

  • 2. 使用 RequestDispatcher 对象来进行转发: forward(ServletRequest request, ServletResponse response)


在进行请求转发时,浏览器地址栏路径是不会发生变化,且只能转发到当前服务器内部资源中。转发的请求次数是一次。例:


  • request.getRequestDispatcher **Java开源项目【ali1024.coding.net/public/P7/Java/git】** ("/demo").forward(request,response);


共享数据:


  • 1. 存储数据 void setAttribute(String name,Object obj)

  • 2. 通过键获取值: Object getAttitude(String name)

  • 3. 通过键移除键值对: void removeAttribute(String name)


获取 ServletContext: ServletContext getServletContext()


[](()Response 对象




Response 是 Servlet.service 方法的一个参数,类型为 javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个 response 对象,并传入给 Servlet.service()方法。response 对象是用来对客户端进行响应的,这说明在 service()方法中使用 response 对象可以完成对客户端的响应工作


response 对象的功能:


设置响应头消息:response.setHeader("content-type", "text/html;charset=utf-8")


  • 设置 content-type 响应头,该头的作用是告诉浏览器响应内容为 html 类型,编码为 utf-8。例:5 秒后自动跳转到百度页面:response.setHeader("Refresh","5; URL=http://www.baidu.com")


设置响应体:


  • 1. 获取输出流: 字符输出流:PrintWriter getWriter()、字节输出流:ServletOutputStream getOutputStream()

  • 2. 使用输出流: 将数据输出到客户端浏览器


设置响应状态码及其他方法:


  • 1.设置响应内容为 html 类型,编码为 utf-8: response.setContentType("text/html;charset=utf-8")

  • 2.设置字符响应流的字符编码为 utf-8: response.setCharacterEncoding("utf-8")

  • 3.设置状态码: response.setStatus(200)

  • 4.当发送错误状态码时,跳转到固定的错误页面去,并显示错误信息:response.sendError(404, "您要查找的资源不存在")


重定向:在进行重定向时,浏览器的地址栏会发生改变,可以访问其它服务器的资源 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 ,同时它的请求次数是两次,重定向的响应头为 302,并且必须要有 Location 响应头来表示第二个请求的 URL,我们不能忘记设置。


//1.设置状态码为 302


response.setStatus(302);


//2.设置响应头 location


response.setHeader("location","/demo/response");


//3.实现重定向方法


response.sendRedirect("/demo/response");


路径的书写方法:


Java 面试核心知识点笔记


其中囊括了 JVM、锁、并发、Java 反射、Spring 原理、微服务、Zookeeper、数据库、数据结构等大量知识点。



Java 中高级面试高频考点整理




最后分享 Java 进阶学习及面试必备的视频教学



用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
JavaWeb快速入门--Servlet(2)_Java_爱好编程进阶_InfoQ写作平台