서블릿/JSP(웹서버 프로그래밍)

박문기·2022년 2월 8일
0

서블릿
자바 웹 서버프로그램

입력 request UTF-8로 설정
출력 response, HTML태그 출력에 도움주기 위해 JSP 코드블록 사용

JSP(자바 서버 페이지)
HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다. 자바 서버 페이지는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만, 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다.
MVC2 에서 뷰에 해당하며 코드블럭이 필요한 경우 EL, JSTL과 같이 간편한 라이브러리가 있음

서블릿메소드 종류



서블릿 맵핑
WEB-INF 폴더에 안에 데이터는 외부에서 직접 요청할수 없어서 맵핑 해야함,
컨텍스트 매핑(디렉토리)은 server.xml에 하고
서블릿(class)매핑은 web.xml에 함
신식
web.mxl에서 metadata-complete를 false로 수정(true로 하게되면 모든 메타데이터가 web.xml에 있다는 뜻이므로 false로 바꾸고 어노테이션 @WebServlet("/hello")로 설정한걸로 가능하게 함)

web.xml 수정
ex) 구식
servlet>
servlet-name>na</servlet-name
servlet-class>Nana</servlet-class (Nana 앞에 패키지가 있으면 패키지명까지 넣어야함)
</servlet

servlet-mapping>
servlet-name>na</servlet-name
url-pattern>/hello</url-pattern
</servlet-mapping

한글깨질경우
response.SetCharacterEncoding("UTF-8"); UTF-8로 사용하기위해서 보내는것.
이렇게만 세팅하면 브라우저마다 자의적으로 UTF-8로 해석하거나 EUC-KR로 해석하기 때문에 추가로
response.setContentType("text/html; charset=UTF-8"); 브라우저에게 해석하라고 알림
request.setCharacterEncoding("UTF-8"); 홈페이지에서 입력시 한글깨짐방지,(서버에서 UTF-8로 읽음), setCharacterEncoding대신에 아래그림의 주황색 부분에 필터넣어 한글 입력한 것들을 출력 가능하게함,
방법1.

이 필터로 인해 모두 한글적용이 가능하게함.(톰캣에서 세팅하는 방식은 비추)

방법2.
web.xml

서블릿 구조
https://velog.io/@gillog/a-j5c0h49n
MVC Model1

MVC Model2
코드 자체가 물리적으로 완전히 분리 되어 있는 상태
control - 서블릿(JAVA)
model - HttpServletRequest,
상태를 저장하기위한 객체(pageContect, request, session, application)
4개가 가능한데 그중에 뷰랑 공유하기 위한 객체는 request, session, application 3개이며 그중에 request가 가장 적합.
view - JSP(HTML) -> 요청이 오면 서블릿 코드가 만들어지고,컴파일,로드 됨

WEB-INF에 view폴더만들어서 jsp데이터 넣어둘것,
사용자가 필요한 데이터가 아니기 때문에 가지고 올 수 없게 만듬



EL표기법

저장객체에서 값을 추출하는 순서
cnt키워드가 4개 에 다 있을경우 page, request, session, application 우선순으로 찾아서 먼저 있는곳에서 찾고 정지됨, 그러나 뒤에 Scope를 붙이면 재가 원하는 곳만 찾아서 저장소에서 값을 꺼내올 수 있음.

EL연산자

EL연산

JSTL JSP Standard Tag Library
JSP페이지에서 반복문이나 함수 사용하기 위함.
https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
jar파일 다운로드하여 lib폴더에 저장하고
JSP파일 제일위에 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 추가
ex)
<c:forEach var="n" items="${list}">

				<tr>
					<td>${n.id}</td>
					<td class="title indent text-align-left"><a href="detail?id=${n.id}">${n.title}</a></td>
					<td>${n.writerId}</td>
					<td>${n.regdate}</td>
					<td>${n.hit}</td>
				</tr>
				</c:forEach>

Java Resources => 자바 클래스 ,Servlet 도 자바 클래스
WebContent => JSP 파일, HTML, CSS 등


배열방법

Application 저장소 즉 서블릿 Context라고함
(데이터를 이어갈수 있는 저장소 ex, 입력한 1값을 저장했다가 2를 더할수 있게 A라는 서블릿을 저장하면 B서블릿이 이어서 결과물을 이어서 새로운 결과물을 만듬 ))

.JSP 파일을 통해서 서블릿 코드를 작성가능하게 한다.
자바코드 작성 하려면 <% 코드 작성 부분(출력하는 부분이 아님)%>

add.jsp파일을 생성하면 자동적으로 add_jsp.java 파일이 톰캣서버 안에 만들어지고 서블릿 코드형식으로 전환되어짐

write메소드는 문자열 출력, print메소드는 다양한 형태 자료형 출력

액션태그
아래 2개 코드는 같은 의미임
<jsp:useBean id="dao" class="board.BoardDAO"/> jsp액션태그
BoardDAO dao = new BoardDAO(); 객체생성

profile
안녕하세요

0개의 댓글

관련 채용 정보