转发(forward)和重定向(redirect)的区别?
- 从地址栏显示来说
forward 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来, 然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL. - 从数据共享来说
forward:转发页面和转发到的页面可以共享 request 里面的数据. redirect:不能共享数据. - 从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块. redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等 - 从效率来说forward: 高 . redirect:低.
request.getAttribute()和 request.getParameter()有何区别?
1、request.getParameter()取得是通过容器的实现来取得通过类似 post,get 等方式传入的数
据。
2、request.setAttribute()和 getAttribute()只是在 web 容器内部流转,仅仅是请求处理阶段。
3、getAttribute 是返回对象,getParameter 返回字符串
4、getAttribute()一向是和 setAttribute()一起使用的,只有先用 setAttribute()设置之后,才能够通过 getAttribute()来获得值,它们传递的是 Object 类型的数据。而且必须在同一个 request 对象中使用才有效。,而 getParameter()是接收表单的 get 或者 post 提交过来的参数