当前位置: 代码迷 >> Java Web开发 >> 两个jsp页面之间进行跳转,在后一个页面展示从数据库读出来的信息,怎么与servlet进行交互
  详细解决方案

两个jsp页面之间进行跳转,在后一个页面展示从数据库读出来的信息,怎么与servlet进行交互

热度:8405   发布时间:2013-02-25 21:09:08.0
两个jsp页面之间进行跳转,在后一个页面展示从数据库读出来的信息,如何与servlet进行交互
从页面a.jsp点击链接<a href="b.jsp" target="_new">进入b.jsp</a>
进入b.jsp之后要展示从数据库读取出来的信息。
现在的问题是,想用servlet封装从数据库读到的信息,然后在b.jsp页面显示。
请问在前台页面的跳转过程中如何与servlet类进行联系,因为跳转时没有表单提交数据的过程,所以调用不到servlet的doGet()和doPost()方法。想过借助servlet的初始化方法ini(),但是方法中没有request和response对象。
求教各位大侠,如有对问题描述不理解的请提出来,小弟诚心求教!

另外,本人初学,先用基础的javascript、jsp、java代码解决问题,框架可以提出以供参考,但是本帖需要不使用框架的解决方法,先谢谢,结帖之后再谢!

------解决方案--------------------------------------------------------
没有学过MVC设计模式么?不是特定框架,就是个模式而已。

该框架应对到J2EE而言,JSP就是负责展现的,Servlet负责数据存取控制。

常规做法是,A先跳转到Server:
<a href="/XXXOOOServlet" target="_new">进入b.jsp</a>
然后该Servlet取得数据后将相关数据存放到request中,比如:
request.setAttribute(xxx, ooo);
再跳转到B:
request.getRequestDispatcher("b.jsp").forward(request, response);
B页面中就可以取得该数据了:
Object ooo = request.getAttribute(xxx);


另外,你描述的过程不太正确,不需要提交数据也可以访问Servlet,这种情况下调用的就是doGet()
------解决方案--------------------------------------------------------
有JSON就可以做到了
JSON是一种能在javascript和java之间对象的互相转换的一种字符串格式
你到入一下JSON的jar包和js文件就可以用了
具体的用法可以查一下资料
------解决方案--------------------------------------------------------
让a.jsp中的a标签点击事件触发后进入Ajax,使用Ajax向Servlet发送请求,得到Servlet返回的xml或者字符串后使用window.location.href("b.jsp")就完成了。
------解决方案--------------------------------------------------------
适合呀,Servlet返回xml,Ajax得到xml后使用DOM操作b.jsp页面进行显示
JScript code
var xmlDoc = xmlHttpRequest.responseXML;//获得Servlet返回的XML文本        var data = "data";//节点名        var count = 0;//计数    //动态添加表格行    do{        count++;//计数自增        data += parseInt(count);//节点名根据计数改变        var node = xmlDoc.getElementsByTagName(data);//XML文本里面的子节点        var num = node.length;//得到的子节点数据长度    相当于查询有几列        row = root.rows.length;        //alert(row+"行");        var newrow = root.insertRow(row);//新增一行        for(var i=0;i<num;i++){            //alert("->"+node[i].firstChild.nodeValue);// 编号 姓名 专长                        var coll = newrow.insertCell(i);//添加列                coll.innerHTML = node[i].firstChild.nodeValue;//列值为得到的数据            coll.align="center";        }
------解决方案--------------------------------------------------------
JScript code
}while(num!=0);//如果数据不为空便循环打印显示
------解决方案--------------------------------------------------------
探讨
不行啊!
关键代码1(指定跳转到servlet类):
<a href="../src/music/action/PersonalPageAction.java" target="_new">进入b.jsp</a>

------解决方案--------------------------------------------------------
1楼说的很对
------解决方案--------------------------------------------------------
你的链接直接跳到源文件去了,怎么不在web.xml中给servlet配置个url呢?
  相关解决方案