zoukankan      html  css  js  c++  java
  • java servlet 几种页面跳转的方法及传值

    java servlet 几种页面跳转的方法及传值

     

    java web 页面之间传值有一下这几种方式
    1.form 表单传递参数
    2.url地址栏传递参数
    3.session
    4.cookie
    5.application

    6.通过隐藏域传值

    7.通过JavaBean进行传值

    8. request.setAttribute("strRequest", strRequest); 

    9.response.setAttribute("name",name)来传至下一个页面

    10.response.sendRedirect():在用户的浏览器端工作,sengRedirect()可以带参数传递,比如servlet?name=tom传至下个页面,同时它可以重定向至不同的主机sendRedirect()可以重定向至有frame的jsp文件。重定向后在浏览器地址栏上会出现重定向页面的URL。

    11.

    1) redirect 方式

    response.sendRedirect("/a.jsp");

    页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:

    response.sendRedirect("http://www.jb51.net");

    跳转后浏览器地址栏变化。

    这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。

    2) forward方式

    RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");

    dispatcher .forward(request, response);

    页面的路径是相对路径。forward方式只能跳转到本web应用中的页面上。

    跳转后浏览器地址栏不会变化。

    使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute

    JSP:

    1) response.sendRedirect();

    和servlet的response.sendRedirect()方式一样。

    此语句前不允许有out.flush(),如果有,会有异常:

    java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.

    at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)

    ...

    跳转后浏览器地址栏变化

    如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;

    如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;

    2) response.setHeader("Location","");

    此语句前不允许有out.flush(),如果有,页面不会跳转。

    跳转后浏览器地址栏变化

    此语句后面的语句执行完成后才会跳转

    转:http://www.jb51.net/article/35550.htm

  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/ZqNote/p/5888839.html
Copyright © 2011-2022 走看看