谢谢 andunkafei及各位,没有出现以前的错误 但是新的又出现了: HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:558) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) root cause java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence. org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:656) org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:528) org.apache.jasper.xmlparser.XercesEncodingDetector.load(XercesEncodingDetector.java:1041) org.apache.jasper.xmlparser.XercesEncodingDetector.skipString(XercesEncodingDetector.java:992) org.apache.jasper.xmlparser.XercesEncodingDetector.scanXMLDecl(XercesEncodingDetector.java:1250) org.apache.jasper.xmlparser.XercesEncodingDetector.getEncoding(XercesEncodingDetector.java:149) org.apache.jasper.xmlparser.XercesEncodingDetector.getEncodingMethod(XercesEncodingDetector.java:162) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:99) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:340) org.apache.jasper.compiler.ParserController.parse(ParserController.java:197) org.apache.jasper.compiler.ParserController.parse(ParserController.java:149) org.apache.jasper.compiler.ParserController.parse(ParserController.java:135) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:237) org.apache.jasper.compiler.Compiler.compile(Compiler.java:456) org.apache.jasper.compiler.Compiler.compile(Compiler.java:439) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) note The full stack trace of the root cause is available in the Tomcat logs. --------------------------------------------------------------------------------Apache Tomcat/5.0.16 太多了,我根本看不懂,请各位指点一下小弟
tomcat环境配置心得 首先要说的是,使用jdk+tomcat完全可以配置我们的jsp服务器,不再需要其实任何东东,有很多文章介绍了Apache,其实根本用不着,一般的学习调试tomcat完全可以胜任了。 安装jdk后,tomcat在安装之前会自动找到jdk的安装路径,一路点击“下一步”,经过一段时间的文件复制,最后“close",完成comcat的安装。 您最好去下载一个版本较高的tomcat,比如4.1以上的,因为它不需要设置太多的系统变量,右击“我的电脑”,选择“属性”->"高级“->“环境变量“->“系统变量“,新建一个TOMCAT_HOME,值设置成你的tomcat所在的路径,比如:D:\Program Files\Apache Group\Tomcat 4.1,配置完成。 从开始菜单中找到tomcat选项,一般打开顺序是:开始->程序->Apache Tomcat 4.1,选择“Start Tomcat“,让jsp服务器开始运行,此时会打开一个类似Dos的窗口,会显示一些相关的信息。 如果您使用代理上网,一定要先撤掉代理,不然您的jsp程序永远也得不到执行。如果不是代理的,这一步就跳过了。 打开浏览器,在地址栏中输入:http://localhost:8080,如果看到有老虎(我也不知道是老虎还是猫)的画面,恭喜您,您成功了一半。 先来享受一下成功的喜悦吧,请输入下面的代码:
<html>
<head>
<title>First Page</title>
</head>
<body>
<H3>Today is: h
<%= new java.util.Date() %>
</H3>
</body>
</html>
将该程序保存为:First.jsp,放到Tomcat的ROOT目录下,然后在浏览器的地址栏中输入:http://localhost:8080/First.jsp,(First.jsp跟我们保存的文件名的大小写要一致)回车,如果不出意外,应该可以看到形如Today is: h Fri Apr 11 08:32:38 CST 2003 的结果。
注意:ROOT是tomcat的默认虚拟目录,如果要改成自己的虚拟目录怎么办呢?请继续往下看吧。 要改成自己的虚拟目录,就要请出server.xml来了,该文件是一个配置文件,在Tomcat\conf目录下,使用任何文本编辑软件都能打开它,我们先找到下面一句:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
这里的port="8080"就是端口,我们完全可以用别的端口来代替,但不能是被系统占用的端口(0--1023),这里简单提一下。
下面我们再往下找,会发现以下的语句:
</Context>
</Host>
我们就应该找到这两个语句,如果不懂E文,您就认定这两个语句好了。然后我们将该语句更改如下:
</Context>
<Context path="/myjsp" debug="0" docBase="e:/myjsp" reloadable="true">
</Context>
</Host>
这里的path="/myjsp"就是我们就配置的虚拟目录了,以后在地址栏中输入http://localhost:8080/myjsp即可。而docBase="e:/myjsp" 则是机器本地路径,他们通过这个语句形成一个映射关系,其它照抄。 将上面的First.jsp文件放到e:/myjsp目录下,输入http://localhost:8080/myjsp/First.jsp,是不是有一种喜上眉梢的感觉? 在论坛里我见得最多的就是很多人不知道javaBean文件放到哪里,老实说开始我也不知道,更令人不解的是,十个人有九种不同的说法,这更让我们茫然。其实这问题也不是我们想像的那么复杂,我们以一个例子说明:
先建立一个java程序,代码如下:
package hall;
public class SimpleBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
保存为SimpleBean.java,编译后会生成一个包,其实就相当于一个目录,也就是SimpleBean.class会存放在hall目录中,暂且保存起来,将来备用。
再输入以下代码:
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Reusing JavaBeans in JSP</TABLE>
</CENTER>
<P>
<jsp:useBean id="test" class="hall.SimpleBean" />
<jsp:setProperty name="test" property="message" value="Hello WWW" />
<H1>Message: <I>
<jsp:getProperty name="test" property="message" />
</I></H1>
</BODY>
保存在我们刚才建立的虚拟目录e:/myjsp下面,并命名为:BeanTest.jsp。 现在我们应该将hall(包)目录放在哪儿呢?别急,我们先在e:/myjsp下建立一个文件夹WEB-INF,然后再在WEB-INF下建立一个classes文件夹,最后将hall目录放到classes下,当然,hall下的字节码文件SimpleBean.class也一并要移过来,而SimpleBean.java就和BeanTest.jsp放到同一目录吧(也也不知道要不要放到一起,我没调试)。 好了,大功告成了,重新启动机器(如果您试了好多次都不行,这一步一定要做),在浏览器中输入:http://localhost:8080/myjsp/BeanTest.jsp,您看到了什么?呵,别告诉我您什么都没看到,那肯定是您设置的问题了。
名字是:Tomcat与Java Web 开发技术详解
飞思科技产品研发中心 监制。
这本书对tomcat5介绍很相信,尤其是对于初学者来说很棘手的配置问题讲的很详细。
不是系统配置的问题,因为你的默认页可以打开
如果你不想另外配置web.xml文件,你可以把你写好的文件放到已经配置好的文件夹里,比如
root文件夹
然后输入http://localhost:8080/test.jsp
test.jsp为你自己的文件
在myweb里建立WEB-INF文件夹
在myweb里建立web.xml文件当然进行配置,你可以参考webapps里其它目录内的web.xml文件进行配置
将文件保存在myweb里。如a.jsphttp://localhost:7001/myweb/a.jsp
但是:1,在没有设置虚拟路径的情况下,我把test.jsp(我是记事本写的)放在webapps\root\
下,但http://localhost:8080/test.jsp还是出现开始的问题,
2,我也打开过server.xml但没有找到<context><host>,我想我用的是tomcat5,与tomcat4不一样把。
3 我是用记事本写的,不知道有问题没得?
4。 我os为windows2000p,应该从开始菜单中能启动,但我的tomcat却只能进入tomcat 的bin中利用startup才能启动,这是什么原因拉?
但是新的又出现了:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:558)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence.
org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:656)
org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:528)
org.apache.jasper.xmlparser.XercesEncodingDetector.load(XercesEncodingDetector.java:1041)
org.apache.jasper.xmlparser.XercesEncodingDetector.skipString(XercesEncodingDetector.java:992)
org.apache.jasper.xmlparser.XercesEncodingDetector.scanXMLDecl(XercesEncodingDetector.java:1250)
org.apache.jasper.xmlparser.XercesEncodingDetector.getEncoding(XercesEncodingDetector.java:149)
org.apache.jasper.xmlparser.XercesEncodingDetector.getEncodingMethod(XercesEncodingDetector.java:162)
org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:99)
org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:340)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:197)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:149)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:135)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:237)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:456)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:552)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.16
太多了,我根本看不懂,请各位指点一下小弟
本人多年来一直使用delphi这个不错的软件,最近看到身边越来越多的程序员学习java,因此,也想看看java的能力,是不是真的如神话般所述。
听前辈们讲最好能从jsp学起,所以本篇先讲讲jsp的配置及javaBean的使用。现在,我学jsp有两月有余,在jsp的配置上也走了许多的弯路,现把所学写本笔记,以帮助大家不要重走我的路。在这里我会写下一系列学习jsp的文章,当然,读者你可不能笑话我,因为我写的这些文章只适合于初学者,毕竟我也只是初学者。在这里请大家注意一下:
如果你的电脑使用了代理服务器上网,那请把下面的localhost全部改为:127.0.0.1,
否则会无法显示网页。
目前,建议初学者用j2sdk + Tomcat 5.0.19开始学习jsp.也是现在最新版本.
初学者一般和我当初一样,都不明白jdk,j2sdk,j2se,j2ee之间的区别,这里简单介绍一下:
jdk: java devolop kit -- java开发包(运行java最基本的东东)
j2sdk:在1.4版以前称为jdk,可以理解j2sdk是jdk的升级版本,所以我们只要安了j2sdk即可,JDK就没必要了,呵呵,装了升级版,还要装低级版否?
j2sdk呢有几个版本对应于java2的几个版本,其中j2ee需要用到开发工具就是J2eesdk了,只不过大部分应用服务器(weblogic jboss等)都内置了j2eesdk。
j2se: j2sdk也就是标准版,一般来说j2sdk指的就是j2se.
j2ee: 也称j2eesdk,用来进行企业级开发。
jre: 是java runtime envionment -- java运行环境,jdk中包括了它,但是对于不需要开发只是运行的用户是可以只单独安装jre的,所以sun提供了jre的下载。 能够理解上面的就概念就差不多啦,应该不是很难吧,如果现在还不能完全明白,不要紧,在跟我学过后面的几章后,你来回过头来看看,就很清楚了。j2sdk下载地址:http://java.sun.com/j2se/1.4.2/download.html
tomcat5 下载地址:http://www.apache.org/dist/jakarta/安装步骤:
1.安装完j2sdk以后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2):
JAVA_HOME=c:\j2sdk1.4.2;
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;不能少,表示当前路径)
path= %JAVA_HOME%\bin; (系统里已经有了path变量,只需要在path最前面加上去即可)
然后可以写一个简单的java程序来测试J2SDK是否已安装成功:
public class Myjava{
public static void main(String args[]){
System.out.println("试试看,装好了吗?.");
}
}
将上面的这段程序保存为文件名为Myjava.java的文件。
然后打开命令提示符窗口,cd到你的Myjava.java所在目录,然后键入下面的命令
javac Myjava.java
java Myjava
此时如果看到结果的话表示安装成功,出错则仔细检查一下你的配置情况。 2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat5):
CATALINA_HOME=c:\tomcat5;
CATALINA_BASE=c:\tomcat5;
然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet-api.jar(此文件在tomcat5以前名为:servlet.jar)追加到classpath中去,修改后的classpath如下: classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar; (最好再拷贝到:C:\j2sdk1.4.2\jre\lib\ext目录下)
接着可以启动tomcat,在IE中访问http://localhost:8080/,如果看到tomcat的欢迎页面的话说明安装成功了。 第三步:建立自己的jsp app目录
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples等Tomcat自带的的目录;
2.在webapps目录下新建一个目录,起名叫myapp;
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.xml,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?><!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>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下: <html>
<head><title>大家好</title>
</head>
<body>
<% out.println(" 大家好,我的第一个jsp程序"); %>
</body>
</html>6.重启Tomcat
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 即可. 到这里,你就可以开始写jsp程序了,在这里向大家介绍几个写jsp比较好的工具:
DreamWeaver MX
EditPlus
JBuilderX
如果你html功底深的话,直接用记事本也行了,哈哈。