这可以返回一个字符串:
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
可以从两个检索ServletRequest
和ServletContext
不同之处在于前者可以采取
相对路径 为好。
参考: 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);
}
}
一开始在浏览器运行Vue文件还可以的,之后写了HTML文件并运行后发现无论如何都无法回到原来的Vue文件了 尝试: 结果:
这是我的FegnClient: 这是对外部endpoint的调用: 我得到以下例外: 我的SpringMvcConfig类中确实有一个LocalDateTime转换器
我正在尝试实现一个通用的REST客户端,如下所示。我有自己的模型将HTTP响应表示为response T。这里T是服务调用的返回类型,它可能只是T或Ts列表。下面的代码不编译,我需要帮助。 最终调用下面的方法,
我有一个将arraylist传递给另一个意图的代码,如何将更新后的arraylist的值返回给主意图? 主意图代码中的数组列表: 我必须再次将数组列表传递给主要意图吗?像这样:
问题内容: 到目前为止,我将通过以下方式返回html我的主页: 我想要做的是返回home.html本身,而不是复制其内容并返回字符串。 我该怎么做呢?谢谢 :) 问题答案: 您可以只返回或的实例,JAX-RS会做正确的事。
问题内容: 在Java中,我有: 我希望本机方法“ nativeGetStatus”返回此枚举值。 JNI返回整数并与java中的enum的值进行比较是一个选项,但是想知道是否可以通过jobject返回值并将其直接分配给state吗?如果是,怎么办? 问题答案: 当然可以。枚举值是Enum类的公共静态字段,因此您可以使用此官方手册编写代码。只需从JNI获取字段并将其作为jobject返回即可。