Я новичок в Hibernate и Servlets, я работаю над очень маленьким проектом, в котором пользователи могут бронировать номера в отеле.
Я могу успешно зарегистрироваться / создать учетную запись,но я не могу войти в систему.
Я пытался использовать критерии критериев в классе DAO, но это не удается с java.lang.ClassCastException .
Имя пользователя и пароль со страницы login.jsp отправляются сервлету Login , где создается новый объект DAO и извлеченные имя пользователя и пароль передаются его методу.
DAO использует критерии запросов, чтобы проверить, присутствует ли пользователь в базе данных, и возвращает логическое значение, сервлет Login проверяет возвращенное логическое значение и перенаправляет, если оно истинно.
Сервлет входа в систему:
String uname = request.getParameter("uname");
String pass = request.getParameter("pass");
HttpSession session = request.getSession(true);
try
{
UserLoginDAO uldao = new UserLoginDAO();
boolean login = uldao.checkUserLogin(uname, pass);
if(login==true)
{
response.sendRedirect("room.jsp");
}
else
{
response.sendRedirect("index.jsp");
}
} catch (Exception e)
{
e.printStackTrace();
}
Класс DAO:
public boolean checkUserLogin(String uname,String pass)
{
boolean login=false;
try {
Configuration cfg = new Configuration().configure().addAnnotatedClass(User.class);
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
Transaction tr = session.beginTransaction();
CriteriaBuilder builder = session.getCriteriaBuilder();
CriteriaQuery<String[]> criteriaquery = builder.createQuery(String[].class);
Root<User> root = criteriaquery.from(User.class);
Path<String> usernamePath = root.get("userName");
Path<String> passwordPath = root.get("password");
criteriaquery.multiselect(usernamePath,passwordPath);
Query<String[]> query = session.createQuery(criteriaquery);
List<String[]> list = query.list();
for(String[] s:list)
{
if(s[0].equals(uname) && s[1].equals(pass))
{
login=true;
}
else
{
login=false;
}
}
tr.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return login;
}
Когда я пытаюсь войти, веб-браузер перенаправляет наЛогин сервлета и останавливается с java.lang.ClassCastException .Большинство онлайн-уроков используют jdbc вместо Hibernate.Есть ли простой способ реализовать вход в Hibernate?