如何从Java Servlet返回HTML文档?

这可以返回一个字符串:

import javax.servlet.http.*;

@SuppressWarnings("serial")

public class MonkeyServlet extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws IOException {

resp.setContentType("text/plain");

resp.getWriter().println("got this far");

}

}

但是我无法获取返回的html文档。这不起作用:

import javax.servlet.http.*;

@SuppressWarnings("serial")

public class BlotServlet extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws IOException {

resp.setContentType("text/html");

resp.getWriter().println("html/mypage.html");

}

}

很抱歉成为菜鸟!

编辑:

我已经在单独的文档中使用了html。所以我需要返回文档,或者以某种方式读取/解析它,所以我不只是重新输入所有的html …

编辑:

我的web.xml中有这个

<servlet> 

<servlet-name>Monkey</servlet-name>

<servlet-class>com.self.edu.MonkeyServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Monkey</servlet-name>

<url-pattern>/monkey</url-pattern>

</servlet-mapping>

还有其他我可以放的东西,所以它只是返回一个文件,例如…

<servlet-mapping> 

<servlet-name>Monkey</servlet-name>

<file-to-return>blot.html</file-to-return>

</servlet-mapping>

回答:

您可以从Servlet本身 HTML (不建议使用)

PrintWriter out = response.getWriter();

out.println("<html><body>");

out.println("<h1>My HTML Body</h1>");

out.println("</body></html>");

或者, 到现有资源(servlet,jsp等) (称为转发到视图)(首选)

RequestDispatcher view = request.getRequestDispatcher("html/mypage.html");

view.forward(request, response);

您需要将当前HTTP请求转发到的现有资源在任何方面都不需要特殊,即,它的编写方式与其他Servlet或JSP相同;容器无缝处理转发部分。

只要确保您提供了正确的资源路径即可。例如,对于servlet,RequestDispatcher将需要正确的URL模式 (如web.xml中所指定)

RequestDispatcher view = request.getRequestDispatcher("/url/pattern/of/servlet");

另外,还要注意的是,一个RequestDispatcher可以从两个检索ServletRequestServletContext不同之处在于前者可以采取

为好。

参考: http

:

//docs.oracle.com/javaee/5/api/javax/servlet/RequestDispatcher.html

回答:

public class BlotServlet extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws IOException {

// we do not set content type, headers, cookies etc.

// resp.setContentType("text/html"); // while redirecting as

// it would most likely result in an IllegalStateException

// "/" is relative to the context root (your web-app name)

RequestDispatcher view = req.getRequestDispatcher("/path/to/file.html");

// don't add your web-app name to the path

view.forward(req, resp);

}

}

以上是 如何从Java Servlet返回HTML文档? 的全部内容, 来源链接: utcz.com/qa/426344.html

回到顶部