文档章节

在servlet 内实现跳转

c
 chuiyuan
发布于 2014/06/20 22:39
字数 419
阅读 25
收藏 1

我们实现 一个案例 :

     在  query.jsp 中输入学生的名字,在数据库中查询,查询结果在  queryResult.jsp 中显示。

 Servlet是控制者,作用是处理来自 JSP 页面的输入并从  JAVA BEAN中读取来自数据库的数据,再跳转到目标页面

一。使用response对象实现 跳转

1.query.jsp 

 <b>查询学生数据库</b>
    <form action="/proj4/servlet/QueryServlet"  method ="post">
    请输入学生的帐号:<input type ="text"  name ="account">
    <input  type ="submit"  value="查询">
    </form>

2. queryResult.jsp

 查询的关键字为:<%=session.getAttribute("account") %>

3.  QueryServlet.java 

public class QueryServlet extends HttpServlet {

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("gb2312");
		String account= request.getParameter("account");
		//数据库查询
		request.getSession().setAttribute("account", account);
		response.sendRedirect("/proj4/queryResult.jsp");
	}

}

将数据放入  session ,只有这样 ,在下一个页面中才能访问到。

request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。


二。使用forward方法实现跳转

只用更改servlet中的代码 

//数据库查询
		request.getSession().setAttribute("account", account);
		ServletContext application = this.getServletContext();
		RequestDispatcher rd = application.getRequestDispatcher("/queryResult.jsp");
		rd.forward(request, response);

前面 讲过,在  forward跳转中,可以保持 request中的值,而 redirect方法中不行。因此 ,我们这里还可以改成

request.setAttribute("account",account);

同时 ,在 queryResult.jsp中的代码 要改

<%=request.getAttribute("account")%>

问题,在 Servlet中,什么时候 用 redirect跳转,什么时候用 forward方法跳转。

当从页面A到  B,如果 存在大量的暂时的数据 (也就是在B显示后就不再会用到的),那么 ,为了节省 内存,我们用forward 跳转,可以避免将很多

内容 存在session 中,而导致服务 器内存过大,因为session 是在服务 器上的。






© 著作权归作者所有

共有 人打赏支持
c
粉丝 9
博文 92
码字总数 40993
作品 0
海淀
JSP复习笔记——第11章 JSP 构架和MVC设计模式

11.1 JSP Model I 体系结构 11.2 JSP Model II 体系结构/MVC设计模式 11.3 使用MVC设计模式改写用户注册程序 11.3.1 使用serlvet实现Controller层 11.3.2 使用jsp实现表示层 11.3.3 使用Jav...

暗之幻影
2014/12/18
0
0
jquery中用ajax实现无刷新提交

要实现一个页面无刷新请求跳转的功能,在jsp点击按钮,然后跳转到后台action进行处理,并将处理结果显示在jsp页面上。 jsp页面中ajax代码: function query(page){var random=Math.random();...

叶知秋
2012/06/18
0
0
forward与redirct

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

NotFoundException
2012/11/29
0
0
Java Web(一) Servlet详解!!

一、什么是servlet?     处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西。理解这个的前提是了解一些http协议的东西,并且...

architect刘源源
05/08
0
0
Tomcat Error Page配置

如果JSP页面出现异常,就会转到tomcat自动的那个异常页面,页面不怎么友好。jsp标准中提供了error page的配置,可以自己定义当出现错误时跳转到哪个页面。这个配置在web.xml里面进行配置,下...

凯文加内特
2014/08/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

InvalidKeyException: Illegal key size

Caused by: java.lang.RuntimeException: java.security.InvalidKeyException: Illegal key size 解决方案:去官方下载JCE无限制权限策略文件。 jdk 5: http://www.oracle.com/technetwork/j......

自由的开源
14分钟前
0
0
JAVA秒杀实现以及优化原理

秒杀与其他业务最大的区别在于:秒杀的瞬间, (1)系统的并发量会非常的大 (2)并发量大的同时,网络的流量也会瞬间变大。 关于(2),最常用的办法就是做页面静态化,也就是常说的前后端分...

小贱是个程序员
17分钟前
1
0
Spring Aop之Advisor解析

在上文Spring Aop之Target Source详解中,我们讲解了Spring是如何通过封装Target Source来达到对最终获取的目标bean进行封装的目的。其中我们讲解到,Spring Aop对目标bean进行代理是通过Ann...

爱宝贝丶
20分钟前
0
0
Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点

前言: 分享 Java高级工程师面试阿里,阿里云,天猫,菜鸟,涉及到的知识点,文章有点长,但比较全面,阅读时间15分钟左右,干货满满。 一、HashMap的那些事 1.1、HashMap的实现原理 1.1.1、...

Java大蜗牛
45分钟前
2
0
nginx模块学习五 expires 浏览器缓存

缓存原理 语法 Syntax: expires [modified] time;expires epoch | max | off;Default: expires off;Context: http,server,location,if in location 例/etc/nginx/conf.d/default.con......

Romanceling
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部