jsp中redirect和forward的区别

合集下载

JSP_期末考试_复习题2

JSP_期末考试_复习题2

一、填空(共10分,每空1分)1. JSP是_____ Sun Microsystems ___ 公司倡导,由多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。

2. 在Tomcat服务器中部署Web应用程序时,可以直接将Web程序归档文件W AR存放到tomcat服务的_______________ webapps ________目录中。

3. 在Servlet中用来接收客户表单数据的两个常用方法为____ get _________、_____post _________。

4. 在一个应用程序中不同的页面共享数据时,最好的JSP内置对象为__________application /session _______。

5. 假设有一个JavaScript函数为show() ,如果要求在页面加载时就执行,最好使用<body>标记的_____event/onload _________什么事件。

6. 在删除数据时要求用户确认是否真的删除数据,如果使用JavaScript实现,应用使用______onclick/confirm __________对话框。

7. JDBC中_________DriverManager/Connection _接口用于连接数据库。

8. Resulset接口的_________next()_方法可以使结果集指针指向下行数据。

9. 如果要获取请求客户端的IP地址,应使用______象。

二、单选选择(60分,每题1.5分)1.在JSP中如果要导入java.io.* 包,应该使用_________A______指令。

A. pageB. taglibC. includeD. forward2.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的__D______属性。

A. ExceptionB. isErrorPageC. errorD. errorPage3.在MVC模式中,核心内容为____C____。

j2ee期末练习题

j2ee期末练习题

J2ee 期末综合练习题一、选择题1.page 指令的(B)属性用于引用需要的包或类A. extendsB.importC. isErrorPageD. language2.下列选项中,(B )可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)A.request.getParameter(name)B.request.getParameter("name")C.request.getParameterValues(name)D.request.getParameterValues("name")3.使用 response 对象进行重定向时,使用的是(C )方法。

A.getAttributeB.setContentTypeC.sendRedirectD.setAttribute4.在 Java EE 中,在 web.xml 中,有如下代码:<session-config><session-timeout>30</session-timeout></session-config>以下描述,正确的是(B )。

A.定义了默认的会话时时长,时长为 30 分钟B.可以使用HttpSession类的 getMaxInactiveInterval()方法把该值取出来C.定义了默认的会话超时时长,时长为 30 小时D.可以使用 Session类的 getMaxInactiveInterval()方法把该值取出来5.在 Http协议中用于发送大量数据的方法的是( A.A. postB. getC. putD. options6.HttpServletRequest 接口的(C .方法用于创建会话。

A. setSession()B. getContext()C. getSession()D. putSession() 7.( B)动作用于将请求发送给其他页面A. nextB. forwardC. includeD. param8.page指令的( B)属性用于引用需要的包或类A. extendsB. importC. isErrorPageD. language9.如何获取一个 Cookie[](A )。

jsp四种会话跟踪技术

jsp四种会话跟踪技术

1.共享数据在web中的范围(四种会话跟踪技术)(1).page:仅在当前页可用(保存在当前的PageContext中)(2).request:仅用于当前客户端的请求(保存在ServletRequest对象中),它在同一个请求范围内有效.(3).session:仅在当前的HttpSession的生命周期内,当前浏览器窗口的整个生存期都有效.关闭浏览器时,这个对象会跟着消失,在整个对话期间都有效.(4).application:在整个应用范围内都有效,只有当服务器重启时,这个对象才会消失.2.Servlet的生命周期。

(1)初始化阶段,Servlet容器调用init()初始化Servlet对象。

(2)执行阶段, Servlet容器创建ServletRequest对象和ServletResponse对象,Servlet调用service方法来处理客户端的请求了,调用doGet(),doPost()方法接收客户端的请求,并且发回相应的响应。

(3)终止阶段,当Web应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet的新实例.Servlet调用destroy方法释放占用的资源3. 至少要能说出7个隐含对象以及他们的区别(1) request:代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送到服务器端的数据.它是javax.servlet.ServletRequest的一个实例.(2) response:用于用户端发送数据,它封装由JSP引擎产生的响应,并将响应返回给客户端.它是javax.servlet.ServletResponse类的一个实例.(3) out :用来输出各种类型的数据流,为用户打开的输出流,它是javax.servlet.jsp.JspWriter类的一个实例.(4) session:为发送请求的每一位客户建立一个会话,并且只对HTTP的用户请求有效.作用域是一次会话.它是javax.servlet.http.HttpSession类的一个实例.(5) exception:运行时的异常,即被调用的错误页面中的结果(6) page:JSP网页本身(7) application:它是javax.servlet.ServletContext类的一个实例,作用域是对所有的访问,当服务器启动时,applcation对象就被创建,生存期将一直持续到服务器关闭.(8) config:表示servlet的配置.(9) pageContext:管理网页的属性4. JSP的常用指令<%@ page language= “java” import = “” errorPage=”” isErrorPage= “” method = “”contxtPage=”text/html;charset=UTF-8” %><%@ include file = “”%><%@ taglib uri = “”%>5.forward 和redirect的区别<jsp:include page="included.jsp" flush="true"><jsp:forward page= "nextpage.jsp"/>前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。

JSP题库2

JSP题库2

1、下面哪一个不是JSP本身已加载的基本类()A、ng.*B、java.io.*C、javax.servlet.*D、javax.servlet.jsp.*2、对于JSP声明<%!变量声明%>的说法错误的是()A、一次可声明多个变量和方法,只要以“;”结尾就行B、一个声明仅在一个页面中有效C、声明的变量将作为局部变量D、在预定义中声明的变量将在JSP页面初始化时初始化3、从“员工”表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确()A、Select * from员工where 姓名= ‟_玛丽_’B、Select * from员工where 姓名= ‟%玛丽_’C、Select * from员工where 姓名like ‟_玛丽%’D、Select * from员工where 姓名like ‟%玛丽%’4、下述选项中不属于JDBC基本功能的是()A、与数据库建立连接B、提交SQL语句C、处理查询结果D、数据库维护管理5、在JSP中使用<jsp:getProperty>标记时,不会出现的属性是()A、nameB、propertyC、valueD、以上皆不会出现6、page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是()A、<%@ page %>作用于整个JSP页面。

B、可以在一个页面中使用多个<%@ page %>指令。

C、为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。

D、<%@ page % >指令中的属性只能出现一次。

7、在JSP中调用JavaBean时不会用到的标记是()A、<javabean>B、<jsp:useBean>C、<jsp:setProperty>D、<jsp:getProperty>8、关于JavaBean正确的说法是()A、Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写B、在JSP文件中引用Bean,其实就是用<jsp:useBean>语句C、被引用的Bean文件的文件名后缀为.javaD、Bean文件放在任何目录下都可以被引用9、Servlet程序的入口点是()A、init()B、main()C、service()D、doGet()10、不能在不同用户之间共享数据的方法是()A、通过cookieB、利用文件系统C、利用数据库D、通过ServletContext对象11、在JSP中,()指令用于将文件嵌入JSP页面。

SpringMVC使用ModelAndView进行重定向

SpringMVC使用ModelAndView进行重定向

SpringMVC使⽤ModelAndView进⾏重定向1、Servlet重定向forward与redirect:使⽤servlet重定向有两种⽅式,⼀种是forward,另⼀种就是redirect。

forward是服务器内部重定向,客户端并不知道服务器把你当前请求重定向到哪⾥去了,地址栏的url与你之前访问的url保持不变。

redirect则是客户端重定向,是服务器将你当前请求返回,然后给个状态标⽰给你,告诉你应该去重新请求另外⼀个url,具体表现就是地址栏的url变成了新的url。

2、ModelAndView重定向:使⽤Spring MVC通常是使⽤ModelAndView⽤来返回视图。

ModelAndView其实也是⽀持Servlet中的两种重定向⽅式。

⽐如404页⾯我们⼀般采⽤redirect重定向⽅式,像下⾯的代码就是redirect重定向:public ModelAndView getPage404MV() {ModelAndView mv = new ModelAndView("redirect:/404.htm");return mv;}要使⽤forward重定向就只需把redirect换成forward即可,特别的ModelAndView默认使⽤forward重定向⽅式。

1. 需求背景需求:spring MVC框架controller间跳转,需重定向。

有⼏种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页⾯也能显⽰。

本来以为挺简单的⼀件事情,并且个⼈认为⽐较常⽤的⼀种⽅式,⼀百度全都有了,这些根本不是问题,但是⼀百度居然出乎我的意料,⼀堆都不是我想要的结果。

⽆奈啊,⾃⼰写⼀篇⽐较全都供以后⼤家⼀百度吧,哈哈哈。

是这些写的不是很全都⼈们给了我写这篇博客的动⼒。

2. 解决办法需求有了肯定是解决办法了,⼀⼀解决,说明下spring的跳转⽅式很多很多,我这⾥只是说⼀些⾃我认为好⽤的,常⽤的,spring分装的⼀些类和⽅法。

jsp 期末试题答案

jsp 期末试题答案

1.下面哪一个不是动态网页技术()a) ASP b) JSP c) PHP d) HTML2. 可以实现不同网页之间的数据共享,而且还可以实现跨机共享数据的JSP对象是()a)Response对象 b)Session对象c)Application对象 d)Request对象9.创建JSP应用程序时,配置文件应该在程序下的____C______目录中。

A. adminB. servletC. WEB-INFD. WebRoot15.如果编写一个计数器程序,用来记载当前网站的访问量,最好采用JSP中的_____D _对象。

A. pageB. sessionC. requestD. application16.下列可以正确获取当前Web程序物理路径的方法为_____A__________。

C. (“/”)D. (“/”)10.下列不属于URL的组件部分为____________D___________。

A. 协议B. IP地址或域名C.目录或文件D. 服务器名称17.Http的中文含义为_____C_______________________。

A. 统一资源定位器B. 简单邮件传输协议C. 超文本传输协议D. 网络套接字19.如果想在tomcat服务器启动时将jar包加载到内存,且该jar包可以被tomcat服务器上所有的应用使用,应该将该jar包复制到tomcat的________C_____________目录。

A. commonB. serverC.lib D. server\lib20.Tomcat服务器的默认端口为________C______________。

A. 8888B. 8001C. 8080D. 8021.在html标记中,________C____________标记用于设置当前页面的标题。

A. headB. nameC. titleD. html22.如果在网页上显示一幅图片,下面哪句代码是正确的_____A________________。

servelet相关试题

servelet相关试题
7、get和post方法在使用上都是一样的,没什么区别(错)
8、Tomcat服务器是j2ee规范的一个具体实现(对)
9、每次请求servlet,都会调用init()方法(错)
10、服务器可以通过cookie向客户端写入任意类型的信息(错)
11、Cookie是保存在服务器端和客户端的(错)
12、Session是永久保存在服务器端的(错)
13、Web服务器的默认端口是80(对)
14、Tomcat服务器的默认端口是8800(错)
15、Web.xml文件必须存放到WEB-INF/classes目录下(对)
16、Servlet是服务器端的应用小程序,不是web服务器端的应用小程序。(对)
17、Servlet的源文件和class文件都必须放到web-inf/classes目录下(错)
1、判断题(29)
1、Web服务器就是j2ee服务器()
2、每个servlet都单独拥有一个servletContext对象()
3、http协议是有状态的协议,可以保存客户的请求信息。()
4、Smtp协议是文件传输协议()
5、http是基于请求/响应模式的协议()
6、http协议是无状态、无连接的协议()
6、简述Servlet的生命周期。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 该servlet的生命周期结束。
13、Web服务器的默认端口是80()
14、Tomcat服务器的默认端口是8800()

forward和redirect的区别

forward和redirect的区别
response.sendRedirect(location);
RequestDispatcher rd = new RequestDispatcher();
rd.forward(request, response);
跳转方式
http://localhost:8080/Test应用
运用forward方法只能重定向到同一个Web应用程序中的一个资源。而sendRedirect方法可以让你重定向到任何URL。
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
RequestDispatcher rd = getServletContext().getRequestDispatcher( “/ooo “);
rd.forward(request, response);提交至http://localhost:8080/Test/ooo
重定向后浏览器地址栏URL不变.
只有在客户端没有输出时才可以调用forward方法。如果当前页面的缓冲区(buffer)不是空的,那么你在调用forward方法前必须先清空缓冲区。
“/ “代表相对与web应用路径
RequestDispatcher rd = request.getRequestDispatcher( “/ooo “);
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.

03-JSP隐式对象-课后作业

03-JSP隐式对象-课后作业

1.1、下面不属于JSP内置对象的是:A out对象B respone对象C application对象D page对象1.2、以下哪个对象提供了访问和放置页面中共享数据的方式?A pageContextB responseC requestD session1.3、调用getCreationTime()可以获取session对象创建的时间,该时间的单位是:A 秒B 分秒C 毫秒D 微秒1.4、当response的状态行代码为哪个时,表示用户请求的资源不可用?A 101B 202C 303D 4041.5、可以利用JSP动态改变客户端的响应,使用的语法是:A response.setHeader()B response.outHeader()C response.writeHeader()D response.handlerHeader()2、简述request对象和response对象的作用及常用方法的功能。

3、简述请求转发和请求重定向的定义及它们区别。

一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理(服务器内部的调用),称之为请求转发一个web资源收到客户端请求后,通知浏览器去访问另外一个web资源(浏览器进行2次请求),称之为请求重定向请求重定向和请求转发的区别1.forward是服务器内部转发,而redirect是通过客户端进行转发2.如果用forward进行转发的话,客户端的url地址不会改变,但是如果用redirect的话,则url地址会改变3.如果用forward进行转发,转发页面和被转发页面处于一个request请求内,而redirect不是。

4、session对象与application对象有何区别?请编写JSP程序实现如图所示的简易计算器。

要求:输入“第一个参数”,选择运算类型(+,-,*,/),输入“第二个参数”后,按“计算”按钮,结果将显示在“结果”文本框中。

jsp常见问题及答案

jsp常见问题及答案
A.HttpServletRequest类的getSession方法
B.HttpServletResponse类的newSession方法
C.HtttpSession类的newInstance方法
D.HttpSession类的getSession方法
5、以下可用于检索session属性userid的值的是( )。
c) <%@ page language=“Java”;import=”java.rmi.*;java.uitl.* ”%”>
d) <%@ page language=“Java” import=”java.rmi.* ,java.uitl.* ”%>
10.在JSP中,<%=”1+4” %>将输出(a)。
out 用来传送回应的输出
2.jsp有哪些动作?作用分别是什么?
答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
A.session. getAttribute ("userid");
B.session. setAttribute ("userid");
C.request. getParameter ("userid");
D.request. getAttribute ("userid");
6、Servlet可以在三个不同的作用域存储数据,它们是( )。

JavaWeb程序设计期末考试题

JavaWeb程序设计期末考试题

JavaWeb程序设计期末考试试卷分值:100分一、选择题(本大题共15题,每题2分,共30分)1.JSP页面以()为扩展名进行保存。

A、.jpsB、.jspC、.javaD、.JSP2.在JSP中如果要导入java.io.*包,应该使用 ( )指令。

A、 pageB、 taglibC、 includeD、 forward3.配置 JSP运行环境,若 WEB 应用服务器选用TOMCAT,以下说法正确的是()A 、先安装 TOMCAT ,再安装 JDKB、先安装 JDK ,再安装 TOMCATC、不需安装 JDK,安装 TOMCAT就可以了D、JDK 和 TOMCAT 只要都安装就可以了,安装顺序没关系4.JSP中的隐式注释为 ( )。

A、 // 注释内容B、 <! —注释内容 -->C、 <%-- 注释内容 --%>D、 /* 注释内容 */ 5.使用 response对象进行重定向时使用的方法为()。

A、getAttribute()B、 sendRedirect()C、 setContentType()D、 setAttribute()6.在 JSP 中,()动作用于将请求转发给其他JSP页面。

A、forwardB、includeC、useBeanD、setProperty7.Servlet 程序的入口点是()A、init ()B、main()C、service()D、doGet()8.每次传递请求或响应时调用Filter 的()方法。

A、init()B、doFilter()C、destroy()D、getInitParameter()9.在JSP中调用JavaBean时不会用到的标记是()A、<JavaBean>B、<jsp:usebean>C、<jsp:setproperty>D、<jsp:getproperty>10.Cookie.setMaxAge(60*60)的作用是( )。

jsp中的include和forward的用法,区别

jsp中的include和forward的用法,区别

jsp中的include和forward的⽤法,区别[转]include指令:< %>;此指令是“先包含,在运⾏”,即将⽬标⽂件全部包含进来,形成⼀个jsp⽂件,然后⼀起运⾏,转化成servlet;此种包含为静态包含;include标签:<jsp:include page="⽬标⽂件"/>、<jsp:include page="⽬标⽂件"><jsp:param name="参数名" value="参数值"/>............</jsp:include>此标签的执⾏过程是:当执⾏到include标签的时候,页⾯转向⽬标⽂件,然后执⾏⽬标⽂件,将执⾏结果包含进来。

forward标签:<jsp:forward page="⽬标⽂件"/><jsp:forward page="⽬标⽂件"><jsp:param name="参数名" value="参数值"/>............</jsp:forward >当执⾏到此标签的时候,会转向执⾏到⽬标⽂件,这个标签之后的⽂件不再执⾏。

include指令和include标签的区别:include指令将⽬标⽂件包含进来,⼀起执⾏;⽣成⼀个servlet;include标签是将⽬标⽂件执⾏后,将结果包含进来,然后在执⾏,每个⽬标⽂件都⽣成⼀个servlet。

include标签和forward标签的区别:对于标签前的内容,include执⾏且显⽰,forward执⾏但不显⽰;对于标签后的内容,include执⾏且显⽰,forward不执⾏。

forward方法

forward方法

forward方法Forward方法是一种常用的Web开发技术,它可以将请求转发到另一个资源,比如Servlet、JSP或HTML页面。

本文将详细介绍如何使用Forward方法。

一、什么是Forward方法Forward方法是一种服务器端跳转技术,它可以将请求转发到另一个资源,而不是直接返回响应给客户端。

在Forward过程中,请求对象和响应对象都会被传递到下一个资源中。

二、Forward方法的优点1. 数据共享:在Forward过程中,请求和响应对象都会被传递到下一个资源中,因此可以方便地在不同的资源之间共享数据。

2. 跳转效果好:使用Forward方法进行跳转时,URL地址不会改变,并且用户无法感知到跳转过程。

3. 减少网络流量:由于Forward过程不需要向客户端发送任何数据,因此可以减少网络流量。

三、如何使用Forward方法1. 在Servlet中使用Forward方法在Servlet中使用Forward方法需要借助于RequestDispatcher接口。

以下是一个示例代码:```javaprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {RequestDispatcher dispatcher =request.getRequestDispatcher("/targetServlet");dispatcher.forward(request, response);}```在上述代码中,“/targetServlet”表示要转发的目标Servlet的URL 地址。

forward()方法将请求和响应对象传递给目标Servlet,并且控制权交给目标Servlet。

2. 在JSP中使用Forward方法在JSP中使用Forward方法需要借助于<jsp:forward>标签。

js redirect 参数

js redirect 参数

JS Redirect参数在Web开发中,经常会遇到需要进行页面重定向的情况。

而JavaScript中的重定向参数就显得尤为重要。

本文将从浅入深地探讨JS Redirect参数,帮助读者更好地理解和掌握这一关键知识。

1. 了解JS Redirect参数JS Redirect参数是指在JavaScript中用于执行页面重定向的参数。

它可以在用户访问网页时,将其自动重定向到另一个URL。

在Web开发中,通常会使用JS Redirect参数来实现页面跳转,或者在特定条件下将用户引导到其他页面。

2. 使用JS Redirect参数要使用JS Redirect参数,我们可以通过编写简单的JavaScript代码来实现。

可以使用window.location.href来指定重定向的URL。

另外,还可以考虑使用setTimeout来实现延迟重定向,或者结合条件判断来实现动态跳转等功能。

3. 深入理解JS Redirect参数JS Redirect参数的深入理解需要考虑一些相关的知识点,比如页面生命周期、页面加载事件、浏览器兼容性等。

还需要了解HTTP协议中关于重定向的相关内容,以及SEO优化中对重定向的影响等方面。

4. 实际应用场景在实际开发中,JS Redirect参数可以应用于很多场景。

比如在用户登录后跳转到个人中心页面,或者在用户未登录时跳转到登录页面;在进行全球信息湾维护时跳转到维护页面;在实现页面间的交互时进行跳转等等。

了解JS Redirect参数的灵活应用,能够更好地满足不同业务需求。

5. 个人观点与理解对于JS Redirect参数,我认为掌握其基本用法是非常必要的。

深入理解其原理和相关知识,可以为我们在实际开发中更加灵活地运用它提供更多可能。

另外,在使用JS Redirect参数时,需要考虑其对用户体验和SEO的影响,合理使用避免滥用是非常重要的。

总结通过本文的逐步引导,相信读者对JS Redirect参数有了更加全面、深入的了解。

forward重定向是在容器内部...

forward重定向是在容器内部...

您还未登录!|登录|注册|帮助∙首页∙业界∙移动∙云计算∙研发∙论坛∙博客∙下载∙更多∙目录视图∙摘要视图专访赵霏:应把握机会次都会被其他页面引用。

JSP在这个方面确实不如PHP,这也是MVC 架构的一个弊端。

我采用的框架是Springmvc+Spring+Hibernate+SpringJDBCTemplate。

网上资料收集。

一、绝对路径与相对路径绝对路径:如果咱们使用的URL网址是以“/”开头的,那么这个网址就叫做绝对路径。

相对路径:如果咱们使用的URL网址不是“/”开头的,那么这个网址就叫做相对路径。

1. 相对路径在相对路径上,两者的表现是相同的。

看看lingo-sample/03-03/这个例子,如果我们去请求relative/forward.jsp或redirect.jsp,然后从这里再跳转向它下面的result/result.jsp会怎样呢?1.1 forward中使用相对路径forward的例子:<%request.getRequestDispatcher("result/result.jsp").forward(request, response);%>这里的相对路径就是result/result.jsp。

因为刚刚请求的test.jsp是在/03-03/relative/下,所以我们的当前路径就是/03-03/relative/,执行forward的时候会寻找当前路径下的result/result.jsp,找到之后便转发请求。

1.2 redirect中使用相对路径redirect的例子:<%response.sendRedirect("result/result.jsp");%>这里的相对路径也是result/result.jsp。

因为刚刚请求的test.jsp是在/03-03/relative/下,所以我们的当前路径就是/03-03/relative/,执行redirect的时候会把当前路径加上result/result.jsp,把结果作为重定向的地址发送给浏览器,浏览器再去请求/03-03 /relative/result/result.jsp,从而得到响应。

理解客户端重定向(Redirect)和服务端重定向(Dispatch)

理解客户端重定向(Redirect)和服务端重定向(Dispatch)

理解客户端重定向(Redirect)和服务端重定向(Dispatch)这是两个常常被放在⼀起进⾏⽐较的概念,今天对这两个概念再重新回顾⼀下,前者发⽣在客户端(浏览器),后者发⽣在服务器端?,因此也有⼈把前者称为客户端重定向,把后者称为服务器端重定向,虽然对于后者这种称谓并不算贴切。

本⽂原⽂链接:转载请注明出处!Redirect(客户端重定向)标准意义上的“重定向”指的是HTTP重定向,它是HTTP协议规定的⼀种机制。

这种机制是这样⼯作的:(没有涉及request,只有response)1. 当client向server发送⼀个请求、要求获取⼀个资源时,2. 在server接收到这个请求后发现请求的这个资源实际存放在另⼀个位置,3. 于是server在返回的response中写⼊那个请求资源的正确的URL,并设置reponse的状态码为301(表⽰这是⼀个要求浏览器重定向的response),4. 当client接受到这个response后就会根据新的URL重新发起请求。

重定向有⼀个典型的特症,即,当⼀个请求被重定向以后,最终浏览器上显⽰的URL往往不再是开始时请求的那个URL了。

这就是重定向的由来。

(解决了为什么需要重定向这个功能?)http重定向的⼀种典型应⽤是防⽌表单重复提交,其原理是:假如当前是⼀个⽤户信息编辑页⾯,表单通过Post提交给saveUser.action, 当该请求提交后,可返回⼀个重定向的response,地址可以是viewUser.action,即定向到⽤户详情页⾯(不能修改和提交)。

当然这种防⽌页⾯重复提交的⽅法作⽤是有限的,如果⽤户返回表单页⾯,重新提交表单,或是⽤户在服务器端响应到达之前,多次点击提交按钮(可通过JavaScript控制提交按钮点击次数)等等。

在Servlet⾥,实现客户端重定向的⽅法是:response.sendRedirect()Dispatch(服务器端重定向)Dispatch(Forward)指的是服务器在处理request的过程中将request先后委托多个servlet或jsp接替进⾏处理的过程。

forward和redirect的区别?

forward和redirect的区别?

forward和redirect的区别?
forward和redirect的区别
1、请求方不同:redirect是由客户端发起的请求,而forward是服务端发起的请求。

2、浏览器地址表现不同:redirect是浏览器地址显示被请求的url,而forward是浏览器地址不显示被请求的url。

3、参数传递不同:redirect需要重新开始一个request,原页面的request生命周期结束。

forward另一个连接的时候。

request变量是在其生命周期内的。

另一个页面也可以使用,其实质是把目标地址include。

4、底层运作不同:redirect发送的请求信息又回送给客户机,让客户机再转发到另一个资源上,需要在服务器和客户机之间增加一次通信。

forward服务器端直接找到目标,并include过来。

5、定义不同:Forward——客户端和浏览器只发出一次请求,Servlet、JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。

Redirect——实际是两次HTTP请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,从而达到转发的目的。

forward和sendRedirect的区别

forward和sendRedirect的区别

forward和sendRedirect的区别1.RequestDispatcher.forward()是在服务器端起作⽤,当使⽤forward()时,Servletengine传递HTTP请求从当前的Servlet or JSP到另外⼀个Servlet,JSP 或普通HTML⽂件,也即你的form提交⾄a.jsp,在a.jsp⽤到了forward()重定向⾄b.jsp,此时form提交的所有信息在b.jsp都可以获得,参数⾃动传递.但forward()⽆法重定向⾄有frame的jsp⽂件,可以重定向⾄有frame的html⽂件,同时forward()⽆法在后⾯带参数传递,⽐如servlet?name=frank,这样不⾏,可以程序内通过response.setAttribute("name",name)来传⾄下⼀个页⾯.重定向后浏览器地址栏URL不变.因为完成⼀个业务操作往往需要跨越多个步骤,每⼀步骤完成相应的处理后,转向到下⼀个步骤。

⽐如,通常业务处理在Servlet中处理,处理的结果转向到⼀个 JSP页⾯进⾏显⽰。

这样看起来类似于Servlet链的功能,但是还有⼀些区别。

⼀个RequestDispatcher对象可以把请求发送到任意⼀个服务器资源,⽽不仅仅是另外⼀个Servlet。

注意,只有在尚未向客户端输出响应时才可以调⽤forward()⽅法,如果页⾯缓存不为空,在重定向前将⾃动清除缓存。

否则将抛出⼀个异常2.response.sendRedirect()是在⽤户的浏览器端⼯作,sendRedirect()可以带参数传递,⽐如servlet?name=frank传⾄下个页⾯,同时它可以重定向⾄不同的主机上,且在浏览器地址栏上会出现重定向页⾯的URL.HttpServletResponse接⼝定义了可⽤于转向的sendRedirect()⽅法。

代码如下:public void sendRedirect(ng.String location)throws java.io.IOException这个⽅法将响应定向到参数location指定的、新的URL。

19_JSP综合练习题19

19_JSP综合练习题19

[填空题]1. out 对象的clear 方法的作用是( _____________)答案:清除缓冲区的内容2. JSP的核心技术是( _____________)答案: Java技术3.上传的数据有两种方法,分别是( _____________)和( _____________)答案: get、post4. Servlet 的生命周期分三个时期:( _____________)( _____________)( _____________)。

答案:装载Servlet ,创建一个Servlet 实例,销毁5.理论上, GET是( _____________),POST是(_____________)。

答案:用于获取服务器信息并将其作为响应返回给客户端用于客户端把数据传送到服务器6.JDBC的主要任务是:( _____________)、( _____________)、( _____________)答案:与数据库建立连接、发送SQL语句、处理结果7. jsp 主要内置对象有( _____________),(_____________) ,( _____________) ,( _____________) ,( _____________),(_____________) ,(_____________),(_____________),(_____________)答案:application 、exception 、pageContext 、request 、session 、response、out 、config、page8. Resulset接口的( _____________)方法可以使结果集指针指向下行数据。

答案: next()9.动态包含的指令是( _____________)答案: <jsp:include>10. Jsp 四个核心的内置对象( _____________),(_____________),( _____________),( _____________)答案: request response session application11.某JSP中有如下代码:<%pageContext .setAttribute( “a”, ”page”);request.setAttribute( “a”, ”request ”);session.setAttribute( “a”, ”session ”);application.setAttribute( “a”, ”application ”);%>结果: ${a}则显示结果为:(_____________)答案: page12.给定test1)jsp 代码片断,如下:<html><jsp:include page= ”test2)jsp ” flush= ”false ”><jsp:param name= ”color ” value= ”red ”/></jsp:include></html>要在test2)jsp 中输出参数color 中的值,应该书写的代码是( _____________)答案: <%=request.getParameter(“ username”)%>13.在WEB应用程序的目录结构中,在WEB-INF文件夹中的classes目录是放( _____________)文件的答案:类或者class14.现在有一个struts 的人员管理项目,基本的文件结构如下test/src/user_info/test/test/test/test/WEB-INF/test/test/WEB-INF/classes/mysource/ApplicationResources.property下面是一个.do 的配置信息,在这个.do 里实现了错误捕捉的代码,跳转的路径名是list,跳转以后地址栏改变,请把它补全。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看:
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器。

浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。

所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。

2.从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.
forward,方法只能在同一个Web应用程序内的资源之间转发请求.
forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求,但是你不能说"一个请求是属于forward 还是redirect "
3.从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块. redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
4.从效率来说
forward:高.
redirect:低.
5.jsp 语法
<jsp:forward page={"relativeurl" | "<%= expression %>"} />
或者这样写:
<jsp:forward page={"relativeurl" | "<%= expression %>"} >
<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
</jsp:forward>
6.例子
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
描述
<jsp:forward>标签从一个jsp文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.
你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.
如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。

如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错. 属性
page="{relativeurl | <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或url.这个文件可以是jsp,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).
<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.
如果你想传递多个参数,你可以在一个jsp文件中使用多个<jsp:param>。

name指定参数名,value指定参数值.
<jsp:forward>例子
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>test</title>
</head>
<body>
<jsp:forward page="forwardTo.jsp">
<jsp:param name="userName" value="riso"/>
</jsp:forward>
</body>
</html>
forwardTo.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<!--forwardTo.jsp-->
<%
String useName=request.getParameter("userName");
String outStr= "谢谢光临!";
outStr+=useName;
out.println(outStr);
%>
redirect的例子:
譬如:client 通过XXX/index.jsp?name=gauss&pwd=123访问index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,则在login.jsp中可以通过request.getParameter()得到name和pwd,而
<%response.sendRedirect("login.jsp");%>得不到。

相关文档
最新文档