如何将一个jsp页面上的数据库中的值传递给另一个jsp页面?

时间:2014-07-31 03:06:03

标签: sql jsp servlets

在一个页面上,我从我的数据库中显示了一个表,用户选择了一个部门。根据该选项,下一页将显示该部门内的项目。有没有办法可以将部门ID从第1页传递到第2页的SQL查询,以便只显示该部门的项目?

我唯一知道的是使用

打印页面上的部门编号
    <%=session.getAttribute("deptid")>;

第一页:

    <table>
    <tr>
        <td>Select Department</td>
        <td><select name="deptid">
        <option value="select">select</option>
        <%
            while(rs.next()){
                String deptid= rs.getString("deptid");
        %>
        <option value=<%=deptid%>><%=deptid%></option>
        <%
            }
    }catch(SQLException sqe){
        out.println("showcourses"+sqe);
    }
        %>
        </select></td>
    </tr>
</table>

这是一个连接器JSP页面

    String sql = "select * from courses where deptid=?";

String deptid= request.getParameter("deptid");

if(!(deptid.equalsIgnoreCase("select"))){
    try{
        Class.forName(driverName);
        con = DriverManager.getConnection(url, user, dbpsw);
        ps = con.prepareStatement(sql);
        ps.setString(1, majorid);
        rs = ps.executeQuery();
        if(rs.next()){ 
            userdeptid = rs.getString("deptid");
            System.out.println(userdeptid );

            if(deptid.equals(userdeptid )){
                session.setAttribute("deptid",userdeptid);
                response.sendRedirect("showitems.jsp");
            }
        }else
            response.sendRedirect("error.jsp");
        rs.close();
        ps.close(); 
    } catch(SQLException sqe){
        out.println(sqe);
    } 
}

%GT;

1 个答案:

答案 0 :(得分:0)

将所有内容包裹在<form>元素中还添加提交按钮(我将name的{​​{1}}更改为select以避免混淆:

selected_dept_id

您可以<form action="second_page.jsp" method="get"> <table> <tr> <td>Select Department</td> <td><select name="selected_dept_id"> <option value="select">select</option> <% while(rs.next()){ String deptid= rs.getString("deptid"); %> <option value=<%=deptid%>><%=deptid%></option> <% } }catch(SQLException sqe){ out.println("showcourses"+sqe); } %> </select></td> </tr> </table> <input type="submit" value="Show Items" /> </form> querying request parameters之前的second_page.jsp获取所选部门:

reqeust.getParameter("selected_dept_id");

另外,将用户输入发送到数据库时要小心。它可以用于SQL注入攻击。请参阅Preventing SQL Injection in Java上的这篇文章。