如何把servlet的数据传递给JSP页面

0zien0 2012-01-22 10:10:11
我现在用表单可以把JSP的数据传递给servlet接收,servlet用request.getParameter可以接收JSP的表单数据,
然后JSP也可以用<jsp:useBean>来与javabean的get,set方法互通数据,

现在正想知道怎么把servlet处理完javabean后的数据传递回JSP然后在JSP中显示出来
(例如:在JSP把账号密码信息传递给servlet,servlet再调用javabean连接数据库处理账号密码信息,登录成功后,servlet把账号信息返回JSP页面,并在JSP页面显示"欢迎XXX用户登录此网站")

我是新手,希望大家能给予帮助(尽量详细点用什么方法什么语句把servlet的数据传递给JSP页面,谢谢大家)
...全文
24648 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
0zien0 2012-01-23
  • 打赏
  • 举报
回复
感觉两位大神的帮助~!其实我一直不想用绝对路径的,因为这程序做好后要在别人的机器上运行,所以路径不想写死,现在看来只能用request+绝对路径了,问题已解决了~!
MiceRice 2012-01-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a42626423 的回复:]
我原本用forward方法的,但用forward方法转到JSP页面时,原本JSP页面的图片不见了,超链接也连接不上了
[/Quote]

如3楼所说,用sendRedirect,就意味着本次服务彻底结束,浏览器根据sendRedirect的要求,重新发起新的连接,那么request也就是全新的request,必然什么attribute都没有了。

但是如果用forward的话,将面临另一个问题,就是URL仍然是Servlet的URL,那么JSP页面上的图片等资源,必须以Servlet的URL位置来写,否则相对路径就什么都找不到了。所以一般建议JSP里面所有资源和超链接,用绝对路径而非相对路径。


顺便回答你2楼的问题:一个网站是不是只创建一个Servlet.java还是创建多个Servlet.java的?因为如果只创建一个Servlet的话,大量代码就集中在同一个Servlet里面咯??
这就是MVC架构出来的原因,所有代码都集中在一个Servlet里面显然是不合理的。所以MVC架构区分 控制器、模型和视图。建议你参考下Spring-MVC,这个还比较方便。
  • 打赏
  • 举报
回复
直接上ajax
爱摸鱼de老邪 2012-01-22
  • 打赏
  • 举报
回复
转发到jsp视图用sendRedirect?那你肯定取不到任何值了,sendRedirect方法中request对象放入的属性值,不能给跳转到的页面使用,要用forward方法。
0zien0 2012-01-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ldh911 的回复:]

在Servlet中,把需要设置的值对象用 request.setAttribute("name", "value");

在JSP中,可以直接用EL来取值对象,也可以直接:
<%=request.getAttribute("name")%>
<%
String str = request.getAttribute("name");
%>
[/Quote]

又是你,呵呵。一个网站是不是只创建一个Servlet.java还是创建多个Servlet.java的?因为如果只创建一个Servlet的话,大量代码就集中在同一个Servlet里面咯??

刚才按你的方法试了下,获取不到值,显示是null,因为我有2个Servlet的原因???还是我写的位置不对?我写了在DoGet方法里面,下面是简要代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userID = (String)request.getParameter("userID");
request.setAttribute("userID", userID);
response.sendRedirect("View/Graduate_index.jsp");
}

在A.jsp中获取userID,然后经过Servlet处理后,返回userID给B.jsp
在B.jsp中:
欢迎<%=request.getAttribute("userID")%>登陆本网站~!
MiceRice 2012-01-22
  • 打赏
  • 举报
回复
在Servlet中,把需要设置的值对象用 request.setAttribute("name", "value");

在JSP中,可以直接用EL来取值对象,也可以直接:
<%=request.getAttribute("name")%>
<%
String str = request.getAttribute("name");
%>
爱摸鱼de老邪 2012-01-22
  • 打赏
  • 举报
回复
估计是地址的问题吧,你自己看看这篇blog:
http://zzqrj.iteye.com/blog/806909
0zien0 2012-01-22
  • 打赏
  • 举报
回复
RequestDispatcher disp = null;
disp = request.getRequestDispatcher("/View/Home_index.jsp");
是因为我的地址写得不对?
0zien0 2012-01-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 still_rain 的回复:]

转发到jsp视图用sendRedirect?那你肯定取不到任何值了,sendRedirect方法中request对象放入的属性值,不能给跳转到的页面使用,要用forward方法。
[/Quote]

我原本用forward方法的,但用forward方法转到JSP页面时,原本JSP页面的图片不见了,超链接也连接不上了

如果用sendRedirect方法的话,地址是:http://localhost:8080/zpw/View/Home_index.jsp
如果用forword方法的话,地址是:http://localhost:8080/zpw/Servlet

用forword方法他的地址没跳转到JSP页面的地址,那么原来在JSP中的图片和超链接都没效果?
0zien0 2012-01-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 still_rain 的回复:]

转发到jsp视图用sendRedirect?那你肯定取不到任何值了,sendRedirect方法中request对象放入的属性值,不能给跳转到的页面使用,要用forward方法。
[/Quote]

我原本用forward方法的,但用forward方法转到JSP页面时,原本JSP页面的图片不见了,超链接也连接不上了

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧