ログイン/パスワードを検証するためにサーブレットを使用する必要があります。それはもういいです。
DAO クラスに、prepareStatement を介して値の resultSet リストを返すメソッドがあります。
このフィルター処理された結果を where 句 (ユーザーの名前) で取得するクエリを使用しています。
問題は、サーブレット パラメータ (ログインしたユーザーの名前) を取得し、それを 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;
}
}
前もって感謝します。