jsp 从servlet到jsp传值

这是我自己写的jsp部分,不过有错误<tablewidth="600"border="1"><!--以下代码显示用户信息--><tr><td>学号</td><td>姓名<... 这是我自己写的jsp部分,不过有错误
<table width="600" border="1">
<!-- 以下代码显示用户信息 -->
<tr>
<td>学号</td>
<td>姓名</td>
<td>课程</td>
<td>学分</td>
<td>成绩</td>
</tr>
<%
ResultSet rsAll = dao.showInfo();
while(rsAll.next()){
%>
<tr>
<td>${sno}</td>
<td>${sname}</td>
<td>${cname}</td>
<td>${credit}</td>
<td>${grade}</td>
</tr>
<%
}
%>
</table>

这是servlet部分,没有错误
public void showInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
response.setCharacterEncoding("GBK");
PrintWriter out = response.getWriter();

System.out.println("进入showInfo的Servlet");

ResultSet rsAll = null;
rsAll = dao.showInfo();
HttpSession session = request.getSession();
session.setAttribute("rs", rsAll);
try {
while(rsAll.next()){
session.setAttribute("sno", rsAll.getString(1));
session.setAttribute("sname", rsAll.getString(2));
session.setAttribute("cname", rsAll.getString(3));
session.setAttribute("credit", rsAll.getString(4));
session.setAttribute("grade", rsAll.getInt(5));
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
RequestDispatcher rd = request.getRequestDispatcher("main.jsp");
rd.forward(request, response);
}

我的问题就是在jsp页面上循环输出servlet中的数据,如果不设置循环的话只输出一个学生的,我想要的是输出多名同学的,最好在jsp页面没有java代码
展开
 我来答
mxh快乐
2011-12-05 · TA获得超过366个赞
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:108万
展开全部
你是不是想把查询结果在页面上都显示出来。首先你要在servlet中调用DAO下的方法(mvc开发模式 ,不用框架的dao开发模式)
public class UserDAO(){
public ArrayList<Bean名称>getAllUserQuery(){
ArrayList<Bean名称> array = new ArrayList<Bean名称>();
String sql = "select * from 表名";
ResultSet rs = null;
Connection conn = //你自己连接数据库的工具类,创建好连接,返回conn.
PreparedStatement pstat = pstat = conn.prepareStatement(sql);
rs = pstat.executeQuery();
StudentBean student = null;
while(rs.next()){
student =new StudentBean();
//把查出的数据封装到Bean里,比如叫 StudentBean(封装了属性,有get,set方法)
array .add(student );
}
return array;
}
} //没用开发工具写,中间还要写异常处理语句,在myeclipse下点点就有了。

然后在servlet中调用这个类中的方法,获得一个ArrayList,
用一个ArrayList接收。 例如叫 array
request.setAttribute("AllStudent", array);
request.getRequestDispatcher("jsp界面的名字").forward(request,
response);

<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
在jsp界面加上这句,可以用jstl表达式。

<c:forEach items="${requestScope.AllStudent}" var="Bean">
<tr>
<td>
{Bean.sno}
</td>
{Bean.sname}

<td>
{Bean.cname}
</td>
<td>
{Bean.credit}
</td>
<td>
{Bean.grade}
</td>

</tr>
</c:forEach>

用foreach 循环 把所有信息显示出来
,凭空写的,肯定有错误,只可参考。
姚贺姚贺姚贺
2011-12-05 · 超过15用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:44.7万
展开全部
jsp就是java+html,jsp页面里没java代码的我不会,有java代码的给你个建议:你的代码应该是输出的若干行同一个学生的信息吧?修改如下:在servlet里sessio.setAttribute("rs",rsAll);
然后jsp里接受:ResultSet rsAll=session.getAttribute("rs");然后就是循环输出了,简单的说就是把session里保存ResultSet对象就行了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gegecuicui
2011-12-05 · TA获得超过616个赞
知道小有建树答主
回答量:802
采纳率:0%
帮助的人:496万
展开全部
servlet里呢 你就返回一个list
request.setAttribute("datelist",datelist);

jsp中呢: if(request.getAttribute("datalist")!=null){
ArrayList<Student> list=(rrayList<Student>)request.getAttribute("datalist");
}
这样你就得到你的学生list了 遍历吧
没有java代码啊 你就去用 jstl 或者 ognl了
追问
哈哈,我的意思就是JSTL,我再servlet里就设置了session.setAttribute("rs", rsAll);
只是不知道传到JSP页面怎么处理,rs是ResultSet类型的,应该也是集合,关键是到了jsp页面用JSTL鄙视就不行了,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yf900917
2011-12-05 · 超过11用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:30.6万
展开全部
不要java代码的话,可以用JSTL和EL表达式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式