Java 如何使用Servlet初始化JSP页面?

Java 如何使用Servlet初始化JSP页面?,java,jsp,servlets,Java,Jsp,Servlets,我的JSP页面上有一个下拉菜单,我想在页面加载完成之前填充它 我试过类似的东西 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); if (session.getAttribute("someAr

我的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()
,并设置未设置的变量或者如何在加载页面之前设置变量?

您需要将servlet映射到加载页面的url(比如
index.jsp
)。现在,实现在
Servlet
中填充
下拉列表
选项所需的业务逻辑,然后执行
RequestDispather.forward
并将您的
index.jsp


现在,在加载
index.jsp
之前已经有了值您需要将servlet映射到加载页面的url(比如
index.jsp
)。现在,实现在
Servlet
中填充
下拉列表
选项所需的业务逻辑,然后执行
RequestDispather.forward
并将您的
index.jsp

doGet(request, response);
现在,您有了
index.jsp
加载之前的值

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

  String json = action.execute(request, response);
  response.getWriter().write(json);
这是错误的。您需要使用
RequestDispatcher.forward
并提及目标资源文件。如果您的唯一需求是进行异步调用,那么应该将JSON返回给客户端

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

不要直接导航到JSP页面,导航到加载数据然后重定向到的servletJSP@ScaryWombat谢谢,我将servlet设置为欢迎页面,现在它正是我想要的。我不知道这是可能的,但是非常感谢。不要直接导航到JSP页面,导航到servlets加载数据,然后重定向到JSP@ScaryWombat谢谢,我将servlet设置为欢迎页面,现在它正是我想要的。我不知道这是可能的,但很好-谢谢。