以下两段代码中request表示HttpServletRequest对象,response表示HttpServletResponse对象。正确的说法是:
(1)RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
rd.forward(request,response);
(2) response.sendRedirect("hello.jsp"); a) (1)和(2)代码都实现把请求转发给目标组件hello.jsp的功能,且都能共享request范
围内的数据
b) (1)段代码实现的转发组件hello.jsp功能是直接在服务器进行的
c) (2)段代码实现的转发组件hello.jsp功能是必须要经过客户端后再转发的。
d) 以上说法都错。
(1)RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
rd.forward(request,response);
(2) response.sendRedirect("hello.jsp"); a) (1)和(2)代码都实现把请求转发给目标组件hello.jsp的功能,且都能共享request范
围内的数据
b) (1)段代码实现的转发组件hello.jsp功能是直接在服务器进行的
c) (2)段代码实现的转发组件hello.jsp功能是必须要经过客户端后再转发的。
d) 以上说法都错。
解决方案 »
- jsp中response.getWriter().println输出div中的属性怎么拼接?
- 在实际开发中,用hibernate的级联还是数据库自己的级联
- 数据源与JNDI里的英文意思
- jdk1.6+windows2003+resin3.0.26下无法显示验证码
- 怎么查看别人和自己的结贴率等信息
- 求一个jsp上传附件到数据库的例子
- XXXXX.jsp?para=value 传问题
- 请教:如何将html页面(有表格)导成word文档?
- 程序员在离职时要做的几件事(同下围棋一样次序很重要)
- 请问,Java Web后台程序如何获得当前Web User Session的Windows用户名?
- eclipse 创建一个JSP界面上传图片不显示...
- 从一个普通的java类直接跳转到jsp。
二个方法都是用于请求转发的方法,转发给另外的资源为客户端服务。但二者有本质的区别
sendReadirect()方法原理:
1,客户端发送请求,Servlet1做出处理。
2,Servlet1调用sendReadirect()方法,将客户端的请求 重新定位 到Servlet2。
3,客户端浏览器访问Servlet2.
4,Servlet2对客户端浏览器做出响应。
forward()方法原理:
1,客户端发送请求,Servlet1做出处理。
2,Servlet1调用sendReadirect()方法,将请求转发给Servlet2来处理请求,为客户端服务。
3,Servlet2对客户端浏览器做出响应。
区别:
1,定位与转发
sendReadirect()方法是重新定位到另外一个资源来处理请求,URL会重新定位,让客户端重新访问另外一个资源。 forward()方法是转发到另外一个资源来处理请求。URL不会变化。隐藏了处理对象的变化。
2,处理请求的资源的范围
sendReadirect()方法可以跨WEB应用程序和服务器重新定位资源来处理请求。 forward()方法只能在应用程序内部转发。