我需要使用 servlet 来验证登录名/密码。那已经很好了。
我在 DAO 类中有一个方法,它通过 prepareStatement 返回值的结果集列表。
我正在使用一个带有 where 子句(按用户名)的过滤结果的查询。
问题是:如何获取 servlet 参数(登录用户的名称)并将其设置在 prepareStatement 上?
代码如下:
public class DaoPojoJoin extends Dao {
public List<PojoJoin> listUserDegrees() {
List<PojoJoin> dg = new ArrayList<PojoJoin>();
if (openConnection()) {
try {
st = cn.prepareStatement("SELECT USER, MATTER, DEGREE FROM DEGREES x "
+ "right outer join USERS y on x.idUser=y.idUser "
+ "right outer join MATTER z on idMatter=z.idMatter "
+ "where x.iduser=?"); // filter result by user's name
// How can I have something like this:
// st.setString(1,usr.request.getParameter("user"));
// or this:
// st.setString(1,.getAttribute(user));
rs = st.executeQuery();
while (rs.next()) {
PojoJoin pj = new PojoJoin();
rs.getString("USER");
rs.getString("MATTER");
rs.getDouble("DEGREE");
pj.setUsuario(rs.getString("USER"));
pj.setDisciplina(rs.getString("MATTER"));
pj.setNota(rs.getDouble("DEGREE"));
nota.add(pj);
}
} catch (Exception ex) {
err = ex.getMessage();
} finally {
closeConnection();
}
}
return dg;
}
}
提前致谢。