《JavaWeb编程技术》课后习题答案(4)
时间:2025-07-10
时间:2025-07-10
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
visits = visits +1;
try{
Thread.sleep(2000);
}catch(InterruptedException e){
log("Exception during sleeping.");
}
out.println("<html><body>");
out.println("欢迎您!<br>" + "该Servlet已被访问 " + visits +" 次。"); out.println("</body></html>");
}
}
修改后的Servlet如下:
package com.demo;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloCounterServlet extends HttpServlet{
private Integer visits = 0;
private String dbPath = null;
public void init(){
try{
dbPath = getServletContext().getRealPath("/WEB-INF/counter.db");
FileInputStream fis = new FileInputStream(dbPath);
DataInputStream dis = new DataInputStream(fis);
visits = dis.readInt();
dis.close();
}catch(Exception e){
log("Error loading persistent counter", e);
}
}
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException {
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
synchronized(this){
visits = visits +1;
out.println("<html><body>");
out.println("欢迎您!<br>" +"该Servlet已被访问 " + visits +" 次。"); out.println("</body></html>");
}
}
public void destroy(){
try{
FileOutputStream fos = new FileOutputStream(dbPath);
DataOutputStream dos = new DataOutputStream(fos);