request只是规范中的一个名称而已。不是SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体是什么类是由各个提供商自己决定的。
你可以在JSP中使用out.println(request)来看看这个类的名字。
java ee自己本身只有一个实现类HttpServletRequestWrapper,而构造此类的对象的前提是传入一个HttpServletRequest类型的对象,所以又回到你的问题了。。。
事实上在java本身的代码里可以说是不包含对此接口的实现的,
基本上根据服务器的不同会有不同的HttpServletRequest实现类,如果你有兴趣的话也可以自己写一个实现类,自己写的总该知道如何得到对象了吧,这个问题也就不是问题了。
用tomcat建立一个普通的java web,out.println(request)--------------->结果为:org.apache.catalina.connector.RequestFacade@149d226
用strut2框架的话,out.println(request)------------------------------------->结果为:org.apache.struts2.dispatcher.StrutsRequestWrapper@1e17cff
HttpServletRequest 的实现是根据不同服务器的,tomcat有tomcat的实现,webLogic有webLogic的实现
The servlet container creates an HttpServletRequest object and passes it as an argument to the servlet's service methods (doGet, doPost, etc).