Servlet中request对象和response对象的简单概述

一.request和response概述

首先我们需要明确,不管是Servlet对象,还是response对象和request对象,均由Servlet容器创建,相当于"内置对象",可以直接用。当浏览器客户端向服务器请求服务时,不可避免的会带有相应的请求数据,那么对于服务器又该如何获取这些数据呢?这便要借助request对象来实现。同样的,当服务器响应浏览器客户端时,则会通过response对象来设置相应的响应消息。简言之,request是获取请求消息,response是来设置响应消息。
其次对于整个Servlet的执行流程,可简单概括为下图(以Tomacat服务器为例)。
在这里插入图片描述

二.request对象的常见用法

(1) 获取请求参数

request.getParameter("参数名");

(2) 获取虚拟路径

request.getContextPath();

(3) 转发

 //1.获取转发器      
 RequestDispatcher requestDispatcher = req.getRequestDispatcher("资源路径");
 //2.请求转发
 requestDispatcher.forward(req,resp);

三.reponse对象的常见用法

1.直接给浏览器响应一个字符串或一个页面

PrintWriter writer = resp.getWriter();
writer.write("Hello response !");

2.重定向

 resp.sendRedirect("资源路径");

四.转发和重定向的区别

1.转发发送一次请求,发生在服务器内部,重定向发送两次请求。
2.转发浏览器地址栏无变化,重定向浏览器地址栏发生变化。
3.转发可以访问WEB-INF目录下的资源,重定向不可以访问WEB-INF目录下的资源。
4.转发可以共享request域中的数据,重定向不可以共享request域中的数据

五.请求和响应的乱码问题

1.请求时的乱码问题
(1)get请求中乱码问题的解决方案
需要注意的是Tomcat 8已经将get方式的乱码问题解决了,只有Tomacat 8 以下的版本才需要解决get中文乱码问题.
在conf/service.xml中的第一个Connector标签中,加一个属性 URIEncoding = “utf-8”。

(2)post请求中中文乱码问题的解决方案

req.setCharacterEncoding("UTF-8")

2.响应时的中文乱码问题

resp.setContextType("text/html;charset=utf-8");

六.绝对路径和相对路径

1.以"/“开头的路径即为绝对路径。如果路径中的”/“由浏览器解析,那么”/“就代表 :ip地址:端口号/ ,其中HTML标签中的路径和重定向时的路径均由浏览器解析。如果路径中的”/“由服务器解析,那么”/"就代表:ip地址:端口号/虚拟目录/ ,其中,web.xml中的路径和转发时的路径均由服务器解析。

2.base标签中的href属性可以让当前页面的相对路径变为绝对路径,注意只有相对路径才会去拼接base标签href属性中的路。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值