자바 코드좀 봐주세요
-
게시물 수정 , 삭제는 로그인 필요
HiddenFieldLogIn.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Hidden Field 방식의 로그인입니다.</title>
</head>
<body>
<form action="HiddenFieldCert.jsp" method="post">
아이디와 비밀번호를 입력하십시오<hr/>
<table border="1">
<tr>
<td align="center">아이디</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td align="center">비밀번호</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="로그인"/> </td>
</tr>
</form>
<form action="SignIn.jsp" method="post">
<td colspan="2" align="right">
<input type="submit" value="회원가입"/></td>
</form>
</table>
</body>
</html>
HiddenFieldLoginChk.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Hidden Field 방식을 이용한 세션관리</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("username");
String pw = request.getParameter("password");
String grade;
String grade_name;
%>
<%
if ( id==null || pw == null || id.trim().equals("") || pw.trim().equals("") ){
grade = "guest";
grade_name = "손님";
id = "";
pw = "";
%>
<h3>[<%=grade_name %>]으로 접속하셨습니다. 환영합니다!</h3>
<%
} else if (id.trim().equals("admin") && pw.trim().equals("admin")){
grade = "admin";
grade_name = "관리자";
%>
<h3>[<%=id %>]님은 [<%=grade_name %>] 권한으로 접속하셨습니다. 환영합니다!</h3>
<%
} else {
grade = "member";
grade_name = "회원";
%>
<h3>[<%=id %>]님은 [<%=grade_name %>] 권한으로 접속하셨습니다. 환영합니다!</h3>
<%
}
%> <hr/>
<form action="HiddenFieldMenu.jsp" method="post">
<input type="hidden" name="id" value="<%= id%>"/>
<input type="hidden" name="pw" value="<%= pw%>"/>
<input type="hidden" name="grade" value="<%= grade%>"/>
<input type="hidden" name="grade_name" value="<%= grade_name%>"/>
<input type="submit" value="사용가능 메뉴 확인"/>
</form>
</body>
</html>
HiddenFieldCert.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.sql.*" %>
<%
String userId = request.getParameter("username");
String userPw = request.getParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// JDBC 연결 정보
String jdbcUrl = "jdbc:mysql://localhost:****/질문당사자db";
String dbUser = "질문당사자db아이디입니다";
String dbPassword = db비밀번호";
// JDBC 드라이버 로딩
Class.forName("com.mysql.cj.jdbc.Driver");
// 데이터베이스 연결
conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);
// 회원 정보 조회
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
pstmt.setString(2, userPw);
rs = pstmt.executeQuery();
if (rs.next()) {
// 로그인 성공
session.setAttribute("userId", userId);
response.sendRedirect("HiddenFieldLoginChk.jsp");
} else {
// 로그인 실패
String failReason = "Invalid credentials";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
}
} catch (SQLException e) {
// 데이터베이스 관련 예외 처리
e.printStackTrace();
String failReason = "Database error";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
} catch (ClassNotFoundException e) {
// 드라이버 로딩 예외 처리
e.printStackTrace();
String failReason = "Driver error";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
} finally {
// 리소스 해제
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
HiddenField방식으로 아이디와 비밀번호를 입력 받아 회원 가입하고 로그인하는 페이지를 구현 중입니다.로그인 창에 아이디 admin, 비밀번호 admin 입력하면 관리자 등급으로 로그인 되어야하고, 다른 아이디와 비밀번호로 로그인 시 회원 등급으로 로그인 되어야 하는데 두 개다 손님 등급으로 밖에 로그인이 안되네요. 무엇이 잘못 된 걸까요?
HiddenFieldLogIn.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Hidden Field 방식의 로그인입니다.</title>
</head>
<body>
<form action="HiddenFieldCert.jsp" method="post">
아이디와 비밀번호를 입력하십시오<hr/>
<table border="1">
<tr>
<td align="center">아이디</td>
<td><input type="text" name="username" /></td>
</tr>
<tr>
<td align="center">비밀번호</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="로그인"/> </td>
</tr>
</form>
<form action="SignIn.jsp" method="post">
<td colspan="2" align="right">
<input type="submit" value="회원가입"/></td>
</form>
</table>
</body>
</html>
HiddenFieldLoginChk.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<html>
<head>
<title>Hidden Field 방식을 이용한 세션관리</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("username");
String pw = request.getParameter("password");
String grade;
String grade_name;
%>
<%
if ( id==null || pw == null || id.trim().equals("") || pw.trim().equals("") ){
grade = "guest";
grade_name = "손님";
id = "";
pw = "";
%>
<h3>[<%=grade_name %>]으로 접속하셨습니다. 환영합니다!</h3>
<%
} else if (id.trim().equals("admin") && pw.trim().equals("admin")){
grade = "admin";
grade_name = "관리자";
%>
<h3>[<%=id %>]님은 [<%=grade_name %>] 권한으로 접속하셨습니다. 환영합니다!</h3>
<%
} else {
grade = "member";
grade_name = "회원";
%>
<h3>[<%=id %>]님은 [<%=grade_name %>] 권한으로 접속하셨습니다. 환영합니다!</h3>
<%
}
%> <hr/>
<form action="HiddenFieldMenu.jsp" method="post">
<input type="hidden" name="id" value="<%= id%>"/>
<input type="hidden" name="pw" value="<%= pw%>"/>
<input type="hidden" name="grade" value="<%= grade%>"/>
<input type="hidden" name="grade_name" value="<%= grade_name%>"/>
<input type="submit" value="사용가능 메뉴 확인"/>
</form>
</body>
</html>
HiddenFieldCert.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" import="java.sql.*" %>
<%
String userId = request.getParameter("username");
String userPw = request.getParameter("password");
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// JDBC 연결 정보
String jdbcUrl = "jdbc:mysql://localhost:****/질문당사자db";
String dbUser = "질문당사자db아이디입니다";
String dbPassword = db비밀번호";
// JDBC 드라이버 로딩
Class.forName("com.mysql.cj.jdbc.Driver");
// 데이터베이스 연결
conn = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword);
// 회원 정보 조회
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, userId);
pstmt.setString(2, userPw);
rs = pstmt.executeQuery();
if (rs.next()) {
// 로그인 성공
session.setAttribute("userId", userId);
response.sendRedirect("HiddenFieldLoginChk.jsp");
} else {
// 로그인 실패
String failReason = "Invalid credentials";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
}
} catch (SQLException e) {
// 데이터베이스 관련 예외 처리
e.printStackTrace();
String failReason = "Database error";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
} catch (ClassNotFoundException e) {
// 드라이버 로딩 예외 처리
e.printStackTrace();
String failReason = "Driver error";
response.sendRedirect("LoginFail.jsp?error=" + failReason);
} finally {
// 리소스 해제
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
HiddenField방식으로 아이디와 비밀번호를 입력 받아 회원 가입하고 로그인하는 페이지를 구현 중입니다.로그인 창에 아이디 admin, 비밀번호 admin 입력하면 관리자 등급으로 로그인 되어야하고, 다른 아이디와 비밀번호로 로그인 시 회원 등급으로 로그인 되어야 하는데 두 개다 손님 등급으로 밖에 로그인이 안되네요. 무엇이 잘못 된 걸까요?