Login : No.12_작동 확인 및 오류 수정과 로그인 최종 코드
로그인 작동을 확인하고 오류 수정을 마칩니다.
-
일단 코드 작성은 완료 했으니 서버를 돌려 봅니다.
로그인을 해야 하니 데이터 베이스를 확인해 줍니다.
지금 MySQL에는 q사용자가 있습니다.
서버를 구동시켰더니 로그인 페이지가 정상적으로 나옵니다.
우선 틀린 아이디와 비밀번호를 입력해 보겠습니다.
성공이 뜹니다.
무언가 잘 못 됐죠
이클립스로 돌아와 로그를 확인해 봅니다.
값은 잘 받아 오는데 일단 수정이 필요합니다.
어디가 잘 못 됐는지 찾아봅니다.
OhService 단에서 if문에 hDTO를 받아야 하는데 oDTO를 받아오고 있었습니다.
oDTO를 hDTO로 바꿔줬습니다.
이제 다시 서버를 돌린 뒤에 로그인 확인을 해 줍니다.
이번에는 q 사용자를 먼저 넣어봅니다.
MySQL에 q사용자가 있었기 때문에 성공으로 뜹니다.
정상이네요.
로그를 확인해 보니 로그도 정상적으로 잘 찍히고 있습니다.
이번에는 아까 오류가 났던 없는 사용자를 입력했을 때 성공 메시지가 뜨는 부분을 해겼으니 확인해 봅니다.
데이터 베이스에 없는 사용자를 입력해 봅니다.
실패로 뜨네요.
이제 정상입니다.
로그도 정상적으로 작동합니다.
이렇게 로그인 파트가 마무리 됐습니다.
아래 최종 코드 공지하고 마무리하겠습니다.
package poly.controller;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import poly.dto.OhDTO;
import poly.service.IOhService;
@Controller
public class OhController {
@Resource(name = "OhService")
private IOhService OhService;
private Logger log = Logger.getLogger(this.getClass());
@RequestMapping(value="index")
public String Index() {
log.info(this.getClass());
return "/index";
}
//====================================== 로그인 ========================================================================
@RequestMapping(value="login")
public String login() {
log.info("로그인 페이지 출력" );
return "/login";
}
@RequestMapping(value="/checklogin")
@ResponseBody
public String checklogin(HttpServletRequest request) throws Exception{
log.info("로그인 시작");
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
log.info(id);
log.info(pwd);
log.info("로그인");
OhDTO oDTO = new OhDTO();
oDTO.setOh_id(id);
oDTO.setOh_pwd(pwd);
log.info("ID :" + oDTO.getOh_id());
log.info("PWD : " + oDTO.getOh_pwd());
int res = OhService.checklogin(oDTO);
log.info(res);
String result = "";
if ( res == 0) {
result = "fail";
} else if (res == 1){
result = "success";
}
return result;
}
//====================================== 회원가입 ==============================================================================
}
위 코드는 Controller 단 입니다.
package poly.service;
import poly.dto.OhDTO;
public interface IOhService {
int checklogin(OhDTO oDTO) throws Exception;
}
위 코드는 IService 단 입니다.
package poly.service.impl;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import poly.dto.OhDTO;
import poly.persistance.mapper.IOhMapper;
import poly.service.IOhService;
@Service("OhService")
public class OhService implements IOhService{
@Resource(name="OhMapper")
private IOhMapper OhMapper;
// =================================== 로그인 ======================================================================
@Override
public int checklogin(OhDTO oDTO) throws Exception {
int res = 0;
OhDTO hDTO = new OhDTO();
hDTO = OhMapper.checklogin(oDTO);
if(hDTO != null) {
res = 1;
}
return res;
}
// =================================== 회원가입 =====================================================================
}
위 코드는 Service 단 입니다.
package poly.persistance.mapper;
import java.util.List;
import config.Mapper;
import poly.dto.OhDTO;
@Mapper("OhMapper")
public interface IOhMapper {
//게시판 리스트
List<OhDTO> getOhList() throws Exception;
OhDTO checklogin(OhDTO oDTO) throws Exception;
}
위 코드는 IMapper 단 입니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- JAVA와 연결할 Mapper 파일 설정 -->
<mapper namespace="poly.persistance.mapper.IOhMapper">
<!-- 게시판 리스트 쿼리 -->
<select id="getOhList" resultType="OhDTO">
SELECT * FROM DUAL
</select>
<!-- ================================ 로그인 =========================================================== -->
<select id="checklogin" parameterType="OhDTO" resultType="OhDTO">
SELECT *
FROM OH1_INFO
WHERE OH_ID= #{oh_id} AND OH_PWD= #{oh_pwd}
</select>
<!-- ================================ 회원가입 =========================================================== -->
</mapper>
위 코드는 Mapper 단 입니다.
<%@ 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>
<form action="/checklogin.do" method="Post">
아이디 : <input type="text" name="id">
비밀번호 : <input type="password" name="pwd">
<input type="submit" value="login">
</form>
</body>
</html>
위 코드는 login.jsp 파일입니다.
package poly.dto;
public class OhDTO {
//private String notice_seq; // 기본키, 순번
private String oh_seq;
private String oh_id;
private String oh_pwd;
public String getOh_seq() {
return oh_seq;
}
public void setOh_seq(String oh_seq) {
this.oh_seq = oh_seq;
}
public String getOh_id() {
return oh_id;
}
public void setOh_id(String oh_id) {
this.oh_id = oh_id;
}
public String getOh_pwd() {
return oh_pwd;
}
public void setOh_pwd(String oh_pwd) {
this.oh_pwd = oh_pwd;
}
}
위 코드는 DTO 코드입니다.