javaWeb_14-request实现请求转发和mvc设计模式
2013-02-16 10:34
585 查看
14-request实现请求转发和mvc设计模式
14-request实现请求转发和mvc设计模式各自显示各自的request
forward方法用于将请求转发到RequestDispatcher对象封装的资源。
请求转发的特点:
1,客户端只发送一次请求,而服务器段有多个资源调用
2,客户端浏览器地址栏没有变化
jsp
注意:以下原因会出现该异常
结果:页index面上,没有我们设置的data信息
14-request实现请求转发和mvc设计模式各自显示各自的request
forward方法用于将请求转发到RequestDispatcher对象封装的资源。
请求转发,以及使用request域对象把数据带给转发资源
请求转发的特点:1,客户端只发送一次请求,而服务器段有多个资源调用
2,客户端浏览器地址栏没有变化
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //mvc (model javabean v view jsp c cotroller servlet) String data = "rsl"; request.setAttribute("data",data); //request也可实现转发 request.getRequestDispatcher("message.jsp").forward(request, response); }
jsp
${data } <%String message = (String)application.getAttribute("data"); out.write(message); %>
如果在调用forward方法之前,在Servlet程序中写入的部分内容已经被真正地传送到了客户端,forward方法将抛出IllegalStateException异常。
异常:java.lang.IllegalStateException: Cannot forward after response has been committed注意:以下原因会出现该异常
String data = "rsl"; PrintWriter writer = response.getWriter(); writer.write(data); writer.close(); request.getRequestDispatcher("/index.jsp").forward(request, response);
String data = "rsl"; if(true){ request.getRequestDispatcher("/index.jsp").forward(request, response); //return ;解决只要加个return就可以 } request.getRequestDispatcher("/index.jsp").forward(request, response);
如果在调用forward方法之前向Servlet引擎的缓冲区中写入了内容,只要写入到缓冲区中的内容还没有被真正输出到客户端,forward方法就可以被正常执行,原来写入到输出缓冲区中的内容将被清空,但是,已写入到HttpServletResponse对象中的响应头字段信息保持有效。
forward的细节:forward时,会清空reponse中的数据;String data = "rsl"; PrintWriter writer = response.getWriter(); writer.write(data); request.getRequestDispatcher("/index.jsp").forward(request, response);
结果:页index面上,没有我们设置的data信息
相关文章推荐
- javaweb之request实现请求转发以及request域带数据给转发资源
- JavaWeb Filter 过滤器的机制 与使用 请求重定向与请求转发的区别 跳转过滤,过滤器dispatcher REQUEST与FORWARD区别
- javaweb-day06-4&5&6 (Servlet-Request-方法、表单获取客户端中文信息、URL编码、Request容器和请求转发、RequestDispatcher.include()
- javaweb servlet中使用请求转发乱码的实现
- 2.1、Spring Web MVC是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职
- request实现请求转发和mvc设计模式
- javaweb之request请求转发forward方法的细节
- [Java][Web]Request 实现转发和 MVC 设计模式
- Java Web 回顾总结(五) - HttpServlet - Request - 重定向 与 请求转发
- 【JavaWeb-6】HttpServletResponse的字符字节输出流、编码、文件下载、Captcha图片与HttpServletRequest获取request数据表单非表单数据、重定向与转发
- c#中HttpWebRequest使用Proxy实现指定IP的域名请求
- java遍历http请求request的所有参数实现方法
- 通过HttpWebRequest 发送 POST 请求实现自动登陆
- jQuery框架+DWR框架实现的Java Web中的Ajax效果(异步请求,局部刷新)
- WebRequestDataBinder实现将请求参数映射为POJO对象
- 通过HttpWebRequest 发送 POST 请求实现自动登陆
- JavaWeb-JSP 请求转发和请求重定向
- JavaWeb开发之深入分析请求转发和重定向的应用场景以及请求包含 (跟着龙哥学JavaWeb)
- c#中HttpWebRequest使用Proxy实现指定IP的域名请求
- javaweb servlet实现简单的mvc分发请求