Java 在Tomcat服务器上使用JSTL标记库的问题
这听起来可能是个奇怪的问题,但我无法在运行在Tomcat服务器上的J2EE应用程序中使用jstl标记库。这个web应用程序在GlassFish服务器上运行得非常好,但当我创建另一个项目并复制使用jstl标记的Java 在Tomcat服务器上使用JSTL标记库的问题,java,jsp,tomcat,Java,Jsp,Tomcat,这听起来可能是个奇怪的问题,但我无法在运行在Tomcat服务器上的J2EE应用程序中使用jstl标记库。这个web应用程序在GlassFish服务器上运行得非常好,但当我创建另一个项目并复制使用jstl标记的signup.jsp时,我发现了一个错误。我的PageController代码是 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throw
signup.jsp
时,我发现了一个错误。我的PageController
代码是
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("ai");
try {
request.getRequestDispatcher("pages/signup.jsp").forward(request, response);
} finally {
out.println("af");
out.close();
}
}
这里只打印“af”,不打印“ai”。现在,如果我从signup.jsp
中删除jstl代码,那么代码运行良好。现在我的问题是,我是否必须添加任何额外的文件才能使jstl文件在tomcat服务器中工作?
提前感谢。美国的Javadoc
在将响应提交到服务器之前,应调用forward
客户端(在刷新响应正文输出之前)。如果回答是
已提交,此方法将抛出
非法国家例外响应缓冲区中未提交的输出为
在转发之前自动清除。
因此,这样做是有道理的
out.println("ai");
没有印刷。但这似乎与标记库没有任何关系。此外,该规范没有说明标签库参与了
RequestDispatcher
,因此这可能只是一种特定于供应商的行为。很抱歉,未能及时发布此问题的答案
Glassfish附带了运行JSTL标记所需的所有库,但对于Apache,您需要下载这些库。我在internet上找到了可以下载所有必要文件的文件。如果我删除jstl代码,这是什么意思?@JigarJoshi它的意思是当我删除使用jstl代码的行时,我的应用程序运行良好这些行是什么?@JigarJoshi