当前位置: 技术问答>java相关
请问一个关于jsp+javabean的问题!!!!
来源: 互联网 发布时间:2017-04-19
本文导语: 我的服务器是Tomcat,我现在在的文件夹webapps下设置了MyJsp/jsp/part01/helloworld这样一个文件夹,我编写了一个HelloWorld3.jsp 文件,源文件如下: Hello World ! Hello ! 我的操作系统是win2000Professional,我...
我的服务器是Tomcat,我现在在的文件夹webapps下设置了MyJsp/jsp/part01/helloworld这样一个文件夹,我编写了一个HelloWorld3.jsp
文件,源文件如下:
Hello World !
Hello !
我的操作系统是win2000Professional,我设置了ClassPath为d:myjava,在这个文件夹下设置了aboutjsphelloworld目录,我写了一个
简单的JavaBean的程序文件(BeanHelloWorld.java)就放在helloworld目录下,源文件如下:
package aboutjsp.helloworld;
public class BeanHelloWorld
{
private String name;
//Bean的生成代码
public void BeanHelloWorld()
{
this.name = "world!";
}
//设置名称的方法
public void setName(String name)
{
this.name = name;
}
//获得名称的方法
public String getName()
{
return this.name;
}
}
该文件便已通过生成了BeanHelloWorld.class文件。
--------------------------------------------------------------------------
我将Tomcat服务器启动后,在浏览器输入http://localhost:8080/MyJsp/jsp/part01/helloworld/HelloWorld3.jsp
出现下面错误信息:
Apache Tomcat/4.0.4-b1 - HTTP Status 500 - Internal Server Error
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: aboutjsp.helloworld.BeanHelloWorld
at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:183)
at org.apache.jasper.compiler.GetPropertyGenerator.generate(GetPropertyGenerator.java:102)
at org.apache.jasper.compiler.JspParseEventListener$GeneratorWrapper.generate(JspParseEventListener.java:834)
at org.apache.jasper.compiler.JspParseEventListener.generateAll(JspParseEventListener.java:241)
at org.apache.jasper.compiler.JspParseEventListener.endPageProcessing(JspParseEventListener.java:197)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:215)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
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)
。。。部分省去
root cause
java.lang.ClassNotFoundException: aboutjsp.helloworld.BeanHelloWorld
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1406)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1254)
at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:181)
at org.apache.jasper.compiler.GetPropertyGenerator.generate(GetPropertyGenerator.java:102)
at org.apache.jasper.compiler.JspParseEventListener$GeneratorWrapper.generate(JspParseEventListener.java:834)
at org.apache.jasper.compiler.JspParseEventListener.generateAll(JspParseEventListener.java:241)
。。。部分省去
--------------------------------------------------------------------------
我又将这个BeanHelloWorld的class文件放在服务器的MyJsp/jsp/part01/helloworld文件夹下,将jsp源文件中的
import去掉,同时又将标记中的class直接改成BeanHelloWorld后再重新运行这个jsp文件,还是报
同样的错误。
--------------------------------------------------------------------------
我想请教一下各位老师:
1.到底是哪里的问题呢?
2.对于Tomcat提示的这种错误信息我应该怎样分析才能排除错误,一般分析服务器提示的这些错误有什么方法没有?
3.在JSP中设置的页面在文本框中输入中文,怎么经过JSP处理后就变成乱码?
文件,源文件如下:
Hello World !
Hello !
我的操作系统是win2000Professional,我设置了ClassPath为d:myjava,在这个文件夹下设置了aboutjsphelloworld目录,我写了一个
简单的JavaBean的程序文件(BeanHelloWorld.java)就放在helloworld目录下,源文件如下:
package aboutjsp.helloworld;
public class BeanHelloWorld
{
private String name;
//Bean的生成代码
public void BeanHelloWorld()
{
this.name = "world!";
}
//设置名称的方法
public void setName(String name)
{
this.name = name;
}
//获得名称的方法
public String getName()
{
return this.name;
}
}
该文件便已通过生成了BeanHelloWorld.class文件。
--------------------------------------------------------------------------
我将Tomcat服务器启动后,在浏览器输入http://localhost:8080/MyJsp/jsp/part01/helloworld/HelloWorld3.jsp
出现下面错误信息:
Apache Tomcat/4.0.4-b1 - HTTP Status 500 - Internal Server Error
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: aboutjsp.helloworld.BeanHelloWorld
at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:183)
at org.apache.jasper.compiler.GetPropertyGenerator.generate(GetPropertyGenerator.java:102)
at org.apache.jasper.compiler.JspParseEventListener$GeneratorWrapper.generate(JspParseEventListener.java:834)
at org.apache.jasper.compiler.JspParseEventListener.generateAll(JspParseEventListener.java:241)
at org.apache.jasper.compiler.JspParseEventListener.endPageProcessing(JspParseEventListener.java:197)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:215)
at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:177)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:189)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:475)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
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)
。。。部分省去
root cause
java.lang.ClassNotFoundException: aboutjsp.helloworld.BeanHelloWorld
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1406)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1254)
at org.apache.jasper.compiler.BeanRepository.getBeanType(BeanRepository.java:181)
at org.apache.jasper.compiler.GetPropertyGenerator.generate(GetPropertyGenerator.java:102)
at org.apache.jasper.compiler.JspParseEventListener$GeneratorWrapper.generate(JspParseEventListener.java:834)
at org.apache.jasper.compiler.JspParseEventListener.generateAll(JspParseEventListener.java:241)
。。。部分省去
--------------------------------------------------------------------------
我又将这个BeanHelloWorld的class文件放在服务器的MyJsp/jsp/part01/helloworld文件夹下,将jsp源文件中的
import去掉,同时又将标记中的class直接改成BeanHelloWorld后再重新运行这个jsp文件,还是报
同样的错误。
--------------------------------------------------------------------------
我想请教一下各位老师:
1.到底是哪里的问题呢?
2.对于Tomcat提示的这种错误信息我应该怎样分析才能排除错误,一般分析服务器提示的这些错误有什么方法没有?
3.在JSP中设置的页面在文本框中输入中文,怎么经过JSP处理后就变成乱码?
|
Tomcat默认的类加载路径包括:
1.tomcat/webapp目录下(webapps/MyJsp)的web-inf目录下的lib(jar包存放的目录)和classes(class文件存放目录,有包名的要注意建立相应的文件夹);
2.tomcat/lib目录下jar文件和tomcat/classes目录下的所有class文件;
3.好像是tomcat4以后,多了一个tomcat/common目录,其下的lib目录和classes目录也可以存放相应的jar文件和类文件。
以上默认的加载目录在缺省安装后并不一定存在,特别是自己的webapp目录,可以自己建立。建议,一般属于单独一个web应用的jar文件或类文件最好就放在webapps/YourWebapp/WEB-INF/lib或classes目录下。
除以上不需要设置的类加载路径外,tomcat也有自己的Classpath,需要注意的是:Tomcat使用到的Classpath和系统属性中的Classpath并不一样。
一般情况,tomcat都把系统的Classpath屏蔽了,因此往往很多ClassNotFound的异常都是因为Tomcat并没有使用到系统的Classpath的缘故。所以,建议在安装完Tomcat后,手动修改其启动文件catalina.bat(如果有setClassPath.bat,Unix下为setClassPath.sh,也要修改),不同版本的tomcat可能有不同的批处理文件,建议都打开看看:查找"set CLASSPATH="字符串,修改为set CLASSPATH=%CLASSPATH%;......,Unix下为set CLASSPATH=$CLASSPATH:......,就把系统的Classpath也加入了。
1.tomcat/webapp目录下(webapps/MyJsp)的web-inf目录下的lib(jar包存放的目录)和classes(class文件存放目录,有包名的要注意建立相应的文件夹);
2.tomcat/lib目录下jar文件和tomcat/classes目录下的所有class文件;
3.好像是tomcat4以后,多了一个tomcat/common目录,其下的lib目录和classes目录也可以存放相应的jar文件和类文件。
以上默认的加载目录在缺省安装后并不一定存在,特别是自己的webapp目录,可以自己建立。建议,一般属于单独一个web应用的jar文件或类文件最好就放在webapps/YourWebapp/WEB-INF/lib或classes目录下。
除以上不需要设置的类加载路径外,tomcat也有自己的Classpath,需要注意的是:Tomcat使用到的Classpath和系统属性中的Classpath并不一样。
一般情况,tomcat都把系统的Classpath屏蔽了,因此往往很多ClassNotFound的异常都是因为Tomcat并没有使用到系统的Classpath的缘故。所以,建议在安装完Tomcat后,手动修改其启动文件catalina.bat(如果有setClassPath.bat,Unix下为setClassPath.sh,也要修改),不同版本的tomcat可能有不同的批处理文件,建议都打开看看:查找"set CLASSPATH="字符串,修改为set CLASSPATH=%CLASSPATH%;......,Unix下为set CLASSPATH=$CLASSPATH:......,就把系统的Classpath也加入了。
|
1、错误是类BeanHelloWorld没找到,你再仔细检查一下你的classpath。
2、错误就是看那个root cause底下的东西,你这里是ClassNotFoundException(类未找到)
3、我建议你参考FAQ先(我先不说,自己试试)
2、错误就是看那个root cause底下的东西,你这里是ClassNotFoundException(类未找到)
3、我建议你参考FAQ先(我先不说,自己试试)
|
如果你确实不太明白建议你安装jakarta-tomcat-4.0
安装后,比如我的安装目录是c:tomcat则有这样一个目录
C:Tomcatsharedclasses,你把你的所有 javaBean放在这个目录就行了,
什么也不用设置,能用jsp的页面都会自动找到这个目录的。
例如你用到
则BeanHelloWorld.class文件就放在
C:Tomcatsharedclassesaboutjsphelloworld下
安装后,比如我的安装目录是c:tomcat则有这样一个目录
C:Tomcatsharedclasses,你把你的所有 javaBean放在这个目录就行了,
什么也不用设置,能用jsp的页面都会自动找到这个目录的。
例如你用到
则BeanHelloWorld.class文件就放在
C:Tomcatsharedclassesaboutjsphelloworld下
|
你在设置自己文件夹的同时也要设置虚拟目录才行
设置方法参考FAQ
http://expert.csdn.net/Expert/FAQ/List_Room_FAQ_Index.asp?Roomid=5409
设置方法参考FAQ
http://expert.csdn.net/Expert/FAQ/List_Room_FAQ_Index.asp?Roomid=5409
|
->