Notice
Recent Posts
Recent Comments
Link
혜야의 코딩스토리
[JSP/Servlet] JSP(Java Server Pages)와 서블릿 본문
✏️서블릿(Servlet) : 서버에서 실행되는 자바코드
서블릿의 호출 방식
get방식 => doGet() 실행
post방식 => doPost() 실행
web.xml을 이용한 서블릿 매핑 방법
//web.xml : 배치기술서(deploy descriptor), jsp 프로젝트의 중요 정보들이 기록됨
<servlet>
<servlet-name>서블릿의 별칭</servlet-name>
<servlet-class>서블릿 클래스 이름</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>서블릿의 별칭</servlet-name>
<url-pattern>서블릿을 호출할 url</url-pattern>
</servlet-mapping>
✏️ JSP(Java Server Pages) : server에서 실행되는 자바 웹페이지
- 자바 기반 스크립트 언어
- 자바의 기능을 그대로 사용 가능
- HTTP에 대한 클라이언트의 요청 처리/응답
- 웹 애플리케이션에서 결과 화면을 생성할 때 주로 사용
- jsp는 내부적으로 servlet으로 변환되어 실행된다.
- jsp의 배포 디렉토리 : 이클립스에서 작업하는 폴더(개발용 폴더)와 다르다 workspace디렉토리\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\work\Catalina\localhost\프로젝트\org\apache\jsp
✏️웹 컨테이너
웹 컨테이너는 마치 내용을 담을 수 있는 그릇처럼 특정 요소들을 담을 수 있는 소프트웨어 모듈로서 동적인 데이터들을 처리해 정적인 페이지로 생성해주는 역할을 한다.
주요 웹 컨테이너: Tomcat(톰캣), WebLogic, Zeus
톰캣과 같은 웹컨테이너는 서블릿 컨테이너라고도 부르는데, 그 이유는 톰캣을 실행하면 톰캣은 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 라이프사이클(Life Cycle)권한을 가지고 서블릿을 관리하기 때문이다.
웹 컨테이너는 웹 어플리케이션을 실행할 수 있는 컨테이너이며
Java 서블릿과 상호작용하는 WAS(Web Application Server)의 구성요소이다.
서블릿의 생명주기(Life Cycle)를 관리하며 JSP와 서블릿을 실행해 준다.
✏️jsp의 기본 문법
<!-- scriptlet(스크립틀릿)-->
<% 자바코드 영역 %>
<!-- expression(표현식) : 웹브라우저에 출력 -->
<%=식 or 값%>
<% out.println(식 or 값); %>
<!-- 페이지 지시어(page directive) -->
<%@ page language="java" 타입등 %>
✏️jsp page에서의 import
<!-- 1행에 1개씩 import -->
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Calendar" %>
<!-- 1행에 여러 개 import -->
<%@ page import="java.text.SimpleDateFormat, java.util.Calendar" %>
✏️page 모듈화
<%@ include file="불러올 페이지 주소" %> : jsp 지시어 태그
<!-- 1개의 클래스로 컴파일 됨(변수 공유 가능) -->
<jsp:include page="불러올 페이지 주소" /> : jsp 액션태그
<!-- 2개의 클래스로 컴파일 됨(변수 공유 불가능 , 정적인 페이지) -->
✏️http status code(http 상태 코드)
- 200 - success
- 403 - 권한문제
- 404 - 잘못된 url
- 500 - internal server error(서버의 논리적인 오류) - 톰캣의 console확인
✏️웹 페이지의 호출 방식
post 방식
- body를 통해 정보 전송
- 정보가 주소창에 노출되지 않음 대용량 자료 전송 가능
get 방식
- 데이터를 header에 붙여서 전송 주소창에 표시) 기본적인 방식, 보안에 취약
- 쿼리스트링을 통해 전송 (URL?변수=값&변수=값...)
✏️페이지 이동 방식
자바스크립트
location.href = "이동할 주소";
JSP
1) forward : 화면 전환(주소는 고정), 대용량 데이터 전송 가능
이동할 주소에 context path(프로젝트 이름 or 웹서비스 이름) 기본으로 포함되어 있음
http://localhost/jsp01/ch01/test.jsp
http://도메인/컨텍스트패스/디렉토리/페이지이름
String page="/memo/memo_view.jsp";
RequestDispatcher rd = request.getRequestDispatcher(page);
rd.forward(request, response);
2) redirect : 화면 전환 + 주소 변경, 소용량 데이터 전송
이동할 주소에 context path포함해야 함
String page=request.getContextPath()+"/memo.do";
response.sendRedirect(page);
✏️charset (java의 인코딩 방식)
- iso-8859-1 : Java의 기본인코딩(서유럽언어)
- ms949 or euc-kr : 한국어(다국어 지원x)
- utf-8 : 한국어(다국어 지원) - 권장
✏️Query String 변수 사용 방법
//String type만 넘길 수 있음
보낼 때 : url?변수=값&변수=값
http://localhost/jsp01/ch01/queryStringTest.jsp?no=10&name=kim
//보낼 때 url?변수=값&변수=값
//http://localhost/jsp01/ch01/queryStringTest.jsp?no=10&name=kim
//받을 때 request.getParameter("변수")
request.getParameter("no") // 10
request.getParameter("name") // kim
'꿈 : 멋진 개발자 🧸 > Java' 카테고리의 다른 글
[Spring] 스프링 회원 관리 프로그램 (0) | 2022.09.23 |
---|---|
[JSP] JSP(Java Server Pages)의 내장 객체/ MVC패턴 / 프레임 워크(Framework) (0) | 2022.07.17 |
[Java] 서블릿이란? (0) | 2022.07.17 |
[자바/Java] GUI 커피 주문 프로그램(키오스크) ☕ (0) | 2022.06.08 |
[자바/Java] 도서 관리 프로그램 📖 (0) | 2022.05.31 |