HTTP
- 요청과 응답을 원활하게 수행하기 위한 요건을 표준화한 프로토콜
- '무 상태 서버'
Servlet (서블릿)
- Java에서 HTML을 표현하는 프로그래밍
- HttpServlet 상속 필요
- 사용자 요청들을 서버 측에 클래스로 만들어둬야함
- jsp를 요청하면 내부적으로 서블릿을 생성함
웹 컨테이너
- 자바 서블릿과 상호작용하여
- 웹컨테이너는 서블릿의 생명주기를 관리하고 URL과 특정 서블릿을 매핑하여 URL 요청이 올바르게 접근할 수 있도록 권한을 보장함
- 웹컨테이너는 결국 서블릿만 인식함 (JSP이 서블릿 클래스로 만들어짐)
JSP (Java Server Page)
- HTML에서 Java를 표현하는 프로그래밍
- 서블릿의 단점을 보완하기 위해 개발되었음
- 자바언어를 이용하여 서버의 문서를 만들기 위한 기술
- 동적인 웹 문서를 만들기 위함
- 사용자가 요청한 서비스가 데이터베이스를 필요로 하다면 사용자의 요청에 따라 프로그래밍을 통해서 동적으로 HTML을 만들어야함
서블릿
HTML 생성하는 명령어 (response.getWriter())
PrintWriter out = response.getWriter();
out.print("<html>");
out.print("<head></head>");
out.print("<body>");
out.print("<h2>게시물 목록</h2>");
out.print("</body>");
out.print("</html>");
필수 오버로딩 함수
- doGet()
- doPost()
- @WebServlet ("요청할 서블릿 이름")
@WebServlet("/서블릿명")
public class 서블릿명 extends HttpServlet {
protected void doGet
(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost
(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
JSP
스크립트 태그
스크립트 태그 | 형식 | 의미 |
스크립틀릿 (scriptlet) | <% %> | -JSP 내에서 자바 로직 코드를 작성할 때 사용 -변수 선언 시 서블릿의 서비스 메소드안에서 지역변수로 선언 됨. - 메소드를 만들 수 없음. |
주석문 (Comment) | <%-- --%> | - 주석문 |
지시자 (Directive) | <%@ %> | -먼저 처리 되어야 할 정보를 전달할 때 사용( ex - import) |
선언문 (Declaration) | <%! %> | -메소드를 정의하거나 변수 정의 시 사용 -서블릿 클래스 안의 멤버변수로 들어감. - 서블릿(클래스)의 '멤버 변수'나 '멤버 메소드'를 정의할 수 있음 |
표현문 (Expression) | <%= %> | -호출 결과를 문자열 형태로 출력할 떄사용 |
스크립틀릿
<%
String name;
name = "홍길동";
%>
이름은 <%= name %>
지시자
<%@ page import="import....." %>
선언문
<%!
int age=20;
public int getAge() { return age; }
%>
표현식
<%= '출력할 변수 명' %>
JSP 에러페이지 만들기 (예외처리)
- 프로젝트 생성 시 'Generate web.xml deployment descriptor' 해당 문구 체크 필요
방법 1
-> errorPage
<%@ page errorPage="리다이렉션 될 에러 페이지.jsp" %>
- 에러가 발생 될 페이지안에 아래와 같은 코드를 작성
<%@ page errorPage="error.jsp" %>
-> isErrorPage (리다이렉션 될 에러페이지 쪽)
<%@ page isErrorPage="true" %>
- 에러발생 시 처리 될 문서임을 표시
- 해당 선언문이 적혀있는 jsp에는 exception 내장 객체가 자동으로 포함된다,
<%@ page isErrorPage="true" %>
<body>
<%= exception.getMessage() %>
방법 2 (HTTP 상태코드 번호에 따라 리다이렉션 될 페이지를 각각 적용시킬 수 있음.)
- 에러페이지 생성 후 web.xml에 각각 에러코드에 대한 정보 입력
a. 500 에러 페이지 생성
- 자바 문법 실행 오류 시 동작
- 예외 객체인 exception 객체를 가질 수 있음 (isErrorPage="true" 포함시킬 것)
<%@ page isErrorPage="true" %>
b. 404 에러 페이지 생성
- 존재하지 않는 주소를 요청했을 경우 발생하는 오류
- 주소 자체가 존재하지 않으니 exception 객체가 존재할 수 없음
c. 기타 상태코드 페이지 생성
d. web.xml 설정
<error-page>
<error-code>
<location>
<error-page>
<error-code>500</error-code>
<location>/error_500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error_404.jsp</location>
</error-page>
쿼리스트링
- url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것
- ?로 파라미터의 시작을 나타내고 파라미터 사이를 &로 묶어 여러 파라미터를 서버로 전송할 수 있다.

Input 태그 속성

HTTP 요청 관련 메소드
함수명 | 반환 값 | 추가설명 |
getParameterNames() | Enumeration 객체 타입으로 반환 | 파라미터 '이름'들을 Loop 돌면서 getParameter 해야함 |
getParameter(String name) | String 타입으로 반환 | |
getParameterValues(String name) | String [] 타입으로 반환 | |
getParameterMap( ) | Map 객체 타입 | 파라미터 '키'를 Loop 돌면서 getParameter 해야함 |
서블릿 삭제 경로
C:\jspStudy\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\day0516\org\apache\jsp
반응형
'개발 > 자바' 카테고리의 다른 글
(Java) 쿼리스트링 (0) | 2022.05.17 |
---|---|
(Java) HTTP 요청 관련 메소드(getParameter, getParameterValue, getParameterNames, getParameterMap) (0) | 2022.05.16 |
자바 DATE 함수 비교 하는 방법 (BEFORE, AFTER) (0) | 2022.05.03 |
JSP파일 UTF-8 설정 (0) | 2022.04.26 |
이클립스 웹 환경 구성(톰캣 설치, JDBC 연동) (0) | 2022.04.20 |
댓글