Parameter与Attribute的区别
request.getParameter取得Web客户端到web服务端的http请求数据(get/post),只能是string类型的,而且HttpServletRequest没有对应的setParameter()方法。
如利用href(url)和form请求服务器时,表单数据通过parameter传递到服务器,且只能为字符串。
当两个web组件为链接关系时,被链接组件通过getParameter来获取请求参数。
request.getAttribute():当两个web组件为转发关系时,通过getAttribute()和
setAttribute()来共享request范围内的数据。attrubute中的数据是Object类型的,通过attribute传递的数据只
会存在于web容器内部,仅仅是请求处理阶段。
request.setAttribute是服务器把这个对象放在该页面对应的一块内存中,当发生服务器重定向时,会把这块内存拷到另一页面对应的内存中,这样getAttribute就可以取到值,session也一样,只是对象在内存的生命周期不一样。
小结:request.getAttribute()方法返回request范围内存在的对象,request.getParameter()获取http请求提交过来的数据。
一般的Web应用,基本上是post方式的传递,用getParameter取值。对于自己控制的,可以通过request.setAttribute和getAttribute实现值的传递。
对于应用struts的,getAttribute用的多一点,其他的基本用getParameter,一个可以传对象,一个只能传字符串。
servletContext与ServletConfig区别
servletConfig servlet配置对象,在调用init()方法时被实例化,作用是获取servlet的配置参数
ServletContext是一个servlet上下文,是全局的,作用范围是整个应用服务期
servletContext有的,ServletConfig就有。ServletConfig有的,servletContext不一定有
servletConfig主要还用于从web.xml里面获得配置参数,例如过滤器的使用