有关jsp跳转的问题,一个jsp页面如何一加载主动向servlet发送请求并接收应答并显示接收到的数据

有个问题 研究来研究去没研究明白:我有个jsp页面,来显示数据库中的数据,目的是一进这个页面就显示好,有一种方法是在right.jsp页面里面调用处理数据的model来显示,但是我不想把业务逻辑放到right.jsp中,想放到servlet里去调用model处理,再回显给jsp;棘手的是,这个right.jsp是在主页里通过jsp include page引入的……单独通过servlet访问这个right.jsp没问题,可我想在一访问主页是index.jsp时就让right.jsp去向servlet发送请求,并回转数据给自己显示出来。
在servlet中的处理代码如下
if(flag.equals("show")){//标志位来判断从right.jsp传来的请求是要做什么操作
//接收right页传来的pageNow参数及指定的pageSize,来显示页面
try{
ArrayList<GoodsBean> al = new ArrayList<GoodsBean>();
s_pageNow = request.getParameter("pageNow");
if(s_pageNow!=null){
pageNow = Integer.parseInt(s_pageNow);
}
al = gbbo.getGoodsByPage(pageNow, pageSize);
request.setAttribute("goods", al);
System.out.println("执行到此");
request.getRequestDispatcher("right.jsp").forward(request, response);
下面是right.jsp的头代码
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
//此处抛出空指针异常,我知道是没有穿参数的原因,我单独在浏览器里访问servlet并加上参数可以正常访问right.jsp,就是不知道怎么才能让right.jsp一加载就自己取访问servlet并给自己回显
ArrayList<GoodsBean> al = (ArrayList<GoodsBean>)request.getAttribute("goods");
//得到共有多少页
int pageCount = (Integer)request.getAttribute("pageCount");
%>

两种方法吧
一种用AJAX,给它一个onload事件,一进入这个页面,它就会向SERVLET发送一个请求,把数据封装到一个内置对象以后,再返回,自然就有数据了。
还有一种,可以用OGNL表达式,它可以在页面加载的时候直接调servlet里面的静态方法,可以达到同样的效果。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-02
比如你的servlet地址是 HelloSer
1可以用超链接<a href="/XXX/HelloSer?参数。。"/>

2也可以用表单<form action="/HelloSer"/> 表单里面的参数都会通过点击submit按钮时提交

3另外也可以用jsp的<c:url>标签追问

超链接需要去点啊……表单至少也得需要回车一下才会提交……right.jsp是作为主页的一个显示区域

追答

你好,据我所知 include page 可以带参数的。你试试看

本回答被网友采纳
第2个回答  2012-12-02
这样你要多写一个jsp了,如首页index.jsp里面用如:<jsp:include page=”right.jsp” flush=”true” />的标签引用另一个要经过servlet处理过后的jsp,如果有参数你还可以这样设置
<jsp:include page=” 你要反问的jsp路径“ flush=”true” >
<jsp:param name=”fitstParamer” value=”firstValue”>
<jsp:param name=”lastParamer” value=”lastValue”>
</jsp:include>
原因是这样的,include行为元素是在请求处理阶段执行的(此处要对 请求处理阶段进行说明一下,Jsp容器除了上面提到的负责将jsp页面转化成servlet外,还负责调用jsp页面实现类以处理每个请求并产生应答.这 个阶段我们就称为请求处理阶段,所以在我们作include行为元素引入页面时,实际只是引用了right.jsp这个文件被转化并被编译后产生的servlet类文件,重点是就在这个servlet中可以执行访问数据库的操作后把执行的结果 返回到index.jsp页面显示。所以这是要在index.jsp引用include标签才能达到你要的效果。明白了吧?。。追问

有一个参数是容器……

追答

什么?能不能具体点。

第3个回答  2020-03-15
跳转有两种方式,重定向与转发。
重定向可以使用httpservletresponse对象

response.sendredirect(\"xxx.jsp\");
//参数为url地址
上面方法如同js的location.href=\"xxx.jsp\";
转发使用httpservletrequest对象
request.getrequestdispatcher(\"xxx.jsp\").forward(request,
response);
转发则把请求交给jsp页来处理

jsp页面跳转另一个jsp(jsp页面跳转另一个jsp和地址栏输入才跳转)
也可以在后台servlet中使用重定向例如response.sendRedirect("xxx.jsp");也可以使用转发例如request.getRequestDispatcher("xxx.jsp").forward(request.response);怎么在JSP中跳转到别一页面在JSP中使用jspforwardAction来实现页面的跳转功能 语法 jsp:forwardpage="{relativeURL|%=expression%}"\/或 jsp:forwa...

JSP+Servlet 页面加载时请求数据库,获取信息并显示到页面上,如何处理...
兄弟,我想说你理解上有错误,想要在jsp页面显示数据库数据,一般是先到一个servlet进行取数据处理,把取到的数据设到request中去,然后请求转发到jsp页面,jsp页面通过el表达式即可获取数据,你要记住这个流程。而不是你说的进入到该页面时,立即请求数据。没有必要进入到页面在请求数据,只需要在进入页面...

在一个jsp页面中如何通过点击一个按钮转到另一个jsp页面
那你就把链接改成按钮然后在上面挂个js事件就可以了。这样的效果可以:onclick="window.location='新页面'" 来实现。1.在原来的窗体中直接跳转用,代码:window.location.href="你所要跳转的页面"。2、在新窗体中打开页面用,代码:window.open('你所要跳转的页面');window.history.back(-1)。返...

JSP页面如何从一个页面传递一个参数到另外一个页面。
(2).另一种跳转是转发,这种跳转request对象就被传往下一个页面,可以用<jsp:forward page="\/a.jsp"\/>,这样你可以把参数用request.setAttribute()方法存进request对象里,再到下一个页面用request.getAttribute()得到参数.两种方法最明显的区别是,重定向跳转当你从a.jsp到b.jsp页面的时候,地址栏的地址...

...上弹出对话框提示用户输入错误,如何在后台servlet中操作
想验证用户密码是否正确?有个很简单的办法。直接提交表单,在servlet里面用request.setAttribute(“k”,"v")存放结果,然后在页面上直接获得接口。也可以用ajax提交表单,然后返回一个map,alert出来。

在JSP中,当添加信息成功后跳转回主页面并弹出操作成功提示框_百度知 ...
这样:< if((String)request.getAttribute("info")=="success"){%> alert("添加活动成功!"); <%}%>

如何实现jsp本页面跳转
Jsp页面跳转的第三种方式:转发 转发分两种方法: 1.jsp自带的forword标签来实现跳转 代码如下: jsp:forward page="page2.jsp" \/ 如图:2.jsp中写java代码实现跳转 代码如下: % request.getRequestDispatcher("page2.jsp").forward(request, response);% 如图:Jsp页面跳转的...

怎么在一个JSP页面打开时就加载servlet
有很多方法:一、异步加载,用ajax或jquery的post方式。二、用struts的action标签,页面一加载就执行一个action, 不过用servlet就没用了。三、用jsp的forward标签,作用同上。四、用过滤器或拦截器,拦截jsp执行前先执行需要的servlet。

jsp页面跳转续问,请高手作答
也就意味着你的开始寻址位置是\/B中,但是client不在B中,所以要往上一层才找到client目录,进去以后才找到login.jsp 同样的目录结构但是要根据实际地址找地址,就像找人一样 常见的超链接也是客户端跳转,你都用html的话当然也就不存在服务器端跳转,也就不存在路径的复杂问题,你是用servlet开发,或者相关的...

jsp开发中两种跳转的区别
在JSP和Servlet开发中,重定向和转发是两种常用的页面跳转方式,它们在实现机制、使用场景和效果上有所不同。1. 实现机制:重定向是通过HTTP协议中的重定向机制实现的,当服务器需要重定向到另一个资源时,会向浏览器发送一个特殊的响应,告诉浏览器去请求新的地址,浏览器的地址栏会显示新的URL。而...

相似回答