Servlet之请求对象及相应对象

本文详细介绍了HTTP响应与请求对象的使用方法,重点对比了重定向与请求转发的区别,包括它们的工作原理、实现代码及应用场景。文章还讨论了如何处理中文乱码问题,并提供了获取请求参数的不同方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求对象和响应对象都是由服务器创建,管理,和销毁,我们只是来使用它

1.响应对象

HttpServletResponse(接口)-------继承------>ServletRespons(接口)
HttpServletResquest(接口)-------继承------>ServletResponse(接口)
response:设置响应的消息
           response.getWriter.write();设置响应
           resoponse.setStatus()://设置状态码

1.重定向:

 当客户端发来的请求服务器不能处理是,则返回一个状态码,然后客户端拿到状态码之后再重新进行一次别的请求。
 代码:
   response.setStatus(302);
  response.setHeader("location","访问下一个服务器的网址");
以上步骤合二为一是:response.sendRedirect("访问下一个的网址");

2.请求转发:

代码 requset.getRequestDispatcher("你要跳转页面的真实路径").forward(request,response);
3.重定向和请求转发的区别
a:重定向:1.两次请求,两次响应,
                   2.地址栏的地址发生改变
                   3.可以请求内部资源,也可以请求外部资源.
b:请求转发:1.一次请求,一次响应.
                       2.地址栏的地址不发生改变.
                      3.只能够请求内部资源.

2.请求对象

request 对象


URI:统一资源标识符
URL:统一资源定位符

1.URL对浏览器地址栏的编码

Get请求方法获取参数的通用方法,如下

post请求方式获取参数的基本方法


2.针对get  post 请求通用的处理中文乱码的方式



注意:这种方式产生乱码的原因:

  服务器对获取出来的请求参数的编码方式是ISO-8859-1的编码方式,  然而页面的编码方式是uft-8的编码方式,两端出现码表不匹配,所以就出现乱码的方式。解决方式:无论你用什么方式编的码,你的底层都是二进制的数据,所以我先用ISO-8859-1解码,然后在用uft-8进行编码就好了。

3.大多数我们只用post请求方式,那么当post请求时,直接一步设置编码格式就好。


注意:当我们创建一个servlet的时候开始最重要的两个设置编码格式的步骤:
request.setCharacterEncoding("utf-8");
response.setCententType("text/html;charset=utf-8");
分别设置请求和响应的编码格式。

3.获取请求参数的几种方式。


4.路径的书写,以“/”开头。

1.服务器内部的跳转路径 ,不需要加项目的名称。

request.getRequestDispatcher("/myservlet2").forward(request,response);

2.页面上路径和重定向需要加项目的名称。

<img  src="/MyServlet/mydemo4"   id="img1"></img>

注意:什么时候使用重定向?什么时候使用请求转发?

1,如果需要在多个请求之间共享数据,则使用请求转发。
2:重定向之前request中存放的变量全部失效并进入一个新的session的作用域;
3.请求转发:之前的request中存放的变量没有失效,就想把两个页面拼在一起;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值