各种框架的不管看起来多么不一样,最终是使用下面的基本理论,务必非常清楚。
1.response.sendRedirect(url); 新的页面并不能处理旧页面的pageContext(request,response,...)对象,所以你用request.getParameter(ff)企图调用原页面
request对象的参数,得到的自然是null
2.getServletContext().getRequestDispatcher(url).forward(request,response);
forward函数已经把原页面的request,response对象传入新的页面,因此这新旧页面拥有相同的
request,response对象。request.getParameter(ff)就可以得到相应的值
3.ServletContext.getRequestDispatcher 路径必须是相对上下文的绝对路径
ServletRequest.getRequestDispatcher 可以是相对也可以是绝对
4、服务器端进行转向的4种方法:
1) ServletContext的getRequestDispatcher()
2) ServletContext的getNamedDispatcher()
3) ServletRequest的getRequestDispatcher()
4) ServletResponse的sendRedirect()进行转向。
1)2)3) => forward() 4) sendRedirect()
使用forward方法,因为这些这样比较高效。只有在forward方法不能使用时(比如要转向到一个非本web应用),再使用ServletResponse的sendRedirect()方法。
<jsp:fordward>与 sendRedirect 方法的比较
虽然 <jsp:fordward>与 sendRedirect 方法,都可以将浏览器浏览的网页,重导至另一个网页,但是两者在原理上是不太相同。
a. <jsp:fordward> : 动作是利用伺服端,将资料输出至缓冲区的机制,在前一个网页尚未输出到客户端前,取消资料的输出,然后输出另一个网页的资料,达到重导浏览器的效果。
优点: 两网页间可以分享 request 对象内的变量。
b. sendRedirect : 动作是透过 HTTP 协议的 Header , 对浏览器下达重导指令,因此,不牵涉到服务器端缓冲区的问题。
不过由于 sendRedirect 方法作用于客户端,所以重导前后网页无法分享存在于 request 对象内的变量。
Solution: response.sendRedirect(“sendRedirect.htm?name=sparkwu&E-Mail=spark.wu@cobra-tech.com”)
分享到:
相关推荐
总的来说,J2EE JAR包见证了Java在企业级应用开发领域的不断演进,从J2EE 1.3的初步成熟到1.4的完善,再到5.0的显著简化,它们反映了软件开发趋势的变化,即从繁重的手动配置转向更简洁、更具生产力的开发方式。...
JSP的`forward`动作可以将请求转发到另一个页面,比如在登录失败后转向错误页面。 HTTP的GET和POST方法是两种常见的请求方式,GET通常用于获取资源,而POST用于向服务器提交数据。在处理异常时,可以使用`try-catch...
【Java与J2EE架构】是企业级应用开发的核心技术体系,主要涵盖了Java语言和基于Java的J2EE平台。J2EE(Java 2 Platform, Enterprise Edition)是由Oracle公司提供的一个用于构建分布式、多层的企业级应用程序的平台...
- `sendRedirect()`方法:在响应对象中,`sendRedirect()`用于实现重定向,将客户端的请求转向另一个URL。 4. **会话配置**: - `<session-config>`标签中的`<session-timeout>`元素:定义了默认的会话超时时长,...
为了克服模型1的不足,业界逐渐转向了模型2架构。模型2采用了MVC (Model-View-Controller) 设计模式,将应用程序分解为三个独立的部分: - **Model**:负责业务逻辑处理和数据管理。 - **View**:展示数据,通常...
- 虽然J2EE是传统的企业级应用框架,但现代趋势转向微服务架构。讨论两者之间的差异,以及如何将J2EE应用转化为微服务。 12. **性能优化**: - 理解负载均衡、缓存策略(如EHCache或Redis)、数据库索引优化等...
然而,随着微服务架构和云技术的兴起,J2EE的复杂性也受到挑战,许多现代企业转向了Spring框架和轻量级容器,如Tomcat,它们提供了更灵活、更轻便的解决方案。 总的来说,J2EE是企业级Java应用开发的重要基石,它...
近年来,微服务架构的兴起使得开发者开始转向更加灵活、轻量级的技术栈。然而,J2EE仍然在许多大型企业和遗留系统中发挥着重要作用。 ### 结论 J2EE作为一种成熟的企业级应用开发平台,在其发展历程中积累了丰富的...
文档的第二章转向了Ajax的实践应用,通过JSP聊天室与Ajax聊天室的对比,展示了Ajax技术如何带来优势,例如在聊天应用中减少不必要的页面刷新,提高用户体验。此外,还探讨了Ajax聊天室的实现细节,包括异步请求的...
- **技术迁移**:即便当前许多企业已转向更新的Java EE 7或Jakarta EE,理解J2EE 5.0的基础能为学习新版本打下坚实基础。 总的来说,J2EE 5.0作为一个里程碑式的版本,对Java企业级开发有着深远的影响。通过深入...
接下来,我们转向“分页”这一话题。在大型数据集的展示中,分页是提高用户体验的关键。以下是一些分页实现策略: 1. **客户端分页**:在前端处理分页逻辑,通过AJAX请求获取每页的数据。优点是页面加载速度快,但...
在Struts框架下,请求会被映射到特定的Action,Action执行完业务逻辑后,通过Forward或者Redirect控制转向特定的JSP页面显示结果。 在项目中,`xiaojianShop`可能是应用的源代码目录,包含Action类、DAO(Data ...
这表示名为"login"的Action,当其执行成功时(name="success")转向success.jsp,失败时(name="input")返回登录页面。 4. **Action和ActionSupport** 在Struts2中,自定义的Action类通常继承自ActionSupport类...
3. **业务逻辑与EJB**:随后,转向EJB的学习,理解会话Bean和实体Bean的区别,学会如何利用EJB进行复杂的业务逻辑处理和数据持久化。 4. **框架与工具**:掌握一些流行的J2EE框架和工具,如Spring框架、Hibernate ...
- `forward()`:只在服务器内部进行控制权的转向,不会改变客户端浏览器地址栏中的URL。 - `redirect()`:会使客户端重新发起一个请求,因此地址栏中的URL会发生变化。 7. **两种跳转方式的区别** - 使用`...
Java语言假定你只想进行面向对象编程,这意味着在开始之前,你需要将思维模式转向面向对象的世界(除非你已经在那里)。这种初始努力的好处是可以使用一种比许多其他OOP语言更容易学习和使用的语言进行编程。 在...
尽管SSM在传统Java Web项目中广泛使用,但随着SpringBoot的出现,开发模式逐渐转向更为简洁快速的"起步依赖"方式。SpringBoot简化了Spring的配置,内置了Tomcat服务器,使得开发和部署更为便捷。在仓库管理系统中,...
接下来,我们转向《基于J2EE的Ajax宝典》。这本书主要探讨如何在Java企业级环境中应用Ajax技术。J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专为构建分布式、多层的企业级应用而设计。Ajax...
有了J2SE的基础,接下来将重点转向Web开发: 1. **Servlet与JSP**:Servlet是Java Web应用的核心,用于接收和响应HTTP请求。JSP(JavaServer Pages)是动态网页技术,将HTML与Java代码结合在一起,简化视图层的开发...
接着,我们转向J2EE,即Java Platform, Enterprise Edition,是一个用于构建企业级应用的标准平台,包含了一系列的API和服务。JavaEE API中文版涵盖了诸如Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java ...