STUDY/JSP & Servlet

Jsp&Servlet (1)

개발하는 멍발자 2022. 7. 4. 23:53

* 뉴렉처 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?변수=값&변수=값