- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 Servlet 访问 JSP 的 HTML 使用,而不必将所有面向客户端的页面都称为 *.jsp?
我宁愿这样做,也不愿使用所有的response.write()东西,因为我认为当它都是干净的“HTML”时,它更容易阅读和维护。
这是公平的评估吗?
编辑:我想要的是让 Servlet 将内容输出到屏幕,而不必重定向到 .jsp 文件。
通过这种方式,我可以编写所有 JSP 内容,但是当需要显示它时,用户看到的 URL 页面本质上是“http://blah.com/posts/post-id”,这是 servlet 的地址,而不是“http://blah.com/posts.jsp?pos=post-id” .
但我仍然会在外部 .jsp 中编写所有表示逻辑。
最佳答案
只需将 JSP 隐藏在 /WEB-INF
文件夹中,这样就没有人可以直接访问它,并创建一个将请求转发到此 JSP 文件的 servlet。不要进行重定向,否则您将看到新的 URL 反射(reflect)在地址栏中。例如
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String postId = request.getPathInfo();
// Do your business thing here. Any results can be placed in request scope. E.g.
request.setAttribute("post", post); // post is a bean containing information you'd like to display in JSP.
// Then forward request to JSP file.
request.getRequestDispatcher("/WEB-INF/posts.jsp").forward(request, response);
}
将此 servlet 映射到 /posts/*
的 url-pattern
上。
在/WEB-INF/posts.jsp
中,使用标签库来控制页面流,并使用EL来访问数据。例如
<h2>${post.title}</h2>
<p><fmt:formatDate value="${post.date}" type="date" /> - ${post.message}</p>
最后只需通过http://example.com/posts/postid
调用servlet即可。 /postid
部分将由 HttpServletRequest#getPathInfo()
提供。您需要自己解析该值并用它来做业务。
关于java - 如何在Servlet中插入JSP功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548148/
我是一名优秀的程序员,十分优秀!