В соответствии с вашей логикой, я думаю, прежде всего, вы должны поместить тип атрибута как int, будет меньше шансов иметь такой тип, как Pharmacist
и pharmacist
.
Затемпроверка с базой данных корректна, но я не думаю, что то же самое в отношении метода getType, вот что я бы посоветовал вам:
1-й: Создайте одного пользователя bean (объекта), как вы, похоже, сделали, иположить геттеры и сеттеры, и поместить конструктор со всеми атрибутами в качестве параметров.пример:
class User {
private int id;
private String mail;
private String password;
private int type;
public User(){
}
public User(int id, String mail, String password, int type){
this.id = id;
this.mail = mail;
this.password = password;
this.type = type;
}
// Getters and setters
}
Затем вы проверяете, что почта будет возвращать непосредственно объект пользователя, поэтому у вас должно быть
class userDB {
public User login(String mail, String password){
User user = new User();
String query = "select * from user where mail = ? and password = ?";
try{
PreparedStatement prep = conn.prepareStatement(query);
prep.setString(1,mail);
prep.setString(2,password);
ResultSet res = res.executeQuery();
if(res.first){
user = new User(res.getInt("id"),res.getString("mail"),res.getString("password"),res.getInt("type"));
return user;
}else{
return null;
}
}catch (Exception e){
e.printStackTrace();
return null;
}
}
}
, а затем в вашем сервлете вы можете прямо:
class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse respons) throws ServletException, IOException {
this.getServletContext().getRequestDispatcher(your_jsp_relative_path).forward(request, respons);
}
public void doPost(HttpServletRequest request, HttpServletResponse respons) throws ServletException, IOException {
String mail = (String) request.getParameter("mail');
String password = (String) request.getParameter("mail');
User user = new UserDB().login(mail, password);
if(user != null){
int type = user.getType();
switch(type){
case 0 :
respons.sendRedirect("type_0_page");
break;
case 1 :
respons.sendRedirect("type_1_page");
break;
case 2 :
respons.sendRedirect("type_2_page");
break;
default :
repons.sendRedirect("/error500.jsp");
break;
}
}else{
this.getServletContext().getRequestDispatcher(your_jsp_relative_path).forward(request, respons);
}
}
}