我是新來的java我希望使用switch語句進行基於角色的訪問,但是當我執行查詢並提供用戶角色(例如用戶或管理員),然後用戶登錄並且如果我離開(角色='')然後查詢不會執行得那麼好,並跳入else語句。第二,如果我使用準備好的語句,那麼我怎麼能得到用戶角色謝謝。這是我的代碼。如何在jsp中使用查詢獲取用戶角色?
<%
String userid = request.getParameter("username");
String pwd = request.getParameter("password");
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/auto_lube","root", "password");
Statement st = con.createStatement();
ResultSet rs;
rs = st.executeQuery("select * from users where uname='" + userid + "' and pass='" + pwd + "' and role=''");
if (rs.next()) {
String username = rs.getString("uname");
String email = rs.getString("email");
String rolle = rs.getString("role");
session.setAttribute("customer_name", username);
int usser = rs.getInt("id");
session.setAttribute("customer_id", usser);
switch(rs.getInt(rolle)) {
case 1:
if (rolle.equals("admin")) {
response.sendRedirect("adminPage.jsp");
break;
}
case 2:
if (rolle.equals("user")) {
response.sendRedirect("user.jsp");
}
break;
case 3:
if (rolle.equals("assistant")) {
response.sendRedirect("assistant.jsp");
}
break;
case 4:
if (rolle.equals("supplier")) {
response.sendRedirect("supplier.jsp");
}
break;
default:
break;
}
} else {
out.print("invalid");
}
%>
st.executeQuery(「SELECT * FROM users uname ='「+ userid +」'和pass ='「+ pwd +」'和role =''「); SQL注入源 – StanislavL 2014-11-04 06:53:15
如果您沒有傳遞任何角色,那麼您可以將其重定向到users.jsp,並且您的控件不應該出現在JDBC代碼中。 – 2014-11-04 06:56:00
我推後雙角色角色顯示錯誤 – 2014-11-04 06:56:59