初学JSP。连第一个JSP都运行不了啊。。跪求帮忙!!!

Terryfiveboy 2004-09-22 03:14:47
大家帮帮忙啊。小的初学JSP。这是第一个JSP都运行不了啊。。打击士气啊~~
以下是C:\Tomcat\webapps\jsptest\A.jsp的内容
<html>
<body>
<jsp:useBean id="cc" class="KK" scope="application"/>
<jsp:setProperty name="cc" property="name" value="this is A"/>
<jsp:getProperty name="cc" property="name"/>
</body>
</html>

C:\Tomcat\webapps\jsptest\WEB-INF\classes\KK.java里的内容是:
public class KK{
public KK(){
}
private String name="NONE";
public String getName(){
return name;
}
public void setName(String newName){
name=newName;
}
}

当我打开start tomcat,用IE打开:http://localhost:8080/jsptest/A.jsp
编译不过啊(500错误)~~到底怎么回事?我用的是tomcat4.0.6。报错信息如下:
type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.


An error occurred at line: 3 in the jsp file: /A.jsp

Generated servlet error:
C:\Tomcat\work\Standalone\localhost\jsptest\A$jsp.java:60: Class org.apache.jsp.KK not found.
KK cc = null;
^


An error occurred at line: 3 in the jsp file: /A.jsp

Generated servlet error:
C:\Tomcat\work\Standalone\localhost\jsptest\A$jsp.java:63: Class org.apache.jsp.KK not found.
cc= (KK)
^


An error occurred at line: 3 in the jsp file: /A.jsp

Generated servlet error:
C:\Tomcat\work\Standalone\localhost\jsptest\A$jsp.java:68: Class org.apache.jsp.KK not found.
cc = (KK) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "KK");
^


An error occurred at line: 5 in the jsp file: /A.jsp

Generated servlet error:
C:\Tomcat\work\Standalone\localhost\jsptest\A$jsp.java:94: Class org.apache.jsp.KK not found.
out.print(JspRuntimeLibrary.toString((((KK)pageContext.findAttribute("cc")).getName())));
^
4 errors, 1 warning

at org.apache.jasper.compiler.Compiler.compile(Compiler.java:285)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:548)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:176)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:188)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:536)


...全文
195 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
Terryfiveboy 2004-09-23
  • 打赏
  • 举报
回复
。。上面那位大大。我问的好象不是数据库连接的问题啊。。。晕~~~
我想问的是:
<html>
<body>
<jsp:useBean id="cc" class="KK" scope="application"/>
<jsp:setProperty name="cc" property="name" value="this is A"/>
<jsp:getProperty name="cc" property="name"/>
</body>
</html>

我不加包名。只要加上<%@page import="KK"%> ,以上的程序就可以执行了。为什么会这样了?WEB-INF\classes\目录下的class不是自动导入的吗?那为什么用包的话就不用写上面的那条import语句??请各位大大帮帮忙啊?实在搞不懂
sxl6159078 2004-09-22
  • 打赏
  • 举报
回复

现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建
create table test(test1 varchar(20),test2 varchar(20)
然后向这个表写入一条测试纪录
那么现在开始我们的jsp和数据库之旅吧。
一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为你的数据库的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
二、jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
三、jsp连接DB2数据库
testdb2.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
四、jsp连接Informix数据库
testinformix.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
五、jsp连接Sybase数据库
testmysql.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/tsdata";
//tsdata为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
六、jsp连接MySQL数据库
testmysql.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
七、jsp连接PostgreSQL数据库
testmysql.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/soft"
//soft为你的数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
奇怪了。我不加包名。只要加上<%@page import="KK"%> ,以上的程序就可以执行了。为什么会这样了?WEB-INF\classes\目录下的class不是自动导入的吗?那为什么用包的话就不用写上面的那条import语句??请各位大大帮帮忙啊?实在搞不懂
wenlong1045 2004-09-22
  • 打赏
  • 举报
回复
其实你可以试试用JBuild做点东西
这个很简单的
把你的程序放在jbuild 里面运行一下
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
tomcat一定要包名?那其他的WEB服务器软件呢?有什么WEB服务器软件是不用的加包名的?
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
好象是啊。奇怪。。。
zzyy1998 2004-09-22
  • 打赏
  • 举报
回复
好象你没有加包名,在JSP中引用BEAN好象要用到包名,你试试看
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
tomcat一定要包名?那其他的WEB服务器软件呢?有什么WEB服务器软件是不用的加包名的?
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
加上包名?在哪加包名?
liuyonghailiuyong 2004-09-22
  • 打赏
  • 举报
回复
加上包名从新编译,看看!
好象tomcat下一定要有包名的!
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
晕~各位大大帮帮忙吧。这个问题还没解决呢!!
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
上面两个例子都可以通过并运行。
上海老猫 2004-09-22
  • 打赏
  • 举报
回复
也太强了吧,第一个jsp程序就要用javabean
应该网 2004-09-22
  • 打赏
  • 举报
回复
试试:
<html>
<body>
hello,world
</body>
</html>

是否正常,再试试:
<%@ page language="java" %>
<%@ page info="a hello world example" %>
<html>
<head>
<title>Hello, World</title>
</head>
<body>
<h1>
<%out.println(" Hello, World! ");%>
</h1>
</body>
</html>

上面两个可以通过吗?
urchinjj 2004-09-22
  • 打赏
  • 举报
回复
wait for result
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
我已经把KK.java编译了。生成的KK.class也已经放在以下目录里了
C:\Tomcat\webapps\jsptest\WEB-INF\classes\
!!!!!!!!!!
刚忘记说已经编译了。各位大大不好意思啊
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
那个KK.java已经编译了。生成了个KK.class在C:\Tomcat\webapps\jsptest\WEB-INF\classes\
里~~。
jiankou2001 2004-09-22
  • 打赏
  • 举报
回复
要把KK.java编译成KK.class,Tomcat不会自动给你编译的
Terryfiveboy 2004-09-22
  • 打赏
  • 举报
回复
那个KK.java已经编译了。生成了个KK.class在C:\Tomcat\webapps\jsptest\WEB-INF\classes\
里~~。
yzhxy2002 2004-09-22
  • 打赏
  • 举报
回复
http://www.zqx.org.cn
到上面注册一个会员测试一下
加载更多回复(3)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧