1. 오전 - 백엔드 / 오후 - 프론트엔드
2. DOM ? 문서 객체 모델
3. login화면에서 넘어가는 화면 구현
자바스크립트에서는 ; 을 생략해도 된다. 알아서 붙여줌.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<!DOCTYPE html>
<html lang="ko">
<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>로그인 창</title>
<script type="text/javascript">
function fnValidate() {
//alert("!!")
let frmlogin = document.frmLogin
let userID = frmlogin.userID.value
let userName = frmLogin.userName.value
if ((userID.length == 0 || userID == "")
|| (userName.length == 0 || userName == "")) {
alert("아이디와 이름은 필수입니다.")
}else {
frmlogin.method = "post"
frmlogin.action = "${contextPath}/req/login"
frmlogin.submit() //
}
}
</script>
</head>
<body>
<form action="${contextPath}/req/login" method="post" name="frmLogin">
<table width="400">
<tr>
<td>아이디<input type="text" size="10" name="userID"/> </td>
<td>이름<input type="text" size="10" name="userName"/></td>
</tr>
<tr>
<td>
<input type="button" value="로그인" onclick="fnValidate()"/>
<input type="reset" value="다시입력" />
</td>
</tr>
</table>
</form>
</body>
</html>
4. postman을 이용해서 로그인 화면 서버 구축 확인을 했는데 이런 오류가 나온다. 무엇이 문제일까?
WARN : org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported]
5. post 주소표시줄 정보가 포함이 안 된다. 보안이 좋음.
get일 때는 내용을 다 보여준다. 보안 취약함.
그런데 왜 로그인 폼은 get 방식인가?? chatGPT를 믿으면 안되겠다. 반대로 설명해주네?
POST방식이 보안에 강함.
<요청 메서드>
1) GET
- 서버의 리소스를 가져오기 위해 설계
- QUERY STRING을 통해서 데이터를 전달 (소용량)
- URL에 데이터 노출되므로 보안에 취약
- 데이터 공유에 유리
- ex) 검색엔진에서 검색단어 전송에 이용
2) POST
- 서버에 데이터를 올리기 위해 설계됨
- 전송 데이터 크기의 제한이 없음(대용량)
- 데이터를 요청 메시지의 body에 담아 전송
- 보안에 유리, 데이터 공유에는 불리
- ex) 게시판에 글쓰기, 로그인, 회원가입
6. beans는 class를 뜻함.
7. 객체를 만드는 과정
8. Spring 프로그램 안에 여러 폴더들이 있다. 각각의 역할이 있는데 잘은 모르겠다. 그러나 다 필요해서 있음.
9. MVC 패턴이 뭔지???
MVC패턴이란 어플리케이션의 역할을 3가지로 구분하는 개발 방법론이다. 사용자가 controller를 사용하면, 컨트롤러는 데이터를 조작해서 Model로 보낸다. 좀 더 자세히 살펴볼 필요가 있음. 이해가 되는데 약간 헷깔림.
MVC패턴은 MODEL1과 MODEL2가 있음.
MODEL1은 컨트롤러와 뷰가 혼재 / MODEL2는 컨트롤러와 뷰가 나눠짐.