JSP显示源代码而不是执行

我是jsp的新手,遇到了一些麻烦。 最初,jsp文件和相关的java类是在测试Tomcat服务器上构建和测试的。 现在,他们已经转换到我认为是相同设置的另一台服务器(除了它现在是linux而不是windows)。 但是当访问jsp页面时,显示源代码而不是实际执行的jsp。 我用谷歌搜索了一段时间但没有成功。

这是我正在测试的jsp文件的代码:

  Hello! The time is now    

这是导航到页面时我在浏览器中看到的内容:

  Hello! The time is now  

页面的来源是在示例文件中键入的确切代码:

   Hello! The time is now    

服务器似乎正在运行。 以下是我从Firebug获得的响应头:

 Date Sat, 15 Jan 2011 20:53:24 GMT Server Apache/2.2.3 (CentOS) Last-Modified Sat, 15 Jan 2011 02:20:18 GMT Etag "b385d8-55-499d931205c80" Accept-Ranges bytes Content-Length 85 Content-Type text/html; charset=UTF-8 

我原以为这个页面可能会解决问题,因为我没有引用我正在使用的jsp文件,甚至还没有引用WEB-INF文件夹中我的web.xml文件中的以下片段:

  jsp org.apache.jasper.servlet.JspServlet  logVerbosityLevel WARNING  3   jsp *.jsp  

我尝试插入这些行并重新启动Tomcat,但没有成功。 有任何想法吗?

从响应标头:

服务器Apache / 2.2.3(CentOS)

这不是由Apache Tomcat提供的 ,而是由Apache HTTPD提供的 。 您根本没有将它部署到Tomcat。

我刚遇到同样的问题,这就是我偶然发现这篇文章的原因。 对我来说,事实certificate问题是CATALINA_HOME和CATALINA_BASE之间的区别。 我想很多人都没有意识到这是两个不同的地方。 在我的Ubuntu上,CATALINA_HOME位于/ usr / share / tomcat6中,但CATALINA_BASE位于/ var / lib / tomcat6中。 这很重要,因为您需要将您的jsp文件放在CATALINA_BASE中。 所以,事实上,我会说Tomcat没有找到你的代码,即使你的浏览器找到了这个文件并且很高兴为你显示它,就像它的其他文本文件一样。

希望这可以帮助那些来到这里遇到同样问题的人 – 这是我第一次尝试在StackOverflow上发布答案。

看看它说“logVerbosityLevel”和“WARNING”的位置? 将警告更改为DEBUG。 您还可以找到catalina.sh脚本并找到您的java命令,并确保标志-DDEBUG包含在启动选项中。

查看完整调试模式的日志将告诉您在新服务器上启动Tomcat是否有任何问题。

例如,您可能缺少依赖性或依赖性冲突,而这些冲突未显示信息量较少的日志记录级别。

最后,您是否尝试过一个简单的JSP测试页面?

  <% out.println("Hello"); %> 

如果你把它放在JSP中并尝试加载它,你会看到JSP或输出吗?

您是否尝试在请求中使用Tomcat端口? 通常,这是8080.我认为其中一位评论员提到了这种可能性。