随笔 - 750  文章 - 1  评论 - 107  阅读 - 34万

[Java][Web]Request 实现转发和 MVC 设计模式

String data = "aaaaa";

request.setAttribute("data",data); // 将数据存在 request 

request.getRequestDispatcher("/message.jsp").forward(request,response); // 实现转发


MVC => M model/javabean  V view/jsp  C controller / servlet

在 message.jsp 页面上 可以在 body 节点中以  $(data) 来得到数据

也可以写成

<%
    String data = (String) request.getAttribute("data");
    out.write(data);
%>

效果是一样的。 jsp 页面修改后不需要重启 Tomcat 服务。

forward 方法用于将请求转发到 RequestDispatcher 对象封装的资源。

如果在调用 forward 方法之前,在 Servlet 程序中写入的部分内容已经被真正地传送到了客户端, forward 方法将会抛出

异常 java.lang.IllegalStateException。

如果在调用 forward 方法之前向 Servlet 引擎的缓冲区 response 中写入了内容,只要写入到缓冲区的内容还没有被真正输

出到客户端, forward 方法就可以被正常执行,原来写入到输出缓冲区的内容将被清空,但是,已写入到

HttpServletResponse 对象中的响应头字段信息保持有效。


request.getRequestDispatcher("/public/head.jsp").include(request,response);

request.getWriter().write("<font>内容</fong>");

request.getRequestDispatcher("/public/head.jsp").include(request,response);

这段代码表示:用 include 实现页面包含

posted on   z5337  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示