お世話になります。
java始めて4か月の初心者です。
以下のソースに載っている部分のboolean型の使い方が今まで見てきたものと形が違うので困っています。
おそらく、前ページから情報(userとpass)を取得しその値もしくは文字列がが同一であればtrueを返すとかそういう意味なんでしょうが、その前についているauthUserというのがよくわかりません。
一体これは普通は何を示したもので次のif文であるif(check)の部分ではcheckの中身がtrueであるならばという意味になるのでしょうか?
java
1boolean check = authUser(user, pass); 2 if (check){ 3 /* 認証済みにセット */ 4 session.setAttribute("login", "OK"); 5 6 /* 本来のアクセス先へ飛ばす */ 7 String target = (String)session.getAttribute("target"); 8 response.sendRedirect(target); 9 }else{ 10 /* 認証に失敗したら、ログイン画面に戻す */ 11 session.setAttribute("status", "Not Auth"); 12 response.sendRedirect("/auth/Login"); 13 } 14 }
こちらより以下が上記のコードの全文です。
java
1import java.io.*; 2import javax.servlet.*; 3import javax.servlet.http.*; 4import java.sql.*; 5 6public class LoginCheck2 extends HttpServlet { 7 protected Connection conn = null; 8 9 public void init() throws ServletException{ 10 String url = "jdbc:mysql://localhost/auth"; 11 String user = "authtest"; 12 String password = "authtest"; 13 14 try { 15 Class.forName("com.mysql.jdbc.Driver").newInstance(); 16 conn = DriverManager.getConnection(url, user, password); 17 }catch (ClassNotFoundException e){ 18 log("ClassNotFoundException:" + e.getMessage()); 19 }catch (SQLException e){ 20 log("SQLException:" + e.getMessage()); 21 }catch (Exception e){ 22 log("Exception:" + e.getMessage()); 23 } 24 } 25 26 public void destory(){ 27 try{ 28 if (conn != null){ 29 conn.close(); 30 } 31 }catch (SQLException e){ 32 log("SQLException:" + e.getMessage()); 33 } 34 } 35 36 public void doPost(HttpServletRequest request, HttpServletResponse response) 37 throws IOException, ServletException{ 38 39 response.setContentType("text/html; charset=Shift_JIS"); 40 PrintWriter out = response.getWriter(); 41 42 String user = request.getParameter("user"); 43 String pass = request.getParameter("pass"); 44 45 HttpSession session = request.getSession(true); 46 47 boolean check = authUser(user, pass); 48 if (check){ 49 /* 認証済みにセット */ 50 session.setAttribute("login", "OK"); 51 52 /* 本来のアクセス先へ飛ばす */ 53 String target = (String)session.getAttribute("target"); 54 response.sendRedirect(target); 55 }else{ 56 /* 認証に失敗したら、ログイン画面に戻す */ 57 session.setAttribute("status", "Not Auth"); 58 response.sendRedirect("/auth/Login"); 59 } 60 } 61 62 protected boolean authUser(String user, String pass){ 63 /* 取りあえずユーザー名とパスワードが入力されていれば認証する */ 64 if (user == null || user.length() == 0 || pass == null || pass.length() == 0){ 65 return false; 66 } 67 68 try { 69 String sql = "SELECT * FROM user_table WHERE user = ? && pass = ?"; 70 PreparedStatement pstmt = conn.prepareStatement(sql); 71 72 pstmt.setString(1, user); 73 pstmt.setString(2, pass); 74 ResultSet rs = pstmt.executeQuery(); 75 76 if (rs.next()){ 77 return true; 78 }else{ 79 return false; 80 } 81 }catch (SQLException e){ 82 log("SQLException:" + e.getMessage()); 83 return false; 84 } 85 } 86}
回答2件
あなたの回答
tips
プレビュー