使用servlet在jsp页面上加载时的动态内容

时间:2010-11-17 06:49:00

标签: jsp servlets

这是我的问题:我想在jsp页面上获取动态信息,当我重定向它但不使用scriptlet,使用servlet所以最终我想在我的jsp页面加载时调用servlet所以没有任何表单操作我有这样做

提前谢谢。

2 个答案:

答案 0 :(得分:2)

只需调用servlet,让servlet在预处理后将请求转发给JSP。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Do your preprocessing job here. E.g. retrieving list of products to display in JSP.
    List<Product> products = productDAO.list();
    request.setAttribute("products", products); // It'll be available as ${products} in JSP.

    // Finally forward request to JSP.
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
}

将此servlet映射到例如url-pattern的{​​{1}},并通过http://example.com/context/page进行调用。将JSP置于/page文件夹中会有效地将其隐藏在直接访问之外,以便在没有servlet的情况下,ensuder无法打开它。

另见

答案 1 :(得分:0)

您需要考虑代码在不同时间运行的位置。您的JSP 一个servlet,它在服务器上运行并将HTML发送到浏览器。一旦浏览器呈现了您的JSP不再运行的HTML页面,您就可以在浏览器中获得HTML。

该页面可能有链接或表单提交按钮,这些按钮将调用服务器上的新资源(如servlet或JSP),并将全新页面返回给浏览器。我不完全理解你的问题,我认为你不想张贴表格,但你可以让用户点击一个链接。

但是,我怀疑你想要做的是更新页面的一部分而不重新绘制整个内容。这有时称为AJAX编程。 HTML页面中的某些JavaScript会运行,调用服务器然后修改HTML,从而显示新数据。

AJAX是一个很大的主题,需要JavaScript技能,并从Dojo或JQuery等框架中获益匪浅。我建议您稍微围绕这些主题进行谷歌搜索,然后再回答具体问题。