Servlet响应在不同的.htm文件中

时间:2014-02-18 12:58:14

标签: java html servlets

  1. 如何使用CSS设计的单独.html文件显示servlet生成的响应或输出?

    例如,servletresp.javahtmlpage.html生成的输出。

  2. 我们可以在Servlet编程中使用CSS吗?

2 个答案:

答案 0 :(得分:2)

你的问题非常通用,所以我假设你是一个刚开始的Java网络程序员。

关于第一个问题,我建议您使用JSP页面(或任何其他模板技术)。 是的,可以使用RequestDispatcher从Servlet提供.html文件,但是JSP页面用于生成这样的输出 - 很容易使JSP页面的一小部分动态化,同时提供来自的HTML文件servlet没有为您提供某些动态行为的选项。

只需将您的文件 .html页面重命名为 file .jsp,然后将其放入您的war项目的Web源目录中。

关于第二个问题 - 由servlet或JSP页面发送的HTML仍然是普通的HTML,您可以像在任何HTML页面中一样使用CSS。

代码示例

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {
    RequestDispatcher dispatcher = request.getRequestDispatcher("/file.html");

    // If you want to include the file in your response, use dispatcher.include - 
    // you can include multiple different files or send more output using 
    // response.getWriter() or response.getOutputStream
    dispatcher.include(request, response);

    // If you just want to send this one file as the response, use dispatcher.forward
    dispatcher.forward(request, response);
}

答案 1 :(得分:0)

如果您的目标是让用户的浏览器(似乎)请求一个静态.html页面,但是执行了您的servlet代码,那么有几种方法可以做到这一点。

大多数(全部?我只熟悉在WebSphere上运行Struts)servlet容器允许您为映射到操作的URL指定任意模式,因此您可以简单地为htmlpage.html添加映射执行相关代码的servlet操作然后通过JSP(或类似代码)运行,以呈现HTML作为响应发送。

或者,您可以简单地提供一个静态HTML页面,该页面使用JavaScript(如此执行的客户端)模板引擎,然后在页面加载时通过AJAX调用从您的servlet(可能是JSON)加载页面的数据

第二部分没有任何意义。 CSS不是一种编程语言,它只是指定事物外观的规则。如果没有要解释的内容并将这些规则应用于内容(这是浏览器的功能),它也毫无意义。您可以在CSS中包含CSS,或者在servlet代码中生成单独的文件,但它不会做任何事情。