初学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)


...全文
210 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)
1. 思考一下   学习Java之前,先别急,静下心来好好想想:   1)你对学习Java是否有兴趣?   2)你是否能静下心来坚持不懈地学习?   嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……   2. 准备一下   请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础知识,对于“CLASSPATH要怎么设置啊”、“跪求JDK下载地址”等等问题,你不该问,因为Internet上太多答案了,甚至换个角度说,你是不是还不适合直接学习编程?   1)买本Java学习用书。   JDK 6正式版刚刚推出,市面上你暂时买不到JDK6的书籍,但我仍推荐你买一本适合入门的、较新JDK版本的Java书籍,那么,你现在选择一本讲述JDK5的入门书籍还是有条件的。我可以推荐一些入门书,但是我不打算这么做,因为合我口味的,不一定适合你。但无论如何,《Thinking In Java》绝对不应该作为你入门Java的第一本书籍!   记住,网络上学习Java的资源很多,但基本不够系统,拥有一本Java入门书籍,是你系统学习Java的基础。   2)准备Java学习环境。   准备你的学习环境,很简单,安装JDK6,然后用类似UltraEdit、EditPlus的文本编辑器配置你的学习环境,Internet上有很多关于如何配置的文章。初学Java,不建议用IDE工具,通过一行行的敲代码,你会碰到很多问题,只有这样,你才能学会怎样解决问题,并加深自己对Java的理解。   准备好后,开始进入激动人心的Java学习里程吧!   3. Java基础学习之路   学习Java的过程虽然辛苦些,但又是处处有精彩!学习过程中的心态一定要保持专一,网上关于语言间的“PK”到处都是,别被浮躁影响!认准了Java,你就坚持!克服心魔,恒心最终会给你回报的。   Java的体系分为Java SE、Java EE和Java ME(JDK 5.0以前分别叫J2SE、J2EE和J2ME),Java的敲门砖就是Java SE了,也就是你要入门学习的内容,不论你日后是选择哪个体系领域作为发展方向,你都得从Java SE起步。   学习Java SE,打好Java基础;如果想学Java EE(对不起,我不了解JavaME,所以我无法涉及JavaME的相关内容),对于AWT、Swing是否要学习呢,我个人是觉得还是要知道其所以然的,特别是其事件处理模式,我强烈建议初学者一定要弄清楚,其他具体的开发就不一定要全面掌握了,毕竟AWT、Swing方面的内容足够用几本大部头的书才能描述详尽;当然,如果你的工作就是做AWT、Swing开发,那就另当别论了。   I/O、Thread都是基础之一。   4. Java EE学习之路   学习了Java SE,还只是完成“万里长征”的第一步。   接下来选择学习Java EE或是Java ME(或者你还想不断深入学习JavaSE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习);估计选择Java EE方面的学习者会多一些,JavaEE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍。   学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。   4.1 学习JSP/Servlet   Java EE最高版本目前是5.0版本。   在JavaEE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML基础知识,最好再掌握些JavaScript(目前正火的AJAX技术之一)、CSS的技术,而了解XML是必不可少的(至少描述性配置信息是通过XML来描述的)。在学习JSP/Servlet过程中,应该结合学习JDBC、数据库开发技术,毕竟绝大多数Java Web项目都是和数据库紧密结合的。   4.2 学习数据库开发技术   这里我想重点说一下数据库开发技术,数据库技术是做业务系统必备技能,JavaWeb开发人员最低程度都应该掌握SQL语句的使用!数据库技术大体可分为DBA技术和数据库开发技术,对于开发而言,应侧重数据库开发技术,而数据库基本操作,也是要掌握的。常用数据库有DB2、Oracle、SQLServer、My

81,116

社区成员

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

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