0. 세팅
workspace 세팅
- java EE, window>show View>Navigator, window>preferences에서 encoding 값들 "UTF-8"(모든 작업환경 통일)
Server 설정
- 서버 생성->생성할 서버 선택 -> 설치한 서버 폴더 선택(Apache Tomcat 등)
- 서버 설정값>Server Options>Serve modelus without publishing 체크, Ports HTTP/1.1을 8080이외의 다른 번호로(현재 내 작업환경에서 Oracle 포트번호가 8080)
Dynamic Web Project
- 서버에 Add and Remove로 애플리케이션 등록
1. Servlet이란?
Servlet = Server+Applet
Java의 클래스 유형 중 하나로, Web Project 시 사용자의 요청을 가공하여 Service-DAO를 통해 DB로 전달할 수 있도록 작동하는 Controller 역할을 수행한다.
*MVC 패턴을 적용한 자바 웹 프로젝트의 구성
Model ValueObject, DataAObject...
View : JSP, HTML...
Controller : Servlet
설정한 서버 매핑값으로 request 요청이 들어올 경우, 요청에 따른 일련의 작업들을 수행한 후 응답을 전달한다.
servlet을 생성하면 생성되는 class인 RequestGetServlet은 HttpServlet을 상속받고있고, HttpServlet자체에 GET과 POST외에 PUT이나 HEAD, TRACE 등 여러가지 방법이 존재. request의 method는 다양한 방식을 설정할 수 있으며, 'do메소드'의 형태로 오버라이딩해서 사용
Web Application에서 자주 사용하는 전송방식 Get과 Post
- GET : 요청한 내용을 쿼리스트링에 담아 전달
- POST : URL에 노출하지 않고 바디 부분에 넣어 전달. 요청하는 URL은 요청받는 연결 모두 확인 가능하므로 보안을 위해 post 선택. 길이 제약이 없음, 최대 요청 시간이 존재. POST는 기본적으로 IOS-8859-1방식이므로 request.getCharacterEncoding("UTF-8");로 인코딩 방식 지정을 해줘야 글씨가 깨지지않고 출력된다.
※doPost도 내부에서 doGet 메소드를 호출하므로, 실질적인 코드는 결국 doGet에 작성한다.
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//코드들...
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
servlet 내에서 응답페이지를 출력하는 방법
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.append("test");
out.println("<html>");
servlet에서 페이지를 이동하는 방법
request.getRequestDispatcher("이동할 페이지.jsp").forward(request, response); : 페이지에 재요청하면서 request를 유지
response.sendRedirect("요청할 페이지"); : 응답 페이지를 지정. 새로운 페이지로 이동.
전체 처리 과정
jsp/html
↓
request의 Parameter에 값을 넣어 저장
↓
servlet
↓
requets의 Parameter에서 값을 추출하여 활용. DB와의 통신 등 기타 작업
↓
request의 Attribute에 값을 넣어 응답 페이지 처리
↓
jsp/html
객체
page : 해당 페이지
request : JSP, HTML문서 등 요청과 응답의 대상
session : 해당 세션
Application : 해당 애플리케이션 전체
2. JSP란?
HTML 안에 Java code를 사용할 수있는 문서 형식으로, 기본적인 사용은 일반적인 HTML 문서와 동일하나 Java code를 Scripting Element로 감싸서 기술한다.
Scripting Element
- <% %> : Scriptlet : 문서 내에서 Java Code를 기술할 때 사용.
- <%= %> : Expression : Java Code의 값을 출력할 때 사용. 자동으로 ;가 붙은 것처럼 활용되므로 ;를 붙이지 않는다.
- <%! %> : Declaration : 해당 JSP 상에서만 사용할 수 있는 클래스, 멤버 변수 선언 ->메서드 안에서 메소드는 만들 수 없다. ->확인해볼것
- <%@ %> : Directive : JSP 문서의 정보를 제시.
- page : contentType, errorPage, import, language, pageEncoding 등의 속성이 있다.
- taglib : JSP 기능을 확장. 라이브러리 등록
- include : JSP 안에 JSP 파일 삽입
- <%-- --%> : Comment : JSP방식 주석. 개발자 도구 탭에 노출 X. 주석은 HTML방식과 JSP 방식 모두 사용 가능.
'BACK-END > Java' 카테고리의 다른 글
[JAVA] 컬렉션과 배열들 간 자료형 바꾸는 방법 (0) | 2022.04.03 |
---|---|
[JDBC] Servlet Filter (0) | 2022.02.16 |
[JAVA] API-JDBC (1) | 2021.12.07 |
[Java] API-Stream(Input & Output) (0) | 2021.11.25 |
[Java] API-Collection과 Map (0) | 2021.11.23 |