读书人

servlet基本理解有关问题-热心的人过来

发布时间: 2012-02-05 12:07:15 作者: rapoo

servlet基本理解问题-----------热心的人过来帮帮忙
看一下一段最基本的代码
package packet1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet1 extends HttpServlet {
int count;
public Servlet1() {
super();
}

public void destroy() {
super.destroy(); // Just puts "destroy " string in log
// Put your code here
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType( "text/html;charset=GBK ");
PrintWriter out = response.getWriter();
out.println( " <HTML> ");
out.println( " <HEAD> <TITLE> A Servlet </TITLE> </HEAD> ");
out.println( " <BODY> ");
count++;
out.print( "自从加载后(读取初始化参数后, ");
out.print( "这个Servlet已经访问了 ");
out.println(count+ "次。 ");
out.println( " </BODY> ");
out.println( " </HTML> ");
out.flush();
out.close();
System.out.println( "该Servlet的doget方法被执行一次 ");
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}

public void init(ServletConfig config) throws ServletException {
// Put your code here
super.init(config);
String initial = config.getInitParameter( "initial ");
try{
count = Integer.parseInt(initial);
}catch(NumberFormatException e){
count=0;
}
System.out.println( "计数器Servlet已经初始化 ");
}

}

这段代码没有什么问题,我现在的问题就是在理解HttpServletRequest request, HttpServletResponse response这两个参数上,按照书上讲的,HttpServletRequest(HttpServletResponse )是一个接口,那把接口对象(暂时这样称呼)作为方法的形参也是没有问题,但是在创建servlet实例的时候这个参数究竟是哪一个类的对象的,因为按照JAVA的对接口的定义,接口所有方法必须是抽象的,那抽象方法是不可以有对象的,请教各位高手,创建servlet实例的时候,究竟是什么类实例化了HttpServletResponse /HttpServletRequest接口?


[解决办法]
自己查看tomcat源代码,其实就是容器用的wrapper来对请求和回应的包装。
[解决办法]
全给我好了....

读书人网 >Java Web开发

热点推荐