class文件要按包路径放在<your app>/WEB-INF/classes/下
如果打包成jar,要放<your app>/WEB-INF/lib/下,不要在lib下建目录servlet和filter要在<your app>/WEB-INF/web.xml中注册jsp按路径放在<your app>/下

解决方案 »

  1.   

    楼主按照: asklxf(xuefeng)
     
    说的去做麻,很简单的;只要配置正确了就能运行的;
      

  2.   

    建立如下目录 yourWebapp\WEB-INF\classes\com\tech\htsms\site,然后把你的文件Copy到这个文件夹,然后重新启动服务。还有你的这个Java文件叫Auth.java?
      

  3.   

    com.tech.hts.site.Auth我的JavaBean的class文件都放到了相应的WEB-INF的classes下的包下比如com.tech.hts,然后都有对应的包名如这里的sitetomcat寻找包名:com.tech.hts.site的class文件是WEB-INF/classes/com/tech/hts/site/下的class文件
    你不会写成com.tech.hts/site这样子了吧
      

  4.   

    // JSP + Java Servlets 编程环境的建立与实现 //
    // Win2000 Server + Java 2(JDK1.4.0)+ Apache1.3.23 + tomcat-4.0.3 + webapp-module-1.0 篇 //
    配置方法:一、安装win2000,如果你己经在使用它了,此步可不要。二、A:下载Java2(jdk1.4.0),下载后的文件名为:j2sdk-1_4_0-win.exe。
    双击运行,按默认安装到c:\j2sdk1.4.0目录下。jre将自动安装到
    C:\Program Files\Java\j2re1.4.0下,Jre是运行Java程序必需的支持环境。B:安装好后,需要设置路径了:
    方法如下:点击“我的电脑”右键--属性--高级--环境变量,在“系统变量”中
    新建"JAVA_HOME"值为:C:\j2sdk1.4.0注:下面前面带//的行与下下面带//的行选择一个做即可,即二者只需做一次即可以了.
    //新建:CLASSPATH值为:
    //C:\j2sdk1.4.0\lib\dt.jar;C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\htmlconverter.jar;C:\Program Files\Apache Tomcat 4.0\\common\lib\servlet.jar
    //注意要连着写,用“;”隔开;
    //新建:JAVA_OPTS,值为空(什么也不写)
    //新建:JAVA_ENDORSED_DIRS,值为:C:\Program Files\Apache Tomcat 4.0\bin;C:\Program Files\Apache Tomcat 4.0\common\lib
    //注意要连着写,用“;”隔开;
    //新建:_RUNJAVA,值为:C:\j2sdk1.4.0\bin\java
    //新建:_RUNJAVAW,值为:C:\j2sdk1.4.0\bin\javaw
    //新建:_RUNJDB,值为:C:\j2sdk1.4.0\bin\jdb
    //以上这建的几个变量是以编译jsp和Servlets时所需要用的然后,在此处双击path变量,在后面加上:;C:\j2sdk1.4.0\bin,以便在其它地方可以编译java文件。C:测试JDK安装成功:
    在C:\j2sdk1.4.0下建一个myjava目录,然后把C:\j2sdk1.4.0\demo\applets\Clock下的
    clock.java和example1.html 拷到myjava目录下,然后执行:
    >javac clock.java
    >appletviewer example1.html
    就可以看到弹出一个走动的时钟了,此时表明测试applet成功。
    然后测试java application 
    把下面的程序用记事本记入一个名字test.java的文件中,注意扩展名为.java。
    public class test
    {
    public static void main(String args[])
    {
    System.out.print("hello world ,JDK setup successful!\n");
    }
    }
    把此test.java文件放入myjava目录中,然后执行:
    >javac test.java
    >java test
    就可以看到打出一行"hello world ,JDK setup successful!"文字,此时表明JDK就安装好了。三、A:安装Tomcat-4.0,下载后的文件名字为:
    jakarta-tomcat-4.0.3.exe,直接运行它并按它默认的目录安装到
    C:\Program Files\Apache Tomcat 4.0下面。B:配置TOMCAT路径:
    1:点击“我的电脑”右键--属性--高级--环境变量,在“系统变量”
    新建"CATALINA_HOME"值为:C:\Program Files\Apache Tomcat 4.0
    //2:找到C:\Program Files\Apache Tomcat 4.0\bin\setclasspath.bat文件,把其中所有的%BASEDIR%
    // 换成%CATALINA_HOME%
    // 并找到其中的set CLASSPATH一项,改为:
    // set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%CATALINA_HOME%\common\lib\servlet.jar
    // setclasspath.bat文件是tomcat提供的一个设置库文件的批处理文件,它可以测试你的运行环境的
    // classpath是否正确。对它修改后的内容应如下:
    if not "%JAVA_HOME%" == "" goto gotJavaHome
    echo The JAVA_HOME environment variable is not defined
    echo This environment variable is needed to run this program
    goto end
    :gotJavaHome
    if exist "%JAVA_HOME%\bin\java.exe" goto okJavaHome
    echo The JAVA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    :okJavaHome
    if not "%CATALINA_HOME%" == "" goto gotBasedir
    echo The CATALINA_HOME environment variable is not defined
    echo This environment variable is needed to run this program
    goto end
    :gotBasedir
    if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okBasedir
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    :okBasedir
    rem Set the default Java options for all scripts
    set JAVA_OPTS=rem Set the default -Djava.endorsed.dirs argument
    set JAVA_ENDORSED_DIRS=%CATALINA_HOME%\bin;%CATALINA_HOME%\common\librem Set standard CLASSPATH
    rem Note that there are no quotes as we do not want to introduce random
    rem quotes into the CLASSPATH
    set CLASSPATH=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%CATALINA_HOME%\common\lib\servlet.jarrem Set standard command for invoking Java.
    rem Note that NT requires a window name argument when using start.
    rem Also note the quoting as JAVA_HOME may contain spaces.
    set _RUNJAVA="%JAVA_HOME%\bin\java"
    set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
    set _RUNJDB="%JAVA_HOME%\bin\jdb"
    :end
    //若对批文件指令有一点了解的,可以很容易看明白上面的代码.
    //以后在编译jsp,或servlet 或java文件时,总要先运行以上文件才能正确编译注:上面前面带//的行与上上面带//的行选择一个做即可,即二者只需做一次即可以了.C:配置Tomcat的配置文件,在C:\Program Files\Apache Tomcat 4.0\conf\server.xml中,此处不配置即可,若想配置,在下面再配它。
    D:测试Tomcat安装成功:打开IE,在地址栏中输入:http://localhost:8080就可以看到Tomcat的页面了。
    或输入http://xxx.xxx.xx.xxx:8080其中xxx.xxx.xx.xxx为你的win2000的IP地址。
    E:如何配置Tomcat使它可以运行自己的JSP文件和Java Servlet,下面将详细说明:
    1:配置Tomcat的server.xml文件使它支持自己的JSP文件。
    用记事本打开conf下面的server.xml文件,找到其中的:
    ............
    <!-- Tomcat Root Context -->
    <!--
    <Context path="" docBase="ROOT" debug="0"/>
    --><!-- Tomcat Manager Context -->
    <Context path="/manager" docBase="manager" 
    debug="0" privileged="true"/><!-- Tomcat Examples Context -->
    <Context path="/examples" docBase="examples" debug="0" reloadable="true" crossContext="true">
    ...........
    几行。然后在上面 
    <!--
    <Context path="" docBase="ROOT" debug="0"/>
    -->后面加上以下几行:
    <Context path="/myjsp" docBase="ROOT/myjsp" debug="0" reloadable="true">
    </Context> 
    这样就在webapps目录(Tomcat的默认页面目录)下面的ROOT目录(Tomcat默认的页面根目录)下建了一个放自己JSP文件的目录myjsp,当然,在做以上几步之前,
    你必须首先在ROOT目录下建一个空的myjsp目录。若想多加几个属于自己的JSP目录,则在上面用同样的方面添加即可。
    2:测试自己的JSP文件
    在myjsp目录中建一个文件名为:HelloWorld.jsp,用记事本编辑使其内容为:
    <html>
    <body bgcolor="white">
    <%
    String Msg="Welcome to Abner's JSP world!";
    out.print("Hello World!");
    %>
    <h2><%=Msg%></h2>
    </body>
    </html>
    保存文件,起动TOMCAT服务器,然后在浏览器中输入http://xxx.xxx.xxx.xx:8080/myjsp/HelloWorld.jsp即可看到输出了。
    或输入http://xxx.xxx.xxx.xx:8080/myjsp/即可以浏览目录,然后点击文件即可。注xxx.xxx.xxx.xx是你的IP地址,也可是localhost。
    注意:文件名是大小写区别的。
    3:设置使Tomcat运行自己的Servlet
    在ROOT下面的WEB-INF目录下建一个classes目录,然后用记事本打开ROOT下面WEB-INF目录中的web.xml
    把web.xml的内容在<web-app>和</web-app>之间增加内容,使之为如下所示的web.xml内容:
    <!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>
    <servlet>
    <servlet-name>hello</servlet-name>
    <description>
    This servlet plays the "Hello World Example" role.
    just a Hello World program!
    </description>
    <servlet-class>hello</servlet-class>
    <load-on-startup>5</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <session-config>
    <session-timeout>30</session-timeout> <!-- 30 minutes -->
    </session-config>
    </web-app>
    以上的web.xml即是对servlet进行的最简单的声明,它声明了一个叫hello的servlet,用做下面我们测试用.
    web.xml中
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>的几行是声明在浏览器中以servletname.do来浏览该servlet,此处可用localhost:8080/hello.do来浏览。
    此处的*.do是任意设置的,也可以设置为*.pl等。
    也可用
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*</url-pattern>
    </servlet-mapping>来替代,此时就是用servlet名来浏览该servlet,此处即是localhost:8080/hello
    还可以用
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>来替代,此时就是用路径名和servlet名来浏览该servlet,此处即是localhost:8080/servlet/hello
      

  5.   


    4:测试自己的servlet
    在WEB-INF下面的classes目录中建一个名为hello.java的文件,输入它的内容如下:
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class hello extends HttpServlet
    {
    public void init(ServletConfig config) throws ServletException
    {
    super.init(config);
    }
    public void destroy()
    {
    super.destroy();
    }
    public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException
    {
    resp.setContentType("text/html");
    PrintWriter out=new PrintWriter(resp.getOutputStream());
    out.println("<html>");
    out.println("<head><title>helloworldExample</title></head>");
    out.println("<body>");
    out.println("Hello! This is My first Servlet program!");
    out.println("</body>");
    out.println("</html>");
    out.close();
    }
    }
    然后到DOS下,进入classes目录中,运行:>javac hello.java即可看到在classes目录下产生一个hello.class文件,若此处编译有问题,则请检查上面设置classpath和path时是否正确设置。
    然后在浏览器中输入http://xxx.xxx.xxx.xx:8080/hello.do来看到该servlet运行的结果了。
    其中xxx.xxx.xx.xxx为你的IP地址。
    至此你就配置好了自己的jsp 和 servlet运行环境了。
    下面讲如何和Apache联接起来使用。四、A:安装Apache ,去下载一个Apache安装文件,下载后的文件名为:
    apache_1.3.23-win32-x86-no_src.exe,直接运行它并按它默认的目录安装到
    C:\Program Files\Apache Group\Apache下面。
    注意:在安装此版本的Apache时,系统会自动找到你的Servername(你的计算机名),并自动设置端口
    号为80,并要求你填写administrator的联系E-mail地址,一切默认即可。B:配置Apache,用记事本打开C:\Program Files\Apache Group\Apache\conf下的http.conf文件,
    找到: #Listen 3000
    #Listen 12.34.56.78:80
    两行,把前面的#号去掉,把以上两行改为:
    Listen 80
    #Listen xxx.xxx.xx.xxx:80
    其中xxx.xxx.xx.xxx为你的IP地址。然后找到port一行,并确认它后为:80;然后找到
    ServerName一行,并确认它后面跟的是不是你的计算机名如:worker16.soft.com(注意此处名称要搞
    清,下面还要用到),其中worker16为你的计算机标识名,soft.com为你的win2k所在的域名。C:到此,你的Apache就好了,测试它:在IE中输入:http://xxx.xxx.xx.xxx看看是不是出现了Apache默认的目录 
    页面。五、用mod_webapp把Apache和Tomcat结合起来,使Apache支持JSP功能。
    A:去www.apache.org把mod_webapp for windows下载回来,下载回来的文件是:
    webapp-module-1.0-tc40-windows.zip。把它解压缩到一个目录如test中。B:把test目录中的libapr.dll拷到C:\Program Files\Apache Group\Apache下面,注意此目录是Apache安
    装的目录。此目录下同时还有lib、libexec、bin、logs等目录,即libapr.dll要放到Apache安装的根
    目录下。C:把test目录中的mod_webapp.so文件拷到C:\Program Files\Apache Group\Apache\modules下面。D:用记事本打开C:\Program Files\Apache Group\Apache\conf\http.conf文件,在文件的"最后面"加上
    以下几行:
    LoadModule webapp_module modules/mod_webapp.so
    WebAppConnection warpConnection warp localhost:8008
    WebAppDeploy examples warpConnection /examples/E:用记事本打开C:\Program Files\Apache Tomcat 4.0\conf\server.xml文件,找到文件最后面的以下几行:
    <!-- Define an Apache-Connector Service -->
    <Service name="Tomcat-Apache">
    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
    port="8008" minProcessors="5" maxProcessors="75"
    enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/>
    <!-- Replace "localhost" with what your Apache "ServerName" is set to -->
    把上面的Service name="Tomcat-Apache"一行中的“Tomcat-Apache”改为你的计算机名:
    即上面设置的worker16.soft.com。改后的上面几行应为:
    <!-- Define an Apache-Connector Service -->
    <Service name="worker16.soft.com">
    <Connector className="org.apache.catalina.connector.warp.WarpConnector"
    port="8008" minProcessors="5" maxProcessors="75"
    enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/>
    <!-- Replace "localhost" with what your Apache "ServerName" is set to -->
    存盘。到此为止,就把Tomcat和Apache联接起来了。六、1:测试Apache是否持JSP
    打开IE,在地址栏中输入:http://xxx.xxx.xx.xxx/myjsp/HelloWorld.jsp
    就可以看到页面,运行其中的例子,就可以看到JSP运行的结果了。2:测试Apache是否持servlets
    打开IE,在地址栏中输入:http://xxx.xxx.xx.xxx/hello.do
    就可以看到页面,运行其中的例子,就可以看到servlets运行的结果了。到此为止,一个编写JSP的系统环境就配置好了。是不是很容易,一切只要默认安装,然后小改一
    部分,就一切搞定了。如果对于个人学习用,可以只安装Tomcat就可以了,即不进行上面的第四和第五步。
    七:补充说明:
    1:在运行自己的Servlet时,若改动了.java源程序,需要重新编译,并且需要重新启动Tomcat和Apache。
    在需要时,还需要重新设置web.xml文件。在Tomcat和Apache配全使用时,需先启动Tomcat,再启动Apache才行。
    2:在上面设置web.xml时,还可以向servlet传参数,具体如何做,请参考Tomcat的说明文件。
    3:在上面提供的web.xml程序中采用:
    <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>*.do</url-pattern>
    配置时,在访问时用http://xxx.xxx.xxx.xx:8080/hello.do和http://xxx.xxx.xxx.xx:8080/servlet/hello
    两种方式均可看到输出,本人不知为何原因?你在使用过程中若找到原因,烦请告知我:[email protected]
    多谢!
    4:补充说明如何配置Tomcat的用户和使用基于WEB的远程管理工具
    请用记事本打开Tomcat安装目录下的conf目录下的tomcat-users.xml文件,可以看到如下内容:
    <!--
    NOTE: By default, no user is included in the "manager" role required
    to operate the "/manager" web application. If you wish to use this app,
    you must define such a user - the username and password are arbitrary.
    -->
    <tomcat-users>
    <user name="tomcat" password="tomcat" roles="tomcat" />
    <user name="role1" password="tomcat" roles="role1" />
    <user name="both" password="tomcat" roles="tomcat,role1" />
    </tomcat-users>找到行 <user name="tomcat" password="tomcat" roles="tomcat" />
    把roles的值改为manager,即:roles="manager"
    保存文件,重新启动TOMCAT,在浏览器中输入http://xxx.xxx.xxx.xx:8080/manager/command
    这里command代表的是管理程序的名字,Tomcat4.0支持install,list,roload,remove,
    sessions,start,stop等七个程序,每个程序都有自己的参数。至于如何调用这些程序,
    请查阅Tomcat的Tomcat Manager Application说明。
    例输入:http://xxx.xxx.xxx.xx:8080/manager/list
    看看有什么输出吧!
      

  6.   

    asklxf(xuefeng):我以前就是按照你说的去做的,但就是不能完成,总是提示找不到目录!
      

  7.   

    我只想知道出现如下错误怎么解决:
    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 JSPAn error occurred at line: -1 in the jsp file: nullGenerated servlet error:
        [javac] Since fork is true, ignoring compiler setting.
        [javac] Compiling 1 source file
        [javac] Since fork is true, ignoring compiler setting. at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:353)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    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:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
    at java.lang.Thread.run(Thread.java:536)--------------------------------------------------------------------------------Apache Tomcat/4.1.24