`
mzhj
  • 浏览: 227519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet页面跳转实现方法的区别

阅读更多
    本文向您介绍Servlet页面跳转实现方法的几种区别,包括Servlet和JSP中的不同实现,比如Servlet中的redirect方式和forward方式得区别等。
  •  
    1. Servlet多线程的相关问题浅析
    2. Servlet容器之安全多线程问题
    3. JSP Servlet技术之表单数据浅析
    4. JSP开发框架JSF对比基于Servlet的Tapestry
    5. JSP Servlet开发最初那点事
  •  

    一直对Servlet页面跳转的几种方式理解的糊里糊涂的,今天在网上搜了一把,找到一遍比较好的,记下来,以后看看。

    Servlet页面跳转分两部分,一是发生在Servlet,一是在JSP,其实JSP也就是servlet,不过还是有点差异滴。

    Servlet:

    当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面。

    1)  redirect 方式

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

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

    response.sendRedirect("URL");

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

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

    2) forward方式

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

    dispatcher .forward(request, response);

    Servlet页面跳转的路径是相对路径。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)

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

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

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

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

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

    跳转后浏览器地址栏变化

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

    3)  <jsp:forward page="" />

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

    java.lang.IllegalStateException: forward() not allowed after buffer has committed.
    at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)
    at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)
    at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)

    ...
    Servlet页面跳转后浏览器地址栏不变,但是只能跳到当前主机下

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

     

    【编辑推荐】

分享到:
评论

相关推荐

    servlet实现的页面跳转

    在这个"源代码"示例中,可能包含了一个简单的Servlet类,它继承自`HttpServlet`,并实现了页面跳转的方法。你可以在解压后的"WEB-INF"目录下找到相关的Java源文件和web.xml配置文件。"WEB-INF"是Java Web应用的标准...

    jsp和servlet中实现页面跳转的方式实例总结.docx

    JSP 和 Servlet 中实现页面跳转的方式实例总结 在 web 开发中,页面跳转是一个非常常见的需求,JSP 和 Servlet 是 Java Web 开发中两个最基本的组件,了解它们如何实现页面跳转是非常必要的。本文将根据 JSP 和 ...

    servlet实现简单登录页面跳转.zip

    本示例项目"Servlet实现简单登录页面跳转.zip"是关于如何利用Servlet来实现一个基本的用户登录功能,包括从HTML登录页面接收数据、验证用户凭证以及根据登录结果进行页面重定向。 1. **Servlet基础** - Servlet是...

    关于servlet的页面跳转经典例子

    在这个“关于servlet的页面跳转经典例子”中,我们将探讨如何在Servlet中实现页面重定向和请求转发,同时也会涉及到数据库连接的相关知识。 1. **Servlet中的页面跳转** - **请求转发(Request Forward)**:在...

    servlet跳转的几种情况

    Redirect 跳转可以使用 response.sendRedirect() 方法来实现。例如: `response.sendRedirect("/a.jsp");` Redirect 跳转的特点是: * 可以跳转到任何页面,不局限于本 web 应用中。 * 浏览器地址栏会变化。 * ...

    js页面跳转方法

    2. 使用 window.open() 方法实现页面跳转 window.open() 方法可以打开一个新的浏览器窗口,并跳转到指定的 URL。例如: ```javascript window.open('https://www.example.com'); ``` 这将打开一个新的浏览器窗口,...

    servlet跳转页面的几种方法

    Servlet是Java Web开发中用于处理...总的来说,Servlet和JSP中的页面跳转是Web开发中的基础操作,理解和熟练掌握这些方法对于编写高效的Web应用程序至关重要。合理选择重定向和转发,可以优化用户体验并提高系统性能。

    servlet获得下拉列表的值,并跳转到相关页面

    总结来说,通过Servlet获取下拉列表的值并跳转到相关页面涉及以下几个步骤: 1. 在HTML页面中创建下拉列表,并指定一个name属性。 2. 编写Servlet,使用HttpServletRequest的getParameter()方法获取下拉列表的值。 3...

    jsp与Servlet跳转实例

    本文将详细解析一个具体的案例——如何通过JSP与Servlet的有效结合实现信息提交与页面跳转功能,帮助开发者更深入地理解这一流程。 #### JSP与Servlet的关系 JSP本质上是一种简化版的Servlet,它允许开发者在HTML...

    java-web学习demo--最简单的servlet jsp跳转传值

    - **Forward**:而Servlet可以通过`request.getRequestDispatcher()`方法将请求转发到内部资源,如JSP页面。这种情况下,浏览器的URL不会改变,因为没有新的HTTP请求发生。 4. **数据传递**: - **请求属性...

    servlet/jsp跳转

    1. **Servlet的生命周期**:Servlet在Web应用启动时被加载,通过`init()`方法初始化,然后处理来自客户端的请求,通过`service()`方法执行业务逻辑,最后在Web应用关闭或服务器重启时通过`destroy()`方法清理资源。...

    jsp和servlet中实现页面跳转的方式实例总结

    本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 &lt;&#37; ...

    Java+Servlet+HTML+CSS+数据库,实现的图书管理系统,完整的实现了增删改查的操作及页面之间跳转

    java部分:程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、实用类、JDBC、三层架构Druid连接池、Apache的DBUtils使用、Servlet等。 数据库部分:创建表、增删改查语句的书写等。 ...

    jsp与Servlet跳转

    - 在Java Web应用中,页面跳转通常有两种方式:重定向(Redirect)和转发(Forward)。 - **重定向**:客户端(浏览器)会收到一个新的HTTP响应,并被指示去访问新的URL。这意味着客户端会发送一个新的请求到...

    JSP页面跳转的五种方法

    `response.sendRedirect()`是另一种实现页面跳转的方法,它通过重定向的方式将用户引导至一个新的URL地址。与`forward()`不同的是,这种方式会改变客户端浏览器的URL地址栏显示的内容,并且不保留原始请求对象的信息...

    通过servlet实现登陆界面的跳转

    3. 根据验证结果,使用`sendRedirect`进行页面跳转或显示错误信息。 4. 在`web.xml`中声明Servlet及其映射路径。 这是一个基础的登录实现,实际项目中可能还需要考虑其他因素,如session管理、防止SQL注入、密码...

    java servlet 几种页面跳转的方法

    在Java Servlet中,页面跳转是常见的操作,用于实现用户请求的不同处理结果导向不同的页面。通常,这些操作发生在`doGet`、`doPost`等HTTP请求处理方法中。本文将详细介绍两种主要的页面跳转方法:`redirect`和`...

    Servlet跳转方式sendReDirect

    - `forward()`方法允许Servlet在同一个应用程序内部进行跳转。这意味着请求的生命周期仍然保持在同一应用内,不会向客户端暴露跳转的实际目标。 - 调用`request.getRequestDispatcher(path).forward(request, ...

    JSP页面跳转方法汇总

    另一种实现页面跳转的方法是通过设置HTTP响应头来间接达到重定向的效果。与`sendRedirect`不同,这种方法通常用于永久重定向(HTTP状态码301)或临时重定向(HTTP状态码302),通过调用`response.setStatus`和`...

    j2ee练习8实现页面自动跳转

    通过上述分析,我们可以看到“j2ee练习8实现页面自动跳转”涵盖了Web开发中的多个核心概念和技术,包括页面跳转、Servlet、JSP、MVC模式以及Web应用的常规设计和调试。学习并掌握这些知识点,将有助于提升J2EE开发...

Global site tag (gtag.js) - Google Analytics