본문 바로가기
개발/자바

(JSP) 33일차

by kakk789 2022. 5. 16.

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

 

반응형

댓글