jakartaee-如何在程序执行时调用init?Servlet、JSP



我使用的是Eclipse IDE,一个HelloServlet.java和index.jsp文件。

当我右键单击我的项目并单击"运行方式"时,程序就会执行。JSP文件随后生成,但首先,我需要servlet收集一些数据,并将其发送到JSP文件。

目前,我必须单击JSP文件中的一个按钮来执行Servlet(HelloServlet.java文件)。反之亦然,在程序启动的地方,HelloServelt的init方法会启动,收集我的数据并将其发送到JSP文件。

也许,有人可以帮助我实现这一点。

index.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
         "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello Servlet</title>
</head>
<body>
Add
<form action="HelloServlet">
        <input type="text" value="x" />
    </form>

<hr/>
</body>
</html>

HelloServlet.java

public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
        System.out.println("Constructor initializing");
    }
    public void init(ServletConfig config) throws ServletException {
         String x = "data collected!";
         System.out.println("init initializing");
    }

同样,调用servlet的唯一方法似乎是单击JSP文件中的文本字段。我需要在程序执行时调用Servlet,然后将数据提供给JSP文件。

在web.xml中,当应用程序部署在服务器中时,您需要添加<load-on-startup>标记来加载servlet。这是servlet的基础知识。

<servlet>
    <servlet-name>Servlet</servlet-name>
    <display-name>Simple Servlet</display-name>
    <servlet-class>com.package.ServletClass</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>

我要做的是在Servlet上下文侦听器中收集数据a,然后使用上下文属性与页面共享数据:将数据添加到上下文中,并使用表达式语言为页面检索数据。

最新更新