【发布时间】:2012-10-22 11:01:00
【问题描述】:
请看资料
• 目标: 运行一个调用java类的JSP页面,两者都驻留在tomcat服务器上
•环境
服务器环境: Linux
服务器: Tomcat7.0.27
IDE: 没有
•JSP(它所做的只是显示一个字符串)
<%@page import="HelloWorld.HelloWorld" %>
<HTML>
<HEAD>
<TITLE>Hello World/TITLE>
</HEAD>
<BODY>
<H1>Hello World</H1>
String is: <%= HelloWorld.HelloWorld.display() %>
</BODY>
</HTML>
•JSP 位置:TOMCAT/webapps/hello/hello.jsp
•Java 类(它所做的只是返回一个字符串)
包HelloWorld;
public class HelloWorld {
public static String display() {
return "Hello World!"; // Display the string.
}
}
•Java 类位置: TOMCAT/webapps/hello/WEB-INF/classes/HelloWorld/HelloWorld.class •Java 类编译操作: javac -classpath TOMCAT/lib/servlet-api.jar:。 -d /home/user/HelloWorld.java
•WEB.XML
<?xml version="1.0" encoding="Cp1252"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<display-name>hello</display-name>
<description>no description</description>
<servlet>
<servlet-name>hello</servlet-name>
<display-name>hello</display-name>
<description>no description</description>
<jsp-file>/hello.jsp</jsp-file>
</servlet>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
•操作: o 将 java 类复制到目录 o 清理 TOMCAT/工作目录 o 关闭 TOMCAT o 启动 TOMCAT o 打开服务器:8080/hello/hello.jsp
•问题:
HTTP 状态 500
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 14 in the generated java file 无法解析导入 HelloWorld 发生错误在 jsp 文件中的第 8 行:/hello.jsp HelloWorld 无法解析 5: </HEAD> 6: <BODY> 7: <H1>Hello World</H1> 8: String is : <%= HelloWorld.HelloWorld.display() %> 9: </BODY> 10: </HTML>
Stacktrace:org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
在JSP中调用PackageName.ClassName.StringReturningMethod()没有语法错误 该类位于包文件夹中。
是什么原因造成的?
谢谢,
【问题讨论】:
-
哇,大写的 HTML,Scriptlets,CP1252 XML 编码和 Servlet 2.3 兼容的 web.xml。十多年前 JSP/HTML 开发如何(糟糕地)完成的所有迹象。在学习 JSP/HTML 时,您是否绝对肯定您正在阅读正确且最新的教程/资源?从我们的 JSP wiki 页面开始:stackoverflow.com/tags/jsp/info
标签: linux jsp servlets tomcat7