반응형
https://knowhoon.tistory.com/109
Spring 게시판 만들기 (2) - DTO, DAO, Service, Mapper
https://knowhoon.tistory.com/108 Spring 게시판 만들기 (1) - 개발 환경 세팅 Spring 게시판 만들기 (1) - Spring(STS) 설치 게시글 https://knowhoon.tistory.com/104 Spring(STS) 설치하기(3.9.17 RELEASE)..
knowhoon.tistory.com
Login 기능 구현
login.view
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<h1>login</h1>
<form action="./login" method="post">
<input type="text" name="sm_id" required="required">
<input type="password" name="sm_pw" required="required">
<button type="submit">로그인</button>
<button type="reset">초기화</button>
</form>
</body>
</html>
LoginController.java
package com.knowhoon.web;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import com.knowhoon.web.login.LoginDTO;
import com.knowhoon.web.login.LoginService;
@Controller
public class LoginController {
@Autowired
private LoginService loginService;
@GetMapping("/login")
public String login() {
return "login";
}
@PostMapping("/login")
public String loginAction(LoginDTO loginDTO, HttpServletRequest request) {
LoginDTO result = loginService.loginAction(loginDTO);
if(result != null) {
request.getSession().setAttribute("sm_id", result.getSm_id());
request.getSession().setAttribute("sm_name", result.getSm_name());
request.getSession().setAttribute("sm_grade", result.getSm_grade());
return "redirect:/board";
} else {
if(request.getSession().getAttribute("sm_id") != null) {
request.getSession().removeAttribute("sm_id");
}
if(request.getSession().getAttribute("sm_name") != null) {
request.getSession().removeAttribute("sm_name");
}
if(request.getSession().getAttribute("sm_grade") != null) {
request.getSession().removeAttribute("sm_grade");
}
return "redirect:/login?error=loginError";
}
}
@GetMapping("/logout")
public String logout(HttpServletRequest request) {
if(request.getSession().getAttribute("sm_id") != null) {
request.getSession().removeAttribute("sm_id");
}
if(request.getSession().getAttribute("sm_name") != null) {
request.getSession().removeAttribute("sm_name");
}
if(request.getSession().getAttribute("sm_grade") != null) {
request.getSession().removeAttribute("sm_grade");
}
return "redirect:/board";
}
}
LoginService.java
package com.knowhoon.web.login;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class LoginService {
@Autowired
private LoginDAO loginDAO;
public LoginDTO loginAction(LoginDTO loginDTO) {
return loginDAO.loginAction(loginDTO);
}
}
LoginDAO.java
package com.knowhoon.web.login;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
@Repository
public class LoginDAO {
@Autowired
private SqlSession sqlSession;
public LoginDTO loginAction(LoginDTO loginDTO) {
return sqlSession.selectOne("login.loginAction", loginDTO);
}
}
LoginDTO.java
package com.knowhoon.web.login;
public class LoginDTO {
private int sm_no, sm_grade;
private String sm_name, sm_id, sm_pw, sm_joindate, sm_birthdate, sm_email, sm_addr;
public int getSm_no() {
return sm_no;
}
public void setSm_no(int sm_no) {
this.sm_no = sm_no;
}
public int getSm_grade() {
return sm_grade;
}
public void setSm_grade(int sm_grade) {
this.sm_grade = sm_grade;
}
public String getSm_name() {
return sm_name;
}
public void setSm_name(String sm_name) {
this.sm_name = sm_name;
}
public String getSm_id() {
return sm_id;
}
public void setSm_id(String sm_id) {
this.sm_id = sm_id;
}
public String getSm_joindate() {
return sm_joindate;
}
public void setSm_joindate(String sm_joindate) {
this.sm_joindate = sm_joindate;
}
public String getSm_birthdate() {
return sm_birthdate;
}
public void setSm_birthdate(String sm_birthdate) {
this.sm_birthdate = sm_birthdate;
}
public String getSm_email() {
return sm_email;
}
public void setSm_email(String sm_email) {
this.sm_email = sm_email;
}
public String getSm_addr() {
return sm_addr;
}
public void setSm_addr(String sm_addr) {
this.sm_addr = sm_addr;
}
public String getSm_pw() {
return sm_pw;
}
public void setSm_pw(String sm_pw) {
this.sm_pw = sm_pw;
}
}
loginMapper.xml
<?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">
<mapper namespace="login">
<select id="loginAction" parameterType="LoginDTO" resultType="LoginDTO" >
SELECT sm_no, sm_name, sm_id FROM sloginview WHERE sm_id=#{sm_id} AND sm_pw=#{sm_pw}
</select>
</mapper>
mybatis에서 LoginDTO 사용 할수 있게 mybatisConfig.xml 수정(typeAlias 추가)
반응형
'프로그래밍 > Java_Spring 게시판 만들기' 카테고리의 다른 글
Spring 게시판 만들기 (6) - 페이징 처리(전자정부프레임워크 페이징) (0) | 2021.09.03 |
---|---|
Spring 게시판 만들기 (5) - 관리자 기능 구현 (0) | 2021.09.03 |
Spring 게시판 만들기 (4) - 회원가입 기능 구현 (0) | 2021.09.03 |
Spring 게시판 만들기 (2) - DTO, DAO, Service, Mapper (0) | 2021.08.27 |
Spring 게시판 만들기 (1) - 개발 환경 세팅 (1) | 2021.08.26 |