일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- xml
- POST방식
- JSON형식의 response
- CONTINUE
- 요구사항정의서
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194709&category=questiondetail&tab=community&q=1314387
- Dispatcher
- Forwarding
- 다형성 #부모타입 #자식타입
- Break
- Spring MVC
- 톰캣
- GET방식
- 매핑 #
- 김영한
- while문
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194690
- 한글깨짐
- 화면정의서
- 피그마
- webserver #WAS #ServerApp
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194711
- Servlet
- Request
- sendRedirect
- WAS
- Today
- Total
Step it up now
서블릿 접근 -.xml과 @ 본문
Servlet은 서버의 내부 로직이기 때문이다. 내부의 로직은 외부로부터 안전하게 보호받아야 한다
ROOT 폴더 - 홈디렉터리는 웹서버에서 가장 기본이 되는 웹앱(Web Application)이다. 웹앱이란 웹브라우저를 통해 이용 가능한 응용프로그램을 의미
JSP파일은 단순 경로로 접근이 가능하다. 하지만 서블릿(Servlet)은 내부로직이므로 접근할 수가 없다.
WEB-INF폴더는 서버만이 접근 가능한 영역이다. 이 안에 저장되어 있는 파일은 일반적인 경로로 접근이 불가
WEB-INF 폴더 안의 Servlet에 접근하려면 가짜경로를 만들어주어야 한다. 진짜 경로는 숨기고 가짜 경로를 만들어, 오로지 서버만이 진짜 경로에 접근 가능하도록 만들어 외부 접근으로부터 서버의 로직을 보호하는 것이다.
가짜 경로(가상 경로)를 설정하는 방법은 2 가지가 있다.
1. web.xml이라는 파일이 있다. web.xml 파일에서 서블릿 클래스와 가상경로를 매핑해주면 된다. 그 전에 우선 WEB-INF안에 classes 폴더를 생성하여 그 안에 서블릿 클래스 파일을 넣어줄 것이다.
2. 어노테이션 @
개발자뿐만 아니라 컴파일러도 프로그램에 대한 정보를 알아야 하는데, 이때 주석처리를 하는 방식이 '@ 어노테이션'이다.
@WebServlet("*.gd")
어노테이션을 통해, 매핑이 되어 /hi 경로로 servlet에 접근이 되었음을 알 수 있다. 웹서버의 deployment tool은 프로젝트들을 서버의 적당한 곳에 배치(deploy)해야한다. 그 과정에서 경로를 설정하는데, 툴은 어노테이션을 스캐닝하여 서블릿의 가상경로를 검사한다.
매핑 뿐만 아니라 web.xml의 다른 많은 기능이 어노테이션으로 대체 가능하다.
어노테이션으로 작업하면 여러 사람이 web.xml이라는 한 가지 파일을 공유하며 작업할 필요가 사라진다. 한 가지 파일을 여러사람이 같이 작업하면 파일이 뒤죽박죽되고 손상될 위험이 커진다.
//자바메소드와 sql쿼리문을 매핑한다
<mapper namespace="com.mybatis.mapper.boardMapper">
<resultMap id="bVO" type="com.vo.BoardVO">
</resultMap>
//id="bVO": 결과 맵의 고유 식별자
type="com.vo.BoardVO": 결과 맵이 매핑되는 Java 타입(완전히 지정된 클래스"BoardVO")