개발/KH국비지원과정

[KH국비지원 웹개발자 과정] Day_37 키워드, 서블릿,JSP

mabb 2022. 8. 2. 18:41
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
드디어 국비지원 학원을 다니며 공부에 전념을 할 수 있게 되었습니다.
해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------

-서블릿
:웹에서 동적인 페이지를 Java로 구현한 서버 측 프로그램
관련 패키지와 클래스는 톰캣API에서 확인이 가능하다.
https://tomcat.apache.org/tomcat-8.0-doc/sevletapi/

계산기 만들기 실습)
html로 전달받은 숫자와 연산자를 이용하여 계산을 하고 응답을 해주는 프로그램
->서블릿만으로 화면까지 구현하는 방식
->JSP로 서버와 화면을 구현하는 방식
-> 서블릿을 서버로 JSP를 뷰로 사용하는 방식
단계 별로 실습을 진행하면서 서블릿, JSP의 특징과 단점들을 파악함.

구글링)서블릿의 URL만 바꾸어도 반영이 되지 않았던 이유
web.xml의 설정을 바꾸었어야 함. <web-app> 태그의 metadata-complete = "false" 설정 필요

-서블릿 response로 화면 출력
1) 인코딩 설정 : response.setCharacterEncoding("utf-8");
2) 타입 설정: response.setContentType("text/html;characterset=utf-8");
3) PrintWriter 객체 생성: response.getWriter();
4) PrintWRiter 객체의 print()메소드를 이용한 화면 출력

-PrintWriter는 문자기반 스트림인 Writer의 자식클래스이다.

 

PrintWriter (Java SE 18 & JDK 18)

All Implemented Interfaces: Closeable, Flushable, Appendable, AutoCloseable public class PrintWriter extends Writer Prints formatted representations of objects to a text-output stream. This class implements all of the print methods found in PrintStream. It

docs.oracle.com

 

-서블릿에서 html코드를 사용하기 불편함 -> JSP사용

-JSP에서 java코드를 사용하기 불편함 -> java는 서블릿에서 처리하고 JSP로 값을 넘겨주며 JSP는 화면만 출력

-form태그의 value는 db에 저장되기도 하므로 한글이 아닌 영어로 사용

-JSP (Java Server Page)
스크립트릿 <% %>
표현식 <%= %>
선언부 <%! %>
지시부<%@ %>
주석<%-- %>
-> 실무에서는 스크립트릿을 거의 사용하지 않는다고 함 -> 이후 EL , JSTL을 배우면 대체가 가능하다.

JSP는 내장 객체를 가지고 있고 HTML기반에서 스크립트릿과 표현식 등으로 자바코드를 사용할 수 있으며 실제로 작동할 때는 서블릿으로 변환되어 작동한다고 이해한다. 내장객체는 (request, response, out, session, page 등)

-request.setAttribute("이름", 값);  기본형, 객체 등의 값에 이름을 붙여서 다른 서블릿이나 JSP로 전달하기 위하여 사용.

-RequestDispatcher 객체를 request.getRequestDispatcher("경로")메소드로 얻고 해당 객체의 forward(request,response) 메소드를 이용하여 포워딩 한다.

-영역 (Scope)
애쎄리페 (큰 순서)
애플리케이션 > 세션 > 리퀘스트 > 페이지

-JSP하나로 서버역할과 뷰역할 다 하는 것 -> MVC 모델1 방식

-서블릿을 서버로, JSP를 뷰로 분리하여 만드는 것 -> MVC 모델2 방식
유지보수 및 확장 측면에서 유리하다.

-JDBC와 합치면 기본적인 게시판을 만들 수 있을 정도의 수준까지 배우게 된 것으로 보임
2월에 구글링 독학으로 게시판 흉내를 내었을 때는 게시판 코드의 내용을 잘 이해하지 못하였으나 지금은 저장해둔 코드를 보니 이해가 간다. 학원에서 기본기를 다진 것이 큰 도움이 된 것 같다. 기본기 다지기를 게을리 하지 말 것.

반응형