接口:
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务