2014-02-27 84 views
0

我是編程Web應用程序的新手,對Java HttpServlet有個疑問。我如何使用長靜態html代碼?我有一個帶有動態部分的網頁,所以我不能只使用html,但它只是動態頁面的一小部分,Rest是靜態的。在那一刻我寫的頁面這樣的靜態部分:Java中的靜態html代碼Servlet

PrintWriter writer = response.getWriter(); 
writer.println("<html>"); 
writer.println("<head><title>Hello World Servlet</title></head>"); 
writer.println("<body>"); 
writer.println(" <h1>Hello World</h1>"); 
writer.println("<body>"); 
writer.println("</html>"); 

但我不幹肯定,這isn't的神風格。我尋找一個更好的解決方案一段時間,但沒有找到一個更好的解決方案,這是由於我沒有爲我必須看的事實。有人可以發佈一個鏈接,我讀了一些關於這個。

最後我必須爲我的壞英語道歉,但我不是母語的人。

比你非常 約翰內斯

+0

使用JSP有什麼問題嗎? – Masudul

+0

約翰內斯明確你想要什麼.... – Vicky

+0

你在哪裏尋找更好的解決方案? –

回答

4

使用在你的MVC應用程序的小服務程序作爲控制器,並使用JSP來處理視圖。所以,而不是將大量的HTML代碼打印到響應中,請轉發到下一個視圖(jsp文件)。下面是一個servlet和一個JSP文件的基本示例。

@WebServlet("/hello") 
public class HelloServlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
     request.setAttribute("salute", "Hello world from Servlet!"); 
     request.getRequestDispatcher("/realView.jsp").forward(request, response); 
    } 
} 

而在你realView.jsp文件:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Real View</title> 
</head> 
<body> 
    ${salute} 
</body> 
</html> 

所以,只要訪問這個URL:在瀏覽器中http://yourserverip/yourAppName/hello,你會得到與你的servlet發佈的內容的一個HTML第5頁。

您可以在StackOverflow Servlets wiki找到更多關於此解釋的詳細信息和另一個示例。

2

如果Facelets - 其目的是使用JSF,但可以在純servlet之上和一整套Web框架工作 - 是不是一種選擇,你不希望使用JSP通過@的建議Luiggi,有幾個獨立的模板引擎(也許這是你失蹤術語)爲Java:

(僅舉幾例)

當然遲早後者,你將可以實現,你需要的不僅僅是更多模板引擎+ servlet。一旦你這樣做,let me Google that for you