-
-
Servlet多线程的相关问题浅析
- Servlet容器之安全多线程问题
-
JSP Servlet技术之表单数据浅析
-
JSP开发框架JSF对比基于Servlet的Tapestry
- 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类,它继承自`HttpServlet`,并实现了页面跳转的方法。你可以在解压后的"WEB-INF"目录下找到相关的Java源文件和web.xml配置文件。"WEB-INF"是Java Web应用的标准...
JSP 和 Servlet 中实现页面跳转的方式实例总结 在 web 开发中,页面跳转是一个非常常见的需求,JSP 和 Servlet 是 Java Web 开发中两个最基本的组件,了解它们如何实现页面跳转是非常必要的。本文将根据 JSP 和 ...
本示例项目"Servlet实现简单登录页面跳转.zip"是关于如何利用Servlet来实现一个基本的用户登录功能,包括从HTML登录页面接收数据、验证用户凭证以及根据登录结果进行页面重定向。 1. **Servlet基础** - Servlet是...
在这个“关于servlet的页面跳转经典例子”中,我们将探讨如何在Servlet中实现页面重定向和请求转发,同时也会涉及到数据库连接的相关知识。 1. **Servlet中的页面跳转** - **请求转发(Request Forward)**:在...
Redirect 跳转可以使用 response.sendRedirect() 方法来实现。例如: `response.sendRedirect("/a.jsp");` Redirect 跳转的特点是: * 可以跳转到任何页面,不局限于本 web 应用中。 * 浏览器地址栏会变化。 * ...
2. 使用 window.open() 方法实现页面跳转 window.open() 方法可以打开一个新的浏览器窗口,并跳转到指定的 URL。例如: ```javascript window.open('https://www.example.com'); ``` 这将打开一个新的浏览器窗口,...
Servlet是Java Web开发中用于处理...总的来说,Servlet和JSP中的页面跳转是Web开发中的基础操作,理解和熟练掌握这些方法对于编写高效的Web应用程序至关重要。合理选择重定向和转发,可以优化用户体验并提高系统性能。
总结来说,通过Servlet获取下拉列表的值并跳转到相关页面涉及以下几个步骤: 1. 在HTML页面中创建下拉列表,并指定一个name属性。 2. 编写Servlet,使用HttpServletRequest的getParameter()方法获取下拉列表的值。 3...
本文将详细解析一个具体的案例——如何通过JSP与Servlet的有效结合实现信息提交与页面跳转功能,帮助开发者更深入地理解这一流程。 #### JSP与Servlet的关系 JSP本质上是一种简化版的Servlet,它允许开发者在HTML...
- **Forward**:而Servlet可以通过`request.getRequestDispatcher()`方法将请求转发到内部资源,如JSP页面。这种情况下,浏览器的URL不会改变,因为没有新的HTTP请求发生。 4. **数据传递**: - **请求属性...
1. **Servlet的生命周期**:Servlet在Web应用启动时被加载,通过`init()`方法初始化,然后处理来自客户端的请求,通过`service()`方法执行业务逻辑,最后在Web应用关闭或服务器重启时通过`destroy()`方法清理资源。...
本文实例总结了jsp和servlet中实现页面跳转的方式。分享给大家供大家参考,具体如下: 假设要求从test1.jsp 跳转到test2.jsp 一. jsp中跳转: 1. 使用RequestDispatcher.forward方法转发 <% ...
java部分:程序基本概念、数据类型、流程控制、顺序、选择 、循环、跳转语句、变量、类、方法、实用类、JDBC、三层架构Druid连接池、Apache的DBUtils使用、Servlet等。 数据库部分:创建表、增删改查语句的书写等。 ...
- 在Java Web应用中,页面跳转通常有两种方式:重定向(Redirect)和转发(Forward)。 - **重定向**:客户端(浏览器)会收到一个新的HTTP响应,并被指示去访问新的URL。这意味着客户端会发送一个新的请求到...
`response.sendRedirect()`是另一种实现页面跳转的方法,它通过重定向的方式将用户引导至一个新的URL地址。与`forward()`不同的是,这种方式会改变客户端浏览器的URL地址栏显示的内容,并且不保留原始请求对象的信息...
3. 根据验证结果,使用`sendRedirect`进行页面跳转或显示错误信息。 4. 在`web.xml`中声明Servlet及其映射路径。 这是一个基础的登录实现,实际项目中可能还需要考虑其他因素,如session管理、防止SQL注入、密码...
在Java Servlet中,页面跳转是常见的操作,用于实现用户请求的不同处理结果导向不同的页面。通常,这些操作发生在`doGet`、`doPost`等HTTP请求处理方法中。本文将详细介绍两种主要的页面跳转方法:`redirect`和`...
- `forward()`方法允许Servlet在同一个应用程序内部进行跳转。这意味着请求的生命周期仍然保持在同一应用内,不会向客户端暴露跳转的实际目标。 - 调用`request.getRequestDispatcher(path).forward(request, ...
另一种实现页面跳转的方法是通过设置HTTP响应头来间接达到重定向的效果。与`sendRedirect`不同,这种方法通常用于永久重定向(HTTP状态码301)或临时重定向(HTTP状态码302),通过调用`response.setStatus`和`...
通过上述分析,我们可以看到“j2ee练习8实现页面自动跳转”涵盖了Web开发中的多个核心概念和技术,包括页面跳转、Servlet、JSP、MVC模式以及Web应用的常规设计和调试。学习并掌握这些知识点,将有助于提升J2EE开发...