您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页sevlet请求,响应对象,域对象

sevlet请求,响应对象,域对象

来源:华佗小知识

一、请求对象

接口:

ServletRequest : 通用的请求接口,这个接口的实现类的对象由容器创建,并由容器以参数的方式传递给某个Servlet接口的实现对象的service方法。

HttpServletRequest :是ServletRequest接口的子接口,这个接口是专门针对HTTP请求的,这个接口的实现类的对象由容器创建,并由容器以参数的方式传递给某个Servlet接口的实现对象的service(doGet、doPost)方法。

GET方式请求和POST方式请求

对传输的数据量没有

对于POST请求,Tomcat解析请求正文中的中文数据,乱码问题

 // Tomcat解析请求正文数据时,使用ISO8859-1字符集解码
 // 设置POST请求方式解析正文数据时的字符集
 request.setCharacterEncoding("UTF-8");

二、响应对象

ServletResponse接口

HttpServletResponse子接口

PrintWriter getWriter() : 获取打印字符输出流对象,可以将数据写入

响应正文

如果写入响应正文有中文数据,会有乱码问题,如何解决?

方式一: 
    reponse.setCharacterEncoding("utf-8") 设置响应正文的字符集
​
方式二:推荐,不仅可以设置响应正文的字符集,还可以在响应消息头中携带Content-Type头信息
    response.setContentType("text/html;charset=utf-8")

三、域对象

Servlet中提供了三个域对象(内部都维护了一个Map集合),用于存储

key-value数据

ServletContext web应用全局域对象

这个项目所有servlet都共享这个域对象中的数据(域对象唯一)

这个域对象 从项目启动开始,到项目停止结束

ServletContext request.getServletContext();

HttpSession 会话域对象

只在一个会话期间,所有Servlet可以共享的数据

这个域对象 从浏览器与服务器建立连接开始,到这个连接断开结束

HttpSession request.getSession();

HttpServletRequest 请求域对象

      只在一个请求过程,在参数转发的servlet享数据

这个域对象从一个请求开始,到转发(不一定存在), 到请求结束

上面三个域对象都提供

setAttribute(String key, Object obj);

Object getAttribute(key);

转发:

转发使用的是请求对象的方法

/ 相对的是当前web应用的根路径

request.getRequestDispatcher(url).forward(request, reponse);

重定向

重定向使用的响应对象的方法

/ 代表的是服务器的根路径 ,先找web项目的根路径,再去项目中找资源

response.sendRedirect(url);

后台 / 是服务器访问的根路径

前端 / 是浏览器访问的根路径

idea 每次部署项目,默认设置项目的根路径 / (可以改)

idea默认的访问路径 前端/ 和后台 / 是同一个

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务