首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将servlet链接到jsp。

将servlet链接到jsp。
EN

Stack Overflow用户
提问于 2012-03-29 12:20:37
回答 4查看 11.6K关注 0票数 1

有没有一种方法可以在不使用物理url链接的情况下将servlet链接到JSP。所以我希望servlet运行,然后servlet将我带到JSP。任何想法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-29 12:30:52

是的,您可以在servlet中添加html代码,然后将重定向发送到JSP页面。

票数 0
EN

Stack Overflow用户

发布于 2012-03-30 08:47:49

只需调用servlet的URL而不是JSP的URL,并在servlet的doGet()方法中执行预处理工作。

例如,一个servlet,它在JSP呈现产品之前加载产品列表:

代码语言:javascript
复制
@WebServlet("/products")
public class ProductServlet extends HttpServlet {

    @EJB
    private ProductService productService;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Preprocess request: load list of products for display in JSP.
        List<Product> products = productService.list();
        request.setAttribute("products", products);
        request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
    }

}

其中JSP如下所示:

代码语言:javascript
复制
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/format" prefix="fmt" %>

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Our Products</title>
    </head>
    <body>
        <h1>Products</h1>
        <table>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Description</th>
                <th>Price</th>
            </tr>
            <c:forEach items="${products}" var="product">
                <tr>
                    <td>${product.id}</td>
                    <td><c:out value="${product.name}" /></td>
                    <td><c:out value="${product.description}" /></td>
                    <td><fmt:formatNumber value="${product.price}" type="currency" /></td>
                </tr>
            </c:forEach>
       </table>
    </body>
</html>

如果您直接转到http://localhost:8080/contextname/products,那么servlet的doGet()将被调用,产品将从DB加载并存储在请求作用域中,控制权将被转发给JSP,后者反过来以一些漂亮的HTML标记显示结果。

另请参阅:

票数 2
EN

Stack Overflow用户

发布于 2012-03-29 12:26:58

是的,使用框架。Servlet和JPS本身就像水和石头--你可以用它们来修路,但你不能要求它们单独去做。你必须流汗,或者得到一些框架来为你做这件事;)

如果您熟悉http://www.playframework.org/,我建议您使用Java语言(1.2.4...2.0是更少的Javish,更像Scalish

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9919018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档