转发和重定向和request域对象
利用请求域传递对象(request域对象)
重定向和转发的区别(转发)(*****)* 域对象ServletContext:服务器一启动,为每个web应用创建一个ServletContext对象,所有servlet实例共享对象。 request:一次请求的范围。* setAttribute("","");
* getAttribute("");
* removeAttribute("");* getRequestDispatcher(String path) ,返回是RequestDispatcher:对象
* RequestDispatcher:* forward(ServletRequest request, ServletResponse response)(经常使用) 转发的方法* include(ServletRequest request, ServletResponse response)(了解) 包含
request利用请求域传递对象
request对象同时也是一个域对象,开发人员通过request对象在实现转发时,把数据通过request对象带给其它web资源处理
setAttribute方法
getAttribute方法
removeAttribute方法
getAttributeNames方法
request对象提供了一个getRequestDispatcher方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发,从而共享请求中的数据
请求重定向和请求转发的区别
package cn.learn.request;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 重定向和转发* @author Administrator**/
public class RequestDemo3 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// request域设置内容request.setAttribute("name", "凤姐");// 完成重定向的工作(客户端端绝对路径)// response.sendRedirect("/day10/request4");// 转发(路径服务器的绝对路径)request.getRequestDispatcher("/request4").forward(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
package cn.learn.request;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class RequestDemo4 extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 获取String value = (String) request.getAttribute("name");// 输出中文response.setContentType("text/html;charset=UTF-8");response.getWriter().write("访问到了demo4... "+value);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}
URL特殊字符转义规则
常用转义规则
空格换成加号(+)
+换成%2B
正斜杠(/)分隔目录和子目录 换成%2F
问号(?)分隔URL和查询 换成%3F
百分号(%)制定特殊字符 换成%25
#号指定书签 换成%23
•&号分隔参数 换成%26
java.net.URLEncoder和 java.net.URLDecoder
Request的开发细节
使用转发的方法后,response的缓冲区会被清空。
response.getWriter().write("aaa");
request.getRequestDispatcher("/demo2").forward(request, response);
response.getWriter().write("bbb");
RequestDispatcher
include方法:
RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能
被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略
底层使用的是子节流,所以输出内容只能使用字节流。
include在程序执行上效果类似forward,但是使用forward只有一个程序可以生成响应,include可以由多个程序一同生成响应 ----- 常用来页面布局
转发和重定向和request域对象相关推荐
- SpringMVC学习总结(四)使用ModelAndView、Model、Map、ModelMap向request域对象共享数据/向session、application域对象共享数据
我们知道,四大域对象包括:pageContext.request.session和application,而pageContext有效范围为一个jsp页面,太小了,而application有效范围为整 ...
- request域对象和请求转发
request的其他功能 request是一个域对象 request对象也是一个存储数据的区域对象,所以也具有如下方法: setAttribute(String name, Object o) get ...
- HttpServletrequest 注册和登录、request域对象、web动态shop
summarize httpServletResponse跟 Request一个是响应一个是请求,获得客户端请求方式 用getMethod 得到的是String类型, response:属于重定向请求 ...
- Java-Web JSP、Cookie和Session域对象
一.JSP入门 1.什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 2.JSP的组成 JSP = h ...
- java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向
JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...
- Servlet的学习之Request请求对象(3)
本篇接上一篇,将Servlet中的HttpServletRequest对象获取RequestDispatcher对象后能进行的[转发]forward功能和[包含]include功能介绍完. 首先来看R ...
- SpringMVC视图及如何在域对象中共享数据
SpringMVC 回顾原生Servlet 获取请求参数 通过 Servlet API 获取 案例 通过控制器方法的形参获取请求参数 设置字符编码格式 CharacterEncodingFilter ...
- javaweb:request请求对象(5)
1.请求和响应的概述: 什么请求:在浏览器地址栏输入地址,点击回车请求服务器,这个过程就是一个请求过程. 什么响应:服务器根据浏览器发送的请求,返回数据到浏览器在网页上进行显示,这个过程就称之为响应. ...
- 转发与重定向是什么?有什么区别
转发过程: 1.客户端浏览器发送http 2.web浏览器接收请求 3.调用内部的一个方法在容器内部完成请求处理和转发工作 需注意的是:转发的路径必须是同一个web容器下的url.在客户端浏览器路径栏 ...
最新文章
- FaceL:一个靠谱的开源人脸标注训练识别程序
- setdiff--求两个集合的差
- Machine Learning week 7 quiz: Support Vector Machines
- zigbee 串口不稳定_Zigbee
- 【04】AngularJS 表达式
- 贪心1--排队打水问题
- 真快!10秒内将k8s集群运行起来
- 现代软件工程 教学计划 适应两种难度和重点
- Python+django网页设计入门(9):自定义反爬虫功能
- 谷歌发布基于浏览器的 Spectre 攻击的 PoC exploit
- EasyUI:textbox自定义验证手机号(正则)
- 书籍的新增及上下架功能
- 腾讯翻译君在线翻译怎么翻译整个文件_希腊语怎么翻译?教你两个超实用的翻译方法...
- 我把视频变成链接_H5中加视频?这才是正确姿势
- 应届生如何准备校招【研发岗】
- wx 微信小程序 session_key的作用
- 阿里滑块x82y,223,224,225算法挺难的,千辛万苦。
- nginx是什么、怎么用、以及用nginx解决实际问题
- TEB轨迹优化算法-代码解析与参数建议
- golang数据结构初探之动态数组slice