javaweb实训第五天

本文详细介绍了Java Web中HttpServletRequest和HttpServletResponse接口的主要功能和常用方法,包括设置请求和响应编码、参数获取等。同时,讨论了请求转发和重定向的区别,如请求转发保持原始URL,数据共享,而重定向创建新的请求,地址栏显示最后的请求地址。此外,还展示了如何在实际操作中实现请求转发和重定向。

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

1、HttpServletRequest是ServletRequest的子接口(主要封装http请求)

功能:
接受用户的参数;接受用户的所有请求头信息(所以请求转发时re、rs都转);转发;作为域对象也可以存放数据
常要方法
getParameter(String)方法,根据名字获取一个参数,返回String类型
getParamterValue(String)方法:根据名字获取一组相关的数据,返回类型String[]
(出现乱码时先确定浏览器的编码格式与java类的编码格式,和数据库的编码格式
如果这三种都是utf-8,那么问题在tomcat的编码格式)
设置请求编码格式
request.setCharacterEncoding(“utf-8”);

2、HttpServletReponse是ServletReponse的子接口(主要响应http请求)

常用方法
rsponse.setContentType();设置响应格式
getWriter();输出到浏览器
响应前先设置响应编码格式
response.setContentType(“text/html;charset=utf-8”);

3、请求转发和重定向

请求转发:将请求再服务器内部交给另一个servlet(组件)帮我执行,同时共享request中的数据
**重定向:**指的是一个web资源受到客户端请求后,通知客户端去访问另外一个web资源
**二者区别:**本质区别:请求转发只发送了一次请求,重定向发送了两次
(1)请求转发:地址栏还是第一次请求的地址
重定向:最后一次请求的地址
(2)请求转发:在最终的servlet中,request对象和中转的request是同一个
重定向:不是同一个请求
(3)请求转发:只能转发到内部资源(同一项目)
重定向:可以重定向到外部资源
(4)请求转发:加上/ 代表的是当前web应用的根目录http://localhost:8080/servlet02; 只要加上 /他就是一个绝对路径
重定向:代表当前站点(localhost:8080)

请求转发(可以用servletrequest绑定数据,只有同一个请求才可以获取被绑定的数据)

 //向request域对象里面存值
        request.setAttribute("name","zhangsan");
        String name=(String)request.getAttribute("name");
        System.out.println(name);

        //请求转发:把获取的请求转发给别的页面帮我处理
        //1.定义一个请求转发的地址
        String path=request.getContextPath()+"/testServlet";//这就是一个绝对路径
        //2.通过request对象调用getRequestDispatcher方法,需要传入一个转发的地址,
        //并且把获取到的请求对象响应对象转发过去
        request.getRequestDispatcher(path).forward(request,response);

重定向(请求转发和重定向都是通过get方法传递请求和响应,一般只有表单类才post提交)

request.setAttribute("name","zhangsan");
        String name=(String)request.getAttribute("name");
        System.out.println(name);
        //1.重定向的地址
        String path=request.getContextPath()+"/testServlet";//绝对路径
        //2.进行重定向
        response.sendRedirect(path);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值