我看的参考书是Budi Kurniawan的《Servlet和JSP学习指南》,其中关于httpservlet的一段没看明白:
与往常一样,Servlet容器调用
javax.servlet.Servlet中原始的service方法,HttpServlet中的service方法要如下这么写:
public void service(ServletRequest req, ServletResponse resp)
throws ServletException, IOException {
HttpServletRequest request = req;
HttpServletResponse response = resp;
try {
request = (HttpServletRequest) req;
response = (HttpServletResponse) resp;
} catch (ClassCastException e) {
throw new ServletException("non-HTTP request or resonse");
}
service(requset, response);
}
原始的
service方法将请求和相应对象进行向下转换,分别从Servlet容器转换成HttpServletRequest和HttpServletResponse,并调用新的service方法。向下转型总是成功,因为在调用一个Servlet的service方法时,Servlet容器总会预计使用HTTP,所以传递一个HttpServletRequest和HttpServletResponse。
最后一句没有太明白。原文的意思是不是就算我没有使用HttpServlet,Servlet容器传递给service方法的request和response对象也是HttpServletRequest和HttpServletResponse的实例,即使这个service方法的参数是ServletRequest和ServletResponse?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
闭关修行中......