如何使用Servlet初始化JSP-Page?

时间:2018-04-18 06:03:39

标签: java jsp servlets

我的JSP页面上有一个下拉菜单,我希望在页面加载完成之前填充它。

我试过像

这样的东西
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    HttpSession session = request.getSession();
    if (session.getAttribute("someArray") == null) {
        session.setAttribute("someArray", SomeEnum.values());
        doGet(request, response);
    } else { // ... // }

但这只会在我提交页面后填充下拉列表。我在get和post方法中尝试了它,但无论哪种方式它都无法工作。如何在加载时自动调用Servlet.doGet()并设置变量(如果未设置)? 或者如何在加载页面之前设置变量?

2 个答案:

答案 0 :(得分:1)

您需要使用加载页面的网址来映射servlet(比如说index.jsp)。现在,实现填充dropdown内的Servlet选项所需的业务逻辑,然后执行RequestDispather.forward并放置index.jsp

现在,您已经加载了index.jsp之前的值

答案 1 :(得分:1)

doGet(request, response);

这是错误的。您需要使用RequestDispatcher.forward并提及目标资源文件。如果您的唯一要求是进行异步调用,则应将JSON返回给客户端。

  String json = action.execute(request, response);
  response.getWriter().write(json);