В моем проекте я получаю результат запроса из базы данных в свой сервлет и передаю результат в JSP после установки атрибута для ResultSet
и последующего доступа к нему в JSP. Но каким-то образом я могу установить и получить доступ ко всем другим своим атрибутам в JSP и сервлеты, кроме ResultSet.
Итак, вот моя функция доступа к базе данных getcart()
public static ResultSet getCart(int item,int cust){
ResultSet rs=null,res=null;
String i_name;
int price;
try{
rs=stmnt.executeQuery("SELECT i_name,price FROM items WHERE i_id="+item);
rs.next();
i_name=rs.getString(1);
price=rs.getInt(2);
stmnt.executeUpdate("INSERT INTO cart(prod,price,c_id,i_id) VALUES('"+i_name+"',"+price+","+cust+","+item+")");
res=stmnt.executeQuery("SELECT prod,price,count(*) FROM cart WHERE c_id="+cust+" GROUP BY i_id");
res.next();
}catch(SQLException e){}
return res;
}
Вот JSP
<%ResultSet r=(ResultSet)request.getAttribute("cart");%>
<div id="pageContent">
<div style="margin:24px; text-align:left;"><br />
<table width="100%" border="2" cellspacing="0" id ="table1">
<tr>
<td width="15%" bgcolor="#000000" align="center"><strong>Product</strong></td>
<td width="10%" bgcolor="#000000" align="center"><strong>Price</strong></td>
<td width="12%" bgcolor="#000000" align="center"><strong>Quantity</strong></td>
<!--<td width="9%" bgcolor="#000000" align="center"><strong>Total</strong></td>-->
</tr>
<%while(r.next()){%>
<tr class="spaceUnder">
<td width="15%" bgcolor="#FFFFFF" align="center"><font color="#000"> <%=re.getString(1)%></font></td>
<td width="10%" bgcolor="#FFFFFF" align="center"><font color="#000"> <%=re.getInt(2)%></font></td>
<td width="12%" bgcolor="#FFFFFF" align="center"><font color="#000"> <%=re.getInt(3)%> </font></td>
</tr>
<%}%>
</table>
<div class="container">
<left><h3 style="color:#FFFFF;padding-top:30px;"><font color="#000">Total: <%=total%> </font></h3></left>
</div>
</div>
</div>
А вот фрагмент сервлета:
res=accessDB.getCart(it,ci);
request.setAttribute("cart",res);
view=request.getRequestDispatcher("cart.jsp");
view.forward(request, response);
Я не знаю, ЧТО происходит?? Я потратил на это много времени. И моя база данных не пуста. Так что res.next() действителен.
Одна вещь работает. Когда я разбиваю свой ResultSet
в своем коде сервлетов, используя getInt
и getString
, а затем отправляю их в JSP по отдельности вместо отправки всего ResultSet
, тогда getAttribute
в JSP работает, и я могу распечатать свой результат. Но не делайте этого. знаю, почему весь ResultSet
не идет. Я использую Netbeans 8.0.1.
Пожалуйста помоги.
session.setAttribute("cart", res);
(вы можете получить HttpSession, выполнивrequest.getSession().setAttribute("cart");
Затем извлеките его в свой jsp, напримерsession.getAttribute("cart");
, затем удалите его из сеанса в своем jsp после извлечения, напримерsession.removeAttribute("cart");
- person brso05   schedule 12.11.2014SELECT RING_BELL...WHERE ID=1; DROP TABLE BELLS --
. - person Boris the Spider   schedule 12.11.2014