Java 如何将值从servlet传递到html页面
我正在使用servlet(v3.0)和jetty v9开发一个web服务器。我必须为HTML页面提供服务,但在此之前,我需要根据布尔变量的值修改页面上几个元素的CSS内联样式 多年来,我一直在看JSP教程和示例,但我觉得自己还没有找到答案。为了简化它,我正试图这样做: page.jsp:(in/WAR/html)Java 如何将值从servlet传递到html页面,java,jsp,servlets,Java,Jsp,Servlets,我正在使用servlet(v3.0)和jetty v9开发一个web服务器。我必须为HTML页面提供服务,但在此之前,我需要根据布尔变量的值修改页面上几个元素的CSS内联样式 多年来,我一直在看JSP教程和示例,但我觉得自己还没有找到答案。为了简化它,我正试图这样做: page.jsp:(in/WAR/html) 我已经使用Java多年了,但以前从未使用过JSP。我本以为这是JSP101,但我不明白它是如何工作的。另外,我的实际用例与上面的例子并不太遥远。JSP是否在这方面做得过火了?如果是的话
我已经使用Java多年了,但以前从未使用过JSP。我本以为这是JSP101,但我不明白它是如何工作的。另外,我的实际用例与上面的例子并不太遥远。JSP是否在这方面做得过火了?如果是的话,还有更好的选择吗?没有JSP,您只需从servlet编写html,如下所示:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
if(yourcondition){
<p style="display:none;"></p>
}else{
<p></p>
}
out.println("</body>");
out.println("</html>");
JSP
<p <c:if test="${your condition}">style="display: none;"</c:if>></p>
Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("attrib", true);
request.getRequestDispatcher("/page.jsp").include(request, response);
}
Jsp
可能重复感谢您的详细回复。但是,我确实希望使用JSP(或任何其他模板引擎)。我理解JSP中的实际替换语法是什么,但我不了解服务器部分。我不想从servlet编写HTML,因为HTML太多了。我遇到的问题是如何从servlet加载JSP页面,将变量传递到某个JSP解析对象(可能是这样),然后返回最终转换的HTML页面。我正在研究Mike Kobityes发布的dup问题的解决方案,这篇文章有足够的信息让你开始。简要介绍如何将请求从servlet转发到jsp:首先设置要传递到请求对象的对象,然后使用getRequestDispatcher(url)定义目标jsp/servlet(也可以转发到其他servlet),最后转发请求。容器将负责解析等。此外,我用servlet代码更新了我的答案。有时我发现代码比解释更容易理解……)框架如何知道应该使用jsp引擎来处理页面?这仅仅是因为jsp文件扩展名吗?jsp实际上是一个servlet。在应用程序启动期间或容器按需编译的特殊类型的servlet。本质上,这些jsp servlet为您执行println()。而不是你写下来。在这里看一下第291页:如果您好奇的话,我建议您在业余时间阅读“headfirstservlet和JSP”中的第7章……)
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("yourvalue");
}
<script>
$(document).ready(function(){
//sends ajax get request
$.get( "myServlet", function( data ) {
//Do your logic with the response
if(data == "myvalue"){
$("p").css("display", "none");
}
});
});
</script>
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
request.setAttribute("myvalue",val);
RequestDispatcher rd = sc.getRequestDispatcher("mypage.jsp");
rd.forward(req, res);
}
<p <c:if test="${your condition}">style="display: none;"</c:if>></p>
<p style="display: ${ var == 'myvalue' ? 'none': 'block'};"></p>
var myVal= '${val}'
if(myVal == "none"){
$("p").css("display", "none");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("attrib", true);
request.getRequestDispatcher("/page.jsp").include(request, response);
}
${ attrib ? 'none': 'block'}