1. 首页 > 科技快讯 >

request重定向 重定向的请求方式

servlet request.setAttribute()里面的值怎么在jsp中取出来

List users = new ArrayList();

这个有点不科学,你可以在servlet里面把ResultSet 遍历封装到一个List 里面,然后

request重定向 重定向的请求方式request重定向 重定向的请求方式


request重定向 重定向的请求方式


request.setAttribute 保存这个list直接el表达式取出来,${参数}即可 ,再在jsp用c标签循环遍历list就可以了

给你个小例子吧!

后台代码:

String obj ="hello ja";

request.setAttribute("Object",obj);

jsp代码:

这样看就简单了吧!

//获取值<%String name =request.getAttribute("name");%>

//显示值<%=name%>

ja文件里如何写可让页面跳转://www.baidu

a页面代码 解释二 而redirect相当于用户的两次请求;所以地址栏会有变化; page A b页面代码 Page B 把两个文件保存到同级目录下就可以了. 检举 回答人的补充 2009-09-10 23:01 ja五种JSP页面跳转方法详解 1. RequestDispatcher.forward() 是在端起作用,当使用forward()时,Servlet engine传递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中进行重定向 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html; charset=gb2312"); ServletContext sc = getServletContext(); RequestDispatcher rd = null; rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面 rd.forward(request, response); } 通常在servlet中使用,不在jsp中使用。 2. response.sendRedirect() 是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件. 重定向后在浏览器地址栏上会出现重定向页面的URL 例:在servlet中重定向 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html; charset=gb2312"); response.sendRedirect("/index.jsp"); } 由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。 注意: (1) 使用response.sendRedirect时,前面不能有HTML输出; 这并不是的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说 JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前, 有少量的HTML输出也是允许的。 (2) response.sendRedirect之后,应该紧跟一句return。 我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。 比较: (1) Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址; (2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。 前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法。 注:在有些情况下,比如,需要跳转到一个其它上的资源,则必须使用HttpServletResponse.sendRequest()方法。 3. <jsp:forward page="" /> 它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。 如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。 另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交 4. 修改HTTP header的Location属性来重定向 通过设置直接修改地址栏来实现页面的重定向。 jsp文件代码如下: <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn = "/newpath/jsa.jsp"; response.setHeader("Location",newLocn); %> 5. JSP中实现在某页面停留若干秒后,自动重定向到另一页面 在html文件中,下面的代码: <meta -equiv="refresh" content="300; =target.jsp"> 它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。 由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。 关键代码: String content=stayTime+";URL="+URL; response.setHeader("REFRESH",content); 检举 提问人的追问 2009-09-10 23:01 在ja里面写 就是在class 不是在页面上写 检举 提问人的追问 2009-09-10 23:11 我要跳转到另一个域名里 response.sendRedirect("这里面可以写

c#中HttpWebRequest对应302重定向为什么取不到 cookie-CSDN

改为一、调用方式

HttpWebRequest 有个属性AllowAutoRedirect 把他设置false就可不跳转了 true就跳转。

HttpWebResponse 在得到返回信息时有一个属性headers,里面有要跳转的URL

request.AllowAutoRedirect=true时,是否还能获得301/302状态码?

// JSP一般用标签EL、OGNL取值,如果是Ja代码的话

这个很简单的,你稍等,我写个示例 给你

private string GetWebString(string )

{HttpWebRequest h = (HttpWebRequest)HttpWebRequest.Create();

h.AllowAutoRedirect = false;

HttpWebResponse r = (HttpWebResponse)h.GetResponse();

//判断是否重定向 Ambiguous 300 Found 302 Moved 301

{string newUrl = r.Headers["Location"];//获取重定向的网址

if (!string.IsNullOrEmpty(newUrl))

{//此处做你的处理

r.Close();

//获取源码

return GetWe这2者类似但是又完全不同。bString(newUrl);

}}

else

{using (System.IO.StreamReader read = new System.IO.StreamReader(r.GetResponseStream()))

{string value = read.ReadToEnd();

r.Close();

return value;

}}

}

jsp from表单提交后如何获取响应

转发过程:客户浏览器发送请求——》web接受此请求——》调用内部的一个方

1、可以使用ajax异步通信

2、如果requestWrapper.addHeader("realm","test");你是想从后台获取从数据库查出的数据的话,servlet可以采用重定向,然后把request和response传到页面,在forward里面写的那个,action更简单了,你要是会都可以不说了。

页面跳转和重定向区别

List users = (User)request.getAttribute("users"); // 直接强转

共同点: 都实现了根据自己的条件实现的页面的跳转。

区别:

I.Redirect

II.概念:URL重新定向:可以是任意的URL

III.共享数据:不能共享request里面的数<%response.sendRedirect("new.jsp"); %> //重定向到new.jsp据

IV.应用:一般用于用户注销登录时返回主页面和跳转到其它的网站等等

redirect是收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。

I.Forward

III.共享数据:转发页面和转发到的页面可以共性request里面的数据

IV.应用:一般用于用户登录的时候根据角色转发到相应的模块等等

forward是内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;

求ja大神给我解释下重定向后session为什么会失效?

一句话,转发是行为,重定向是客户端行为。为什么这样说呢,这就要看两个动作的工作流程:

HttpSession session=reresponse.sendRedirect("new.jsp"); //重定向到new.jspquest.getSession();

HttpSession session=request.getSession(true);

下一次取session的时候

你是怎么取值的?el表达式?还是在ja代码里面

Servlet中,HttpServletResponse的()方法用来把一个Http请求重定向到另外的URL。

goforward("a.jsp")是不会变地址栏的;

是C,一种是转发:request.getRequestDispather("URL").forword(request,response);地址栏没有改变另一种就是重定向了:response.sendRedirect("URL");地址栏会改变

C 跳转有两种方式:一种是转发:request.getRequ用${变量名 }就可以获取estDispather("URL").forword(request,response);另一种就是重定向了:response.sendRedirect("URL");

C重定向

其他的3个方法根本不存在...

response.sendRedirect("");

jsp中forward和redirect的区别

我们知道,在servlet中调用转发、重定向的语句如下:

HttpSession session=request.getSession(false);

request.getRequestDispatcher("new.jsp").forward(request, response); //转发到new.jsp

在jsp页面中你也会看到通过下面的方式实现转发:

二、本质区别

解释一

法在容器内部完成请求处理和转发动作——》将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的,其不能转向到其他的web路径上

是浏览器只做了一次访问请求。

重定向过程:客户浏览器发送请求——》web接受后发送302状态码响应及对

应新的location给客户浏览器——》客户浏览器发现是302响应,则自动再发送一个新的请求,请求是新的location地址——》

根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的

概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

重定向,其实是两次request

次,客户端request A,响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

例子:

response.sendRedirect("loginsuccess.jsp");

请求转发是内部把对一个request/response的处理权,移交给另外一个

对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。传输的信息不会丢失。

例子:

RequestDispatcher dis=request.getRequestDispatcher(“loginsuccess.jsp”);

解释三

假设你去办理某个执照

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。

转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。

JSP如何实现网页重定向

forward是端的跳转,不会重写客户端的地址。所以login.jsp里面的相对路径是基于跳转之前的那个地址目录的。

jsp实现页面的重定向,使用的是response.sendRedirect("a.jsp");实现页面重定向到a.jsp这个页面。

1,可以设置HttpWebRequest 的MaximumAutomaticRedirections 属性一个比较大的值试试

2、如果是在ja文件(如servlet)中写代码的话,只需写response.sendRedirect("a.jsp");就行了。

接下来简单说说页面的转发(forward)与重定向(sendRedirect)的区别:

重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。

转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。

servlet重定向带请求header

Redirect后,是开始了一个新的Http请求,因此地址栏是redirect后的地址。

可以通过HeaderMapRequestWrapper对象设置header的值,HeaderMapRequestWrapper requestWrapper = new HeaderMapRequestWrapper(req);

forward后,地址栏显示的信息不改变。forward保存了相关的状态信息,而redirect不保存信息。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息