Java Servlets - 让 hello world 在按下按钮时出现

Java Servlets - Make hello world appear on button press

我们在学校学习 servlet,虽然我理解它们背后的思想,但我不确定如何在实践中使用它们。对于一项工作的一部分,我们必须在 netbeans 中创建一个网页,其中包含一个按钮,当按下它时,它必须调用一个 servlet 来显示消息 'Hello, World!'.

我有我的网页,'GetHelloMessage.xhtml'

<body>
      <div>Click button to show message.</div>
      <p></p>
      <button type="button">Get Message</button>
</body>

和'HelloWorldServlet.java'

@WebServlet(urlPatterns = {"/HelloWorldServlet"})
public class HelloWorldServlet extends HttpServlet
{
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        response.setContentType("text/html");

        PrintWriter out = response.getWriter();
        out.println("<h1>Hello, World!</h1>");
    }
}

如何在用户按下按钮时调用 servlet?

您需要在按钮标签内使用标签才能将数据发送到您的 servlet,如下所示:

<body>
  <div>Click button to show message.</div>
  <p></p>
  <button type="button"><a href="helloworldservlet.do">Go to Servlet</a>
  </button>
</body>

请注意,我使用的是 .do 域和小写字母,您可以使用 @WebServlet("/helloworldservlet.do") 代替 @WebServlet(urlPatterns = {"/helloworldservlet.do"}) .

照我说的做,告诉我它是否有效。

为了让它工作,我必须编辑 glassfish-web.xml(位于我的项目> WEB-INF 中)并添加以下代码行:

<servlet>
         <servlet-name>HelloWorldServlet</servlet-name>
         <servlet-class>HelloWorldServlet</servlet-class>
</servlet>

并且在 GetHelloMessage.xhtml 中:

<form action="HelloWorldServlet" method="GET">
    <button type="submit">Get Message</button>
</form>

有多种调用 servlet 的方法,但您可以使用 aform 标记。

<a href='HelloWorldServlet'>Get Message</a>

<form action='HelloWorldServlet'>
  <button>HelloWorldServlet</button>
</form>