Jsp&Servlet (1)
* 뉴렉처 jsp&servlet 강의를 듣고 공부하였습니다.
서블릿(Servlet)
서버에서 실행되는 자바 코드
서블릿의 호출 방식
get => doGet() 실행
post방식 => doPost()실행
web.xml을 이용하는 서블릿 매핑 방법
<servlet>
<servlet-name>서블릿의 별칭</servlet-name>
<servlet-class>서블릿 클래스 이름</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>서블릿의 별칭</servlet-name>
<url-pattern>서블릿을 호출할 url</url-pattern>
</servlet-mapping>
톰캣에 내장된 서블릿
1) DefaultServlet => 서블릿 클래스 매핑
2) JspServlet => *.jsp 페이지 매핑
JSP(Java Server Pages) : 서버에서 실행되는 자바 웹 페이지
- 자바 기반의 스크립트 언어
- 자바의 기능을 그대로 사용 가능
- HTTP에 대한 클라이언트 요청 처리/응답
- 웹 애플리케이션에서 결과 화면을 생성할 때 주로 사용
- 내부적으로 servlet으로 변환되어 실행됨
JSP의 기본 문법
//scriptlet(스크립틀릿)
<% 자바코드 영역 %>
//expression(표현식) : 웹브라우저에 출력
<%=식 or 값%>
<% out.println(식 or 값); %>
//근래에는 잘 안 쓰는 선언문
<%! 전역변수, method 선언 %>
//페이지 지시어
<%@ page language="java" 타입등 %>
주석 (Comment)
//Java 주석
// 한줄 주석
/* 여러줄 주석 */
// html 주석
<!-- -->
//sql script file 주석
--
JSP 페이지에서의 import 방법
1) 1행에 1개씩 import
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Calendar" %>
2) 1행에 여러 개 import
<%@ page import="java.text.SimpleDateFormat, java.util.Calendar" %>
page 모듈화
jsp 지시어 태그 - 1개의 클래스로 컴파일 됨 (변수 공유 가능)
<%@ include file="불러올 페이지 주소" %>
jsp 액션태그 - 2개의 클래스로 컴파일 됨 (변수 공유 불가능, 정적인 페이지)
<jsp:include page="불러올 페이지 주소" />
http 상태 코드 (http status code)
200 - success
403 - 권한 문제
404 - 잘못된 url
500 - internal server error (서버의 논리적인 오류) - 톰캣 console 확인
웹페이지 호출 방식
1) post 방식
- body를 통해 정보 전송
- 정보가 주소창에 노출되지 않음 , 대용량 자료 전송 가능
2) get 방식
데이터를 header에 붙여서 전송(주소창에 표시) 기본적인 방식, 보안에 취약
페이지 이동 방식
1) 자바스크립트
location.href = "이동할 주소";
2) JSP
2-1) forward : 화면전환 (주소는 고정), 대용량 데이터 전송 가능
이동할 주소에 context path(프로젝트 이름 or 웹서비스 이름) 기본 포함
http://localhost/jsp01/ch01/test.jsp
http://도메인/컨텍스트패스/디렉토리/페이지이름
ex) String page="/memo/memo_view.jsp";
RequestDispatcher rd = request.getRequestDispatcher(page);
rd.forward(request, response);
2-2) redirect : 화면전환 + 주소변경, 소용량 데이터 전송 이동할 주소에 context path 포함해야 함
ex) 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?변수=값&변수=값