본문 바로가기

java,jsp,spring/Spring

Spring 로그인 페이지 설계

1. Dao

package com.javalec.spring_test_member.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class MemDao {
DataSource dataSource;
	
	public MemDao() {
		try {
			Context context = new InitialContext();
			dataSource = (DataSource)context.lookup("java:comp/env/jdbc/oracle");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public int login(String mem_uid, String mem_pwd) {
		String sql = "SELECT MEM_PWD FROM MVC_MEMBER WHERE MEM_UID = ?";
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;

		int re = -1;
		String db_mem_pwd;
		
		try {
			conn = dataSource.getConnection();
			pstmt = conn.prepareStatement(sql);
			pstmt.setString(1, mem_uid);
			rs = pstmt.executeQuery();
			if (rs.next()) {
				db_mem_pwd = rs.getString("MEM_PWD");
				if (db_mem_pwd.equals(mem_pwd)) {
					re = 1; // 아이디, 비밀번호 모두 일치
				} else {
					re = 0; // 비밀번호 불일치
				}
				System.out.println(db_mem_pwd);
				System.out.println(mem_pwd);
			} else {
				re = -1; // 아이디 불일치
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if(rs != null) rs.close();
				if(pstmt != null) pstmt.close();
				if(conn != null) conn.close();
			} catch (SQLException e2) {
				e2.printStackTrace();
			}
		}
		return re;
	}
}

2. Controller

package com.javalec.spring_test_member.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.javalec.spring_test_member.command.MemLoginService;
import com.javalec.spring_test_member.command.MemService;

@Controller
public class Memcontroller {
	MemService memService;
	
	@RequestMapping("/login")
	public String login() {
		System.out.println("=======> login()");
		return "login";
	}
	@RequestMapping("/login_yn")
	public String login_yn(HttpServletRequest request, Model model) {
		System.out.println("=======> login_yn()");
		
		model.addAttribute("request", request);
		memService = new MemLoginService();
		int re = memService.execute(model);
		System.out.println(re);
		if (re == 1) {
			return "redirect:login_ok";
		} else {
			return "redirect:login";
		}
	}
	@RequestMapping("/login_ok")
	public String login_ok() {
		System.out.println("=======> login_ok()");
		return "login_ok";
	}
}

3. Service

public interface MemService {
	public int execute(Model model);
}

public class MemLoginService implements MemService{
	@Override
	public int execute(Model model) {
		Map<String, Object> map = model.asMap();
		HttpServletRequest request = (HttpServletRequest) map.get("request");
		
		String uId = request.getParameter("mem_uid");
		String pwd = request.getParameter("mem_pwd");
		MemDao dao = new MemDao();
		int re = dao.login(uId, pwd);
		
		return re;
	}
}

4. JSP 파일

// login.jsp
<body>
	<form method="post" action="login_yn">
	<table width="400" border="1">
		<tr>
			<td>사용자 ID</td>
			<td>
				<input type="text" name="mem_uid" />
			</td>
		</tr>
		<tr>
			<td>비밀번호</td>
			<td>
				<input type="text" name="mem_pwd" />
			</td>
		</tr>
		<tr>
			<td colspan="2">
				<input type="submit" value="로그인" />
				&nbsp;&nbsp;
				<input type="button" value="회원가입" />
			</td>
		</tr>
	</table>
	</form>
</body>

// login_ok.jsp
<body>
	로그인 성공!
</body>

'java,jsp,spring > Spring' 카테고리의 다른 글

MyBatis  (0) 2022.10.14
Spring Jdbc Template  (0) 2022.10.14
STS 한글 깨짐 현상 해결  (0) 2022.10.14
Spring 프로젝트 설계 - 기본 게시판  (0) 2022.10.11
Spring 기초 (5)  (0) 2022.10.11