两个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楼说的很对
------解决方案--------------------
你的链接直接跳到源文件去了,怎么不在web.xml中给servlet配置个url呢?