JSP中getParameter和getAttribute区别

 

1,HttpServletRequest类中有setAttribute方法,但是没有setParameter方法。

 

2,getParameter方法的返回值为String,但是getAttribute方法的返回值为Object,也就是可以取任意的对象。

 

分析一下:

 

1,getParameter方法解析的是通过HTTP网络协议传递过来的参数值,而HTTP在默认的情况下是以文本的方式传递数据的,所以

getParameter方法的返回值就应该是String的。

 

2,哪为什么getAttribute方法可以返回Object类型的值呢? 此处从这两个方法运行的环境来看,getParameter方法解析HTTP,运行

的环境为客户端到服务器端,通过HTTP协议传递数据只能是String的。而getAttribute和setAttribute方法运行的环境只在服务器

端,无需经过客户端,就没有传递数据类型的限制。因为是服务器端,代码程序完全可控,所以即可设值,并是可设任意的值,也

 

可取值。

 

总结一下:

 

getParameter方法是对通过HTTP网络协议传过来的纯文本的参数值的解析,所以只能返回String,而又因为客户端的不可控,所以只

有getParameter方法而没有setParameter方法。


getAttribute方法和setAttribute方法是完全运行在服务器端的,没有要通过客户端的HTTP协议的纯文本的限制,并且代码完全可控,所以可以自己设值,且可设任意类型的值,也可以取任意类型的值。

 

 

 

你可能感兴趣的:(jsp,网络协议)