request和response区别

request

获得请求参数的值(客户端发送过来的数据)

String getParameter(String name)

String[] getParameterValues(String name)


在服务器内部传递数据

void **setAttribute(String key, Object value)**
Object类型 **getAttribute(String key)**

转发

setAttribute(“要显示的参数名”,“要显示的参数内容”)

**getRequestDispatcher(设置要跳转的url).forward(request,response);**

只能访问服务器内的资源网站(url),不能访问服务器外的网站


设置请求参数的编码

setCharacterEncoding(“utf-8”);



response:响应对象

response定义
public interface HttpServletResponse extends ServletResponse

描述一个返回到客户端的HTTP回应对象。

返回数据到客户端
//将消息返回给客户端
//先设置编译再写入消息
resp.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();//获得响应流
out.println(msg);//换行打印
//        out.print();//不换行打印

获得响应流

PrintWriter getWriter()

PrintWriter out = resp.getWrite();

重定向

sendRedirect(设置要跳转的url); 可以访问服务器外的网站

url需要加上虚拟路径(项目虚拟路径)


设置响应的编码方式,编码的值是固定的

setCharacterEncoding(“utf-8”);

setContentType("text/html;charset=utf-8);


转发与重定向
概述
  1. 转发(需要之前的数据):需要将当前servlet的数据传输给下一个请求的地址

    使用场景:如果多个请求之间需要共享数据时

  2. 重定向(不需要之前的数据):通知浏览器重新发送新的请求给web服务器。

    使用场景:如果多个请求之间不需要共享数据

转发与重定向的区别
  1. 转发第一次请求的url不会改变[页面会跳转回原来的url路径所在的页面(跳回原来的页面)]

    req.setAttribute(String key,Object value)[key=“参数名”,value=“参数内容”]

    req.getRequestDispatcher(“要参数内容显示的跳转页面”).forward(req,resp);

    重定向:在地址栏会显示重定向后的url地址[会直接跳转到指定的url地址的页面(可以访问服务器外资源网站)]

    resp.sendRedirect(“指定跳转页面的url”)

    url需要加上虚拟路径(项目虚拟路径)

  2. 从速度上来说

    转发是一次请求/响应的过程中跳转1到多个url

    重定向是通知浏览器发出了第二次请求,所以从速度上来说,重定向是相对慢的。


使用场景

request的方法

返回值方法描述
voidsetAttribute(String name,Object value)在request的作用内设置键值对的值
ObjectgetAttribute(String name)根据key取值
RequestDispatchergetRequestDispatcher(String url)设置要转发的url

response

返回值方法描述
sendRedirect(String url)重定向到指定的url
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值