如何在程序执行时调用init? Servlet,JSP

时间:2014-04-16 02:48:30

标签: jsp java-ee servlets

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

当我右键单击我的项目并单击" Run As"程序执行。然后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文件。

2 个答案:

答案 0 :(得分:2)

在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>

答案 1 :(得分:0)

我要做的是在ServletContextListener中收集数据a,然后使用上下文属性与页面共享数据:adding it to the contextretrieving it for the page using the expression language