添加了import classaccesscounter后又提示以下错误: E:\myjava\myservlet>javac classone.java classone.java:6: cannot resolve symbol symbol: class classaccesscounter import classaccesscounter; ^ classone.java:7: cannot resolve symbol symbol : class classaccesscounter location: class classone public class classone extends classaccesscounter ^ classone.java:15: cannot resolve symbol symbol : method getClass () location: class classone String CName =getClass().getName(); ^ classone.java:22: cannot resolve symbol symbol : method incCount (java.lang.String) location: class classone cnt = incCount(CName); ^ 4 errorsE:\myjava\myservlet>
/一个可以被多个servlet所使用的计数器
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class classaccesscounter extends HttpServlet
{
private Hashtable counts = new Hashtable();
public void init (ServletConfig config)
throws ServletException
{
super.init(config);
try
{
FileReader fr=new FileReader("D:/tomcat/webapps/ROOT/WEB-INF/classes/" +
getClass().getName() + ".CNT");
BufferedReader br=new BufferedReader(fr);
String line=null;
String scnt="";
int cnt;
while ((line =br.readLine())!=null)
{
cnt=Integer.parseInt(line);
try
{
scnt=scnt.valueOf(cnt);
counts.put(getClass().getName(),scnt);
}
catch(Exception e)
{}
}
}
catch (Exception e)
{}
}
public int inccount(String CName)
{
String scnt="" ;
int cnt;
Object ocnt=counts.get(CName);
if (ocnt!=null)
{
scnt=ocnt.toString();
cnt=Integer.parseInt(scnt);
}
else
cnt=0;
cnt++;
scnt=scnt.valueOf(cnt);
counts.put(CName,scnt);
return cnt;
}
public void destroy()
{
try
{
FileWriter fw=new FileWriter("D:/tomcat/webapps/ROOT/WEB-INF/classes/" +
getClass().getName() + ".CNT");
BufferedWriter bw=new BufferedWriter(fw);
String cnt=counts.get(getClass().getName()).toString();
fw.write(cnt,0,cnt.length());
bw.close();
fw.close();
}
catch (IOException e)
{}
}
} 调用上面servlet的另一个servlet
//(ClassOne.java)与classaccesscounter.java共同使用<未完成>
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class classone extends classaccesscounter
{
public void deGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,IOException
{
resp.setContentType("text/html");
PrintWriter outhtml=resp.getWriter();
String CName =getClass().getName();
int cnt = 0;
String scnt="";
outhtml.println("<html><body>");
outhtml.println("<center><h2>");
outhtml.println("<The ClassOne Program<br><br>");
cnt = incCount(CName);
scnt=scnt.valueOf(cnt);
outhtml.println("ClassOne has been accessed");
outhtml.println(scnt);
outhtml.println("times!!!<br>");
outhtml.println("</center></h2>");
outhtml.println("</body></html>");
}
}
在编译这个servlet时,就出现了如下的错误:
E:\myjava\myservlet>javac classone.java
classone.java:6: cannot resolve symbol
symbol : class classaccesscounter
location: class classone
public class classone extends classaccesscounter
^
classone.java:14: cannot resolve symbol
symbol : method getClass ()
location: class classone
String CName =getClass().getName();
^
classone.java:21: cannot resolve symbol
symbol : method incCount (java.lang.String)
location: class classone
cnt = incCount(CName);
^
3 errors 此两个文件是放在同一目录下
2.应该是同样的道理。
3.incCount(CName)函数在classaccesscounter中并没有被声明,classaccesscounter没有被正确继承,所以也不认识。
就行了。
E:\myjava\myservlet>javac classone.java
classone.java:6: cannot resolve symbol
symbol: class classaccesscounter
import classaccesscounter;
^
classone.java:7: cannot resolve symbol
symbol : class classaccesscounter
location: class classone
public class classone extends classaccesscounter
^
classone.java:15: cannot resolve symbol
symbol : method getClass ()
location: class classone
String CName =getClass().getName();
^
classone.java:22: cannot resolve symbol
symbol : method incCount (java.lang.String)
location: class classone
cnt = incCount(CName);
^
4 errorsE:\myjava\myservlet>
或者将其中一个package进一个包,另外一个import 包名.servlet名就行了。