반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

[Java/JSP] Servlet을 이용하여 로그인페이지 만들기(DB연동) 본문

프로그래밍/Java

[Java/JSP] Servlet을 이용하여 로그인페이지 만들기(DB연동)

비전공개미 2022. 10. 31. 19:53
반응형
SMALL

loginFrm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>로그인</h3>
<form action="loginProc.do" method="post">
<table border="1">
	<tr>
		<td>아이디</td>
		<td>
			<input type="text" name="userId" />
		</td>
	</tr>
	<tr>
		<td>비밀번호</td>
		<td><input type="password" name="userPwd" /></td>
	</tr>
	<tr><td colspan="2" style="text-align:center;"><input type="submit" value="로그인" /></td></tr>
	
</table>
</form>

</body>
</html>

 

 

 

LoginProc.java

package org.global.controller;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class LoginProc
 */
@WebServlet("/member/loginProc.do")
public class LoginProc extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginProc() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("doPost");
		actionDo(request, response);
	}

	private void actionDo(HttpServletRequest request, HttpServletResponse response) throws IOException {
		System.out.println("actionDo");
		try{
			request.setCharacterEncoding("utf-8");
			String userId = request.getParameter("userId");
			String userPwd = request.getParameter("userPwd");			
			
			String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false";
			String dbId = "root", dbPwd = "1234";
			Connection conn = null;
			String sql = null;
			PreparedStatement pstmt = null;
			ResultSet rs = null;
			Class.forName("com.mysql.cj.jdbc.Driver");
			conn = DriverManager.getConnection(url, dbId, dbPwd);
			
			sql = "select * from member where userId=? and userPwd=?";
			//out.print(sql);
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, userId);
			pstmt.setString(2, userPwd);
			rs = pstmt.executeQuery(); //select문만 resultSet으로 처리할 수 있다
			String sqlId = "";
			String sqlPwd = "";
			while(rs.next()){
				sqlId = rs.getString("userId");
				sqlPwd = rs.getString("userPwd");
			}
			
			
			if(userId.equals(sqlId) && userPwd.equals(sqlPwd)){
				HttpSession httpSession = request.getSession();				
				httpSession.setAttribute("userId", sqlId);
				httpSession.setAttribute("userPwd", sqlPwd);
				response.sendRedirect("loginResult.jsp");
			}else{
				response.sendRedirect("loginFrm.jsp");
			}
			
		}catch(ClassNotFoundException e){
			e.printStackTrace();
		}catch(SQLException e){
			e.printStackTrace();
		}finally{
			//conn.close();
		}
		
	}

}

 

 

 

로그인이 정상적으로 처리되면 loginResult.jsp로 이동

비정상적으로 처리되면 loginFrm.jsp로 이동한다.

 

 

 

loginResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

${userId }님 안녕하세요<br>
<a href="">회원정보 수정</a>
</body>
</html>

 

 

 

 

 

loginFrm.jsp

 

 

 

loginResult.jsp

 

반응형
LIST
Comments