假设虚拟路径是d:/webAppjap文件放在d:/webApp 下 且可以建子目录
class 放在d:/webApp/web-inf/classes  下
jar 放在d:/webApp/web-inf/lib 下

解决方案 »

  1.   

    还是不行
     A Servlet Exception Has Occurred
    org.apache.jasper.JasperException: Unable to compile class for JSP..\work\localhost\_\_0002fsensory_0002fcount_0002ejspcount_jsp_0.java:3: Class counter not found in import.
    import counter;
           ^
    1 errorcount.jsp
    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page import = "counter" %>
    <HTML>
    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <TITLE>计数器演示程序</TITLE>
    </HEAD>
    <BODY>
    <!--创建并调用bean(counter)-->
    <jsp:useBean id="counter" class="counter" scope="request">
    </jsp:useBean>
    <%
    //调用counter对象的ReadFile方法来读取文件lyfcount.txt中的计数
    String cont=counter.ReadFile("/lyfcount.txt");
    //调用counter对象的ReadFile方法来将计数器加一后写入到文件lyfcount.txt中
    counter.WriteFile("/lyfcount.txt",cont);%>
    您是第<font color="red"><%=cont%></font>位访问者
    </BODY>
    counter.java
    import java.io.*;
    public class counter extends Object {
    private String currentRecord = null;//保存文本的变量
    private BufferedReader file; //BufferedReader对象,用于读取文件数据
    private String path;//文件完整路径名
    public counter() {
    }
    //ReadFile方法用来读取文件filePath中的数据,并返回这个数据
    public String ReadFile(String filePath) throws FileNotFoundException
    {
    path = filePath;
    //创建新的BufferedReader对象
    file = new BufferedReader(new FileReader(path));
    String returnStr =null;
    try
    {
    //读取一行数据并保存到currentRecord变量中
    currentRecord = file.readLine();
    }
    catch (IOException e)
    {//错误处理
    System.out.println("读取数据错误.");
    }
    if (currentRecord == null)
    //如果文件为空
    returnStr = "没有任何记录";
    else
    {//文件不为空
    returnStr =currentRecord;
    }
    //返回读取文件的数据
    return returnStr;
    }
    //ReadFile方法用来将数据counter+1后写入到文本文件filePath中
    //以实现计数增长的功能
    public void WriteFile(String filePath,String counter) throws FileNotFoundException
    {
    path = filePath;
    //将counter转换为int类型并加一
    int Writestr = Integer.parseInt(counter)+1;
    try {
    //创建PrintWriter对象,用于写入数据到文件中
    PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
    //用文本格式打印整数Writestr
    pw.println(Writestr);
    //清除PrintWriter对象
    pw.close();
    } catch(IOException e) {
    //错误处理
    System.out.println("写入文件错误"+e.getMessage());
    }
    }
    }
    http://localhost:8080/sensory/count.jsp
    count.jsp 放在root/sensory/count.jsp
    counter.java root/sensory/下有
                 E:\Jsp\Tomcat\webapps\ROOT\WEB-INF\classes也有??
    问为什么找不到??
    有counter.class文件 编译正确
    ?
    3X
      

  2.   

    bean最好打包假设:
    WEB-INF/classes/bean/counter.javacounter.java
    package bean;
    .....cout.jsp
    <jsp:useBean id="counter" class="bean.counter" scope="request" />
      

  3.   

    tomcat 下root 下没有web-inf目录a !
      

  4.   

    其实最主要的是部署(修改CONF目录下的SERVER。XML文件):
        在TOMCAT中,默认的发布目录只有WEPAPPS下的ROOT、EXAMPLE以及MANAGER目录,也就是说通常情况下放置到上面三个目录中的JSP文件以及相应的CLASS文件、包(放置在相应WEB-INF中的CLASSES目录中)才能被系统读取、解释。
        JSP、CLASS文件(包)的目录结构:
        自己目录
            ----JSP文件
            ----WEB-INF
                  -----CLASSES
                          ----CLASS文件或包
        另外,自己新建立的目录需要部署到CONF下的SERVER.XML文件中才能被TOMCAT读取,修改
    SERVER.XML文件,在<Context................../>标识位置后加上类似下面的一行:
    <Context path="/test" docBase="test" debug="0" reloadable="true" crossContext="true"/>(test为自己在WEBAPPS下新建立的目录)
    保存文件后再运行自己的JSP文件应该就能找到了!