본문 바로가기

코딩 학원(국비지원)

48일차 코딩학원

반응형

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는 컨트롤러와 뷰가 나눠짐. 

 

 

 

반응형

'코딩 학원(국비지원)' 카테고리의 다른 글

50일차 코딩학원  (0) 2023.03.30
49일차 코딩학원  (0) 2023.03.29
47일차 코딩학원  (1) 2023.03.27
46일차 코딩학원  (0) 2023.03.27
45일차 코딩학원  (0) 2023.03.23