问题描述
- HTTP Status 500 - Unable to load class for JSP
-
<%@ page contentType="text/html pageEncoding="GBK"%><%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
count.jsp
<%! //定义成全局变量
BigInteger count = null;
%>
<%!//一下方法为了省事,直接在方法中处理了异常,但是在实际开发中应该让调用处来处理异常
public BigInteger load(File file){ //读取计数文件
BigInteger count = null;try{ //因为有IO操作,所以要用到try ...catch
if(file.exists()){ //如果文件存在,则读取
Scanner scan = null; //定义Scanner对象scan = new Scanner(new FileInputStream(file)); //读取文件
if(scan.hasNext()){ //如果存在内容
count = new BigInteger(scan.next()); //将内容放到BigInteger类当中
}
scan.close(); //关闭输出流}else{ //文件不存在就创建新的 count = new BigInteger("0");//第一次访问 save(file,count); //调用save方法,保存新的文件 } }catch(Exception e){ e.printStackTrace(); } return count; //返回读取后的数据 }
%>
<%!
public void save(File file,BigInteger count){ //保存计数文件
try{
PrintStream ps = null; //定义输出流对象
ps = new PrintStream(new FileOutputStream(file));//打印流对象
ps.println(count); //保存数据
ps.close(); //关闭输出流}catch(Exception e){
e.printStackTrace();
}
}%>
<%
String filename = this.getServletContext().getRealPath("/")+"count.txt"; //拼凑要操作的文件路径
File file = new File(filename); //实例化File对象
if(session.isNew()){ //如果是新的session用户就可以进行count的增加操作
synchronized(this){ //必须进行同步操作
count = load(file);
count = count.add(new BigInteger("1")); //自增操作
save(file,count); //保存修改后的数据}
}%>
你是第<%=count==null?0:count%>位访客!
<%--输出类容--%>