2015-03-31 62 views
0

對於我們正在學習關於servlet的學校,雖然我瞭解他們背後的想法,我不確定如何在實踐中使用它們。對於一部分工作,我們必須在包含一個按鈕的netbeans中創建一個網頁,當它按下時,它必須調用一個servlet來顯示'Hello,World!'消息。的Java Servlet的 - 讓世界你好出現在按下按鈕

我有我的網頁, '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當用戶按下按鈕?

+0

您是否使用XHTML,而不是JSP?當發出HTTP GET請求時,調用'doGet()'方法。爲了顯示一個消息,當點擊一個按鈕(這又需要一個提交按鈕 - '或者你需要使用AJAX)時,你需要覆蓋'在關聯的Servlet中的doPost()方法。您可以在Servlet標籤[Wiki](http://stackoverflow.com/tags/servlets/info)中找到基本的啓動示例。 – Tiny 2015-03-31 23:19:45

+0

@Tiny我們沒有使用任何JSP僅XHTML。我改變了我的按鈕類型提交,但點擊時沒有任何反應。我是否需要將servlet鏈接到按鈕?這兩個文件都在同一個netbeans項目中。在XHTML位於我的項目> Web頁> GetHelloMessage.xhtml內和servlet位於我的項目>源包>缺省包> HelloWorldServlet.java – hjalpmig 2015-03-31 23:30:15

回答

1

得到它的工作,我不得不編輯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> 
0

您需要使用您的標記按鈕標記內,以將數據發送到你的servlet,就像這樣:

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

請注意,我現在用的。做域名和小寫字母,您可以使用@ WebServlet(「/ helloworldservlet.do」)@WebServlet的intead(urlPatterns = {「/helloworldservlet.do」})。

做就像我說的,告訴我,如果它的工作原理。

+0

威爾說,這樣,當它被按下它不是一個簡單的超級鏈接添加到按鈕將打開網頁'helloworldservlet.do'? – hjalpmig 2015-03-31 23:44:46

+0

是的,你也可以使用表單標籤,因爲你正在使用Servlet中的doGet方法。但我認爲這種方式應該工作,因爲你不從你的.xhtml文件發送參數。 – 2015-03-31 23:47:09

+0

不要忘記選擇我的答案,如果它的作品。 – 2015-03-31 23:57:07

0

有幾種方法可以調用servlet,但只需要使用aform標籤即可。

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

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