scone-lemon
[BE 과목평가 대비] WebArchi(MVC) Servlet/JSP : Servlet 본문
[BE 과목평가 대비] WebArchi(MVC) Servlet/JSP : Servlet
lemon-scone 2021. 10. 10. 15:481. Web Architecture
Client - Web Server - Application Server - Database
Web Server + Application Seve = WAS (= Tomcat)
Client
- data 발생 (markup language, css, js ...)
- request 발생 (with data)
Web Server
- http server
- transfer data
Application Server
- Web Server 와 Database 를 연결
- Presentation using html
- Business Logic = DB 이외의 일처리
- Persistance Logic = DB 일처리
Server - Database (connect using JDBC)
WAS의 역할 : WEB에서 java를 돌릴 수 있다
Presentation : 일처리 (Logic)의 결과 ex. html, css, csv, json...
Process :
1) Client가 Data 발생
2) Client가 Server에게 Data를 가지고 request
3) Server가 Data를 받아서 일처리(Logic)
4) Server가 Client에게 일처리 결과를 가지고 response
2. Context Root, URL mappings
http://localhost:8080/hs/hi/
hs = Project name
hi = Servlet name
helloservlet 구조
- src : file.java
- Web Content : file.jsp, file.html ...
3. HttpServlet
Public class Test implements Servlet { } :
프로그램 작성 시 불필요한 메소드까지도 정의해야 하는 불편함 발생
Public class Test extends GenericServlet { } :
Post와 Get방식을 이용해서 데이터를 가져올 때 조건문을 만들어 주어야 하는데,
Server를 Client가 호출할 때마다 계속 조건문이 도는 비효율성 발생
public class Test extends HttpServlet { } :
HttpServlet이 의미상의 추상클래스 (메소드가 추상클래스가 아니고 구현을 강요당하는 느낌만 전달하는 클래스(?))
필요한 메소드들만 Override 하면 됨 (ex. doGet, doPost ...)
4. Post vs Get (Page 이동 시)
url 입력 (get)
link 이용 (get)
from (get)
form (post)
get : 간단한 데이터 빠르게 전송
post : 주로 데이터 양이 많을 때, 아이디, 패스워드가 url 뒤에 노출되면 안될 때
5. Servlet Coding
출력?
html 이용
PrintWriter out = response.getwriter();
out.print("html 문법이 들어가는 자리");
한글깨짐?
response.setContentType("text/html;charset=utf-8");
Servlet Coding 순서 및 구조
1) data get
2) 1)의 data를 이용하여 logic 처리 (BL, DBL)
3) 2)의 결과에 따른 response page
여러 Client들에 대한 Thread 처리는 WAS가 알아서!
6. Servlet vs JSP
Servlet : html in java
JSP : java in html
7. Servlet Life Cycle
init() :
서블릿이 메모리에 로드될 때 한번만 호출
(코드 수정이 이루어져서 메모리에 다시 로드되면 다시 호출)
destroy() :
서블릿이 메모리에서 해제되면 호출
(코드가 수정되면 호출)
doGet(), doPost() :
GET, POST 방식으로 data 전송시 호출
service() :
모든 요청은 service()를 통해서 doXXX() 메소드로 이동
* URL, QueryString, Parameter ?
http://www.ssafy.com/good.jsp?parm1=val1&parm2=val2
URL
Parameter name
Parameter vlaue
? QueryString Begin
& QueryString Seperator
'ETC. > 싸피 이모저모 (2021~2022)' 카테고리의 다른 글
[BE 과목평가 대비] WebArchi(MVC) Servlet/JSP : Servlet (Youtube Live) (0) | 2021.10.10 |
---|---|
[BE 과목평가 대비] WebArchi(MVC) Servlet/JSP : JSP (0) | 2021.10.10 |
[BE 과목평가 대비] WebArchi(MVC) Servlet/JSP : Servlet (환경설정 에러 해결) (0) | 2021.10.09 |
[FE 과목평가 대비] AJAX, Bootstrap (각각의 특징 등) (0) | 2021.09.05 |
[FE 과목평가 대비] jQuery (jQuery 특징, 선택자, 함수들, 이벤트 함수들, 태그에 CSS 설정하기 등) (0) | 2021.09.05 |