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

有个问题研究来研究去没研究明白:我有个jsp页面,来显示数据库中的数据,目的是一进这个页面就显示好,有一种方法是在right.jsp页面里面调用处理数据的model来显示... 有个问题 研究来研究去没研究明白:我有个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");
%>
展开
 我来答
轻轻的子衿
推荐于2018-05-14 · 超过31用户采纳过TA的回答
知道答主
回答量:106
采纳率:100%
帮助的人:72.4万
展开全部
两种方法吧
一种用AJAX,给它一个onload事件,一进入这个页面,它就会向SERVLET发送一个请求,把数据封装到一个内置对象以后,再返回,自然就有数据了。
还有一种,可以用OGNL表达式,它可以在页面加载的时候直接调servlet里面的静态方法,可以达到同样的效果。
诅咒精髓
2012-12-02 · TA获得超过1019个赞
知道小有建树答主
回答量:798
采纳率:0%
帮助的人:712万
展开全部
比如你的servlet地址是 HelloSer
1可以用超链接<a href="/XXX/HelloSer?参数。。"/>

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

3另外也可以用jsp的<c:url>标签
追问
超链接需要去点啊……表单至少也得需要回车一下才会提交……right.jsp是作为主页的一个显示区域
追答
你好,据我所知 include page 可以带参数的。你试试看
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jianfulove
2012-12-02 · TA获得超过426个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:115万
展开全部
这样你要多写一个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标签才能达到你要的效果。明白了吧?。。
追问
有一个参数是容器……
追答
什么?能不能具体点。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鄢绿竺元英
2020-03-15 · TA获得超过4136个赞
知道小有建树答主
回答量:3128
采纳率:32%
帮助的人:198万
展开全部
跳转有两种方式,重定向与转发。
重定向可以使用httpservletresponse对象

response.sendredirect(\"xxx.jsp\");
//参数为url地址
上面方法如同js的location.href=\"xxx.jsp\";
转发使用httpservletrequest对象
request.getrequestdispatcher(\"xxx.jsp\").forward(request,
response);
转发则把请求交给jsp页来处理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式