我从java开始,我很难实现登录。 我希望我的servlet以不同的方式重定向用户,具体取决于角色(在DB中注册) 我尝试了很多不同的版本,我进行了最后的尝试。 我不明白为什么不起作用(如果我以管理员身份登录用户的页面上的servlet重定向) 如果还有其他错误(也是合乎逻辑的)请告诉我。我想改进。 谢谢大家的答案。
我的道:
public String esisteAccount (Account a) {
Account acc = new Account();
String query = "SELECT * FROM account WHERE username = '?' and password='?'";
query=query.replaceFirst("[?]", (a.getUsername()));
query=query.replaceFirst("[?]",(a.getPassword()));
Vector<Object> v =db.executeSelect(query, "Account");
acc = (Account)v.get(0);
String ruolo;
if (v.size()>0){
ruolo=acc.getRuolo();
}
else {
ruolo="nonAutorizzato";
}
return ruolo;}
我的dbManager
if ( type.equals("Account") )
{
Account a;
a = new Account();
a.setUsername( rs.getString("username") );
a.setPassword( rs.getString("password") );
a.setRuolo( rs.getString("ruolo") );
v.add(a);
}
和我的servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
String password=request.getParameter("password");
Account a = new Account();
a.setUsername (username);
a.setPassword (password);
AccountDAO accountDAO =new AccountDAO();
String esito= accountDAO.esisteAccount(a);
if (esito=="nonAutorizzato"){
request.getRequestDispatcher("../errore.jsp").forward(request, response);
}
else {
HttpSession session=request.getSession();
if (esito=="Admin"){
session.setAttribute("autorizzatoAdmin","true");
request.getRequestDispatcher("autorizzatoAdmin.jsp").forward(request, response);
}
else{
session.setAttribute("autorizzato","true");
request.getRequestDispatcher("indexPL.jsp").forward(request, response);
}
}
答案 0 :(得分:2)
这是问题
if (esito=="Admin")
用算术运算符检查两个字符串是不正确的。 而不是像这样使用。
if (esito.equalsIgnoreCase("Admin"))