Notice
Recent Posts
Recent Comments
Link
반응형
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 마이바티스
- 처음만나는자바스크립트
- 기초코딩
- 전자정부 서버세팅
- 자바스크립트기초문법
- 리액트세팅
- 웹앱
- 구글캘린더api
- 리액트프로젝트세팅
- 리액트초기세팅
- mybatis
- 웹
- springboot
- 코딩
- 구글 oauth
- 기초 코딩
- 자바스크립트
- 자바
- spring
- Spring Boot
- 자바스크립트기초
- react
- Javascript
- CSS
- 스프링부트
- js
- java
- 자바스크립트 기초
- javaspring
- HTML
Archives
- Today
- Total
인생 디벨로퍼
[Bank App] 7강 로그인 만들기 본문
728x90
반응형
form 태그 정리
POST (BODY)
key=value&key=value (x-www)
GET (URL)
?key=value&key=value (QueryString)
Get 요청과 Post 요청 모두 x-www-form-urlencoded 타입으로 데이터가 전달되지만 Get요청을 하게되면 주소에 데이터가 실려가기 때문에 흔히 QueryString이라고 부른다.
Controller
@PostMapping("/login")
public String login(LoginReqDto loginReqDto) {
if (loginReqDto.getUsername() == null || loginReqDto.getUsername().isEmpty()) {
throw new CustomException("username을 입력해주세요", HttpStatus.BAD_REQUEST);
}
if (loginReqDto.getPassword() == null || loginReqDto.getPassword().isEmpty()) {
throw new CustomException("password를 입력해주세요", HttpStatus.BAD_REQUEST);
}
// User principal = userRepository.findByUsernameAndPassword(loginReqDto);
User principal = new User();
principal.setId(1);
principal.setUsername("ssar");
if (principal != null) {
throw new CustomException("아이디 혹은 비번이 틀렸습니다", HttpStatus.BAD_REQUEST);
}
session.setAttribute("principal", principal);
return "redirect:/";
}
@GetMapping({ "/", "/account" })
public String main() {
// throw new CustomException("인증되지 않았습니다", HttpStatus.UNAUTHORIZED);
return "account/main";
}
User객체를 login 메서드에서 강제로 만든 이유는 지금은 컨트롤러를 확인하는 것이기 때문에, User를 그냥 가짜로 만들어준 것
UserRepository 추상 메서드 만들기
public User findByUsernameAndPassword(LoginReqDto loginReqDto);
Controller 코드 수정
기존에 가짜로 만들어둔 코드 삭제.
principal이 null 일 경우, customException 에 잡힘
결과
헤더 수정
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bank 애플리케이션</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD"
crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN"
crossorigin="anonymous"></script>
<link rel="stylesheet" href="../css/bank.css">
</head>
<body>
<div class="my_form">
<ul class="nav justify-content-center">
<c:choose>
<c:when test="${principal!=null}">
<li class="nav-item">
<a class="nav-link" href="/logout">로그아웃</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account">계좌목록(인증)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/saveForm">계좌생성(인증)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/transferForm">이체하기(인증)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/withdrawForm">출금하기(미인증)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/depositForm">입금하기(미인증)</a>
</li>
</c:when>
<c:otherwise>
<li class="nav-item">
<a class="nav-link" href="/loginForm">로그인</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/joinForm">회원가입</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/withdrawForm">출금하기(미인증)</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/account/depositForm">입금하기(미인증)</a>
</li>
</c:otherwise>
</c:choose>
</ul>
</div>
헤더 수정 (네비게이션 세션 확인)
728x90
반응형
'Project > 개인 Project - Bank App' 카테고리의 다른 글
[Bank App] 9강 계좌목록보기 (1) | 2023.06.16 |
---|---|
[Bank App] 8강 계좌생성하기 (0) | 2023.06.14 |
[Bank App] 6강 회원가입 만들기 (0) | 2023.06.10 |
[Bank App] 5강 익셉션 핸들러 만들기 (0) | 2023.06.10 |
[Bank App] 4강 JSP 파일 세팅 (0) | 2023.06.10 |