例如filter中的参数就是ServletRequest,而struts的action中execute方法参数是HttpServletRequest
HttpServletRequest继承ServletRequest,Servlet里有doGet、doPost方法 ,没有doPut方法,是和form的get post对应的.
servletRequest是接口,httpServletRequest是实现,但是有些方法是httpServletRequest独有的,比如getSession().。
HttpServletRequest接口是继承自ServletRequest接口的。增加了和HTTP相关的一些方法。
而所谓的request(在JSP中使用的)其实只是规范中的一个名称而已。它当然是一个对象,但并不是SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体是什么类是由各个提供商自己决定的。
你可以在JSP中使用out.println(request)来看看这个类的名字。
=================================
HttpServletRequest 与 ServletRequest问题
今天被Intellij害死了,重写execute方法居然没有http的,请求死活进不了action,加上http后才请求成功。
修改前Java代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
ServletRequest servletRequest, ServletResponse servletResponse)
修改后Java代码
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
HttpServletRequest继承ServletRequest,Servlet里有doGet、doPost方法 ,没有doPut方法,是和form的get post对应的.
servletRequest是接口,httpServletRequest是实现,但是有些方法是httpServletRequest独有的,比如getSession().。
HttpServletRequest接口是继承自ServletRequest接口的。增加了和HTTP相关的一些方法。
而所谓的request(在JSP中使用的)其实只是规范中的一个名称而已。它当然是一个对象,但并不是SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体是什么类是由各个提供商自己决定的。
你可以在JSP中使用out.println(request)来看看这个类的名字。
=================================
HttpServletRequest 与 ServletRequest问题
今天被Intellij害死了,重写execute方法居然没有http的,请求死活进不了action,加上http后才请求成功。
修改前Java代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
ServletRequest servletRequest, ServletResponse servletResponse)
修改后Java代码
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)