servlet向 jsp传值的问题

以下是我写的在servlet的代码:publicvoiddoPost(HttpServletRequestrequest,HttpServletResponserespo... 以下是我写的在servlet的代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

HttpSession session = request.getSession();
String name1 = request.getParameter("name");
List arrlist1 = new ArrayList();
arrlist1=Arrylistdb.Arr();
for(int i=0;i<arrlist1.size();i++){
Userbean use = (Userbean)arrlist1.get(i);
int id=use.getId();
String name = use.getUname();
session.setAttribute("id",String.valueOf(id));
session.setAttribute("uname", name);
}
response.sendRedirect("userinfo.jsp");

}
我是用arrlist装了10组然后用循环一个一个往session传的,在这之前我看到session里确实装了10组信息但是我再往jsp页传的时候只显示了最后一条信息,以下是我的jsp代码
<tr>
<%
for(int i=0;i<10;i++){%>
<% Object id= session.getAttribute("id");
Object uname=session.getAttribute("uname");%>
<td height="20" align="center"><%=id%></td>
<td height="20" ><%=uname%></td>
<td height="20" align="center">
<%}%>
</td>
</tr>
请高手帮我改一下,详细些谢谢。
此外我还想在jsp上加个查询按钮可根据输入的id或name查询并显示在页上,这个不算在本问题内可追加20分
我比较笨啊,思想我也知道啊,不会写,能不能有代码那种啊详细些,谢谢哥哥了
展开
 我来答
wg84cn
推荐于2016-09-18 · TA获得超过499个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:318万
展开全部
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    HttpSession session = request.getSession();
    String name1 = request.getParameter("name");
    List arrlist1 = new ArrayList();
    arrlist1=Arrylistdb.Arr();
    request.setAttribute("userList", arrlist1);//将整个结果集放入request,没必要放到session,耗资源
    //for(int i=0;i<arrlist1.size();i++){
    //    Userbean use = (Userbean)arrlist1.get(i);
    //    int id=use.getId();
    //    String name = use.getUname();
    //    session.setAttribute("id",String.valueOf(id));
    //    session.setAttribute("uname", name);
    //}
    response.sendRedirect("userinfo.jsp");
}

/********userinfo.jsp**********/
<% java.util.List userList = (java.util.List)request.getAttribute("userList");
for(int i=0;i<userList.size();i++){ %>
<tr>
<% Userbean user = (Userbean)userList.get(i); %><!-- 取出结果集的每一个,强制转化成Userbean -->
<td height="20" align="center"><%=user.getId(); %></td>
<td height="20" ><%=user.getUname(); %></td>
<td height="20" align="center"></td>
</tr>
<% } %>

<form action="queryById.do">
    <input type="textField" name="userId" />
    <input type="submit" />
</form>

/********queryById.do所对应的Servlet**********/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    String userId = request.getParameter("userId");
    List userlist = Arrylistdb.queryById(userId);
    request.setAttribute("userlist", userlist);//将整个结果集放入request
    response.sendRedirect("userinfo.jsp");
}
陆北梁丘伟兆
2019-06-26 · TA获得超过3747个赞
知道大有可为答主
回答量:3052
采纳率:27%
帮助的人:209万
展开全部
我做购物车项目时查询产品列表都是把数据库查询结果保存到一个集合里,再在会话中保存这个结合对象,这样也方便遍历啊!
如果严格的按照MVC的模式来讲,楼主你违反规则了!你把业务层代码写到了控制层和表现层,这样对代码的维护会产生很大的难度,你应该知道什么叫松耦合吧?
秀才说的对!别乱用结果集对象!根本没你这么用的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8ce530f517d
2008-04-07 · TA获得超过601个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:0
展开全部
解释 如同ls
因为 lz 是想把 user 的id,name传到页面,因为是好多组,所以,可以把每次去到的 id,name 先放到map 里面,然后追加到 list里面
然后再页面就可以循环出来了

List userList = new ArrayList();
for(int i=0;i<arrlist1.size();i++){
Userbean use = (Userbean)arrlist1.get(i);
Map map = new HashMap();
map.put("id",use.getId());
map.put("name",use.getId());
userList.add(map);
}
session.setAttribute("userList", userList);

第二个问题,你可以用2个 text 然后 从后台获取参数,然后 放入到查询语句里面,这个应该很简单。

还有个不太好的方法就是,你可以 吧从页面获取的id 传到后台后,通过session 把上次 保存的 userList 取出来,然后循环判断 该id 是否在里面,然后输出来,也可以的 基本思想就是这样的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fa6f888
2008-04-07 · TA获得超过1056个赞
知道小有建树答主
回答量:519
采纳率:0%
帮助的人:518万
展开全部
....你这种做法当然只能得到最后一次的数据.
for(int i=0;i<arrlist1.size();i++){
Userbean use = (Userbean)arrlist1.get(i);
int id=use.getId();
String name = use.getUname();
session.setAttribute("id",String.valueOf(id));
session.setAttribute("uname", name);
}
你在这一段的意图是用循环想把所有的东西全放在session中吧,但是每次循环都是以id ,name 为名字的,所以前一次的记录也就被覆盖掉了.最后只能得到最后一次的结果.对于向页面传list的做法是直接把list放到request(session,..)中,到页面再做处理,得到你想要的结果.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhh5919
2008-04-07 · TA获得超过330个赞
知道小有建树答主
回答量:483
采纳率:100%
帮助的人:513万
展开全部
lz如何是传name,id的话 直接传对象就行了
request.setAttribute("uList",arrList1);
rquest.getRequestDispatcher("userinfo.jsp").forward(request,response);

然后在jsp中
ArrayList uList = (ArrayList)request.getParameter("uList");

别忘了造型,session数据的生存周期比request长 如果只是页面之间传值就用request
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式