gpt4 book ai didi

java - 是否可以使用 JSP 作为 servlet 的模板?

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:36 26 4
gpt4 key购买 nike

我一直在构建的 Web 应用程序中混合使用 JSP 和 Servlet,我开始发现我的更复杂的 JSP 最终包含大量代码,这些代码与所有 MVC 类(class)背道而驰被撞到我身上。我知道我可以通过转发到 JSP 来做到这一点,但这似乎是一个愚蠢的 hack。

我想做的是使用 servlet 进行处理,然后将一组值发送到 JSP 以呈现 HTML 并返回响应。类似的东西:

public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {

// ... Do some processing

resp.getWriter.print(renderJSP("mypage.jsp", values));

}

}

我一直在查阅 Sun 的文档并找到了这个:http://java.sun.com/developer/technicalArticles/javaserverpages/servlets_jsp/JSP Model 2 体系结构似乎正是我想要实现的,但我找不到如何设置它的示例。由于技术原因,我不能使用像 Struts 这样的更高级的模板框架之一。

这是可能的还是失败的原因?

最佳答案

将对象放在请求中,将请求转发到jsp页面,然后使用jsp中的对象呈现响应。

在你的 servlet 中,

MyObject obj = ... //build somehow
request.setAttribute("myObject", obj);
RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/jsp/my.jsp");
rd.forward(request, response);

如果您的结果 JSP 不应该直接从 URL 访问,您应该将它隐藏在 WEB-INF 目录中,在那里它只能通过 forward 指令访问。

然后在你的jsp上你可以拥有,

<% MyObject obj = (MyObject) request.getAttribute("myObject"); %> 

检索对象并根据需要使用它。

正如其他人所建议的,最终学习使用 JSTL 是个好主意。也许还有像 Spring MVC 这样的 MVC 框架.教程可见here .

关于java - 是否可以使用 JSP 作为 servlet 的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1731642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com