2014-02-27 35 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