드디어 JSP를 배운다.
본격적인 화면 출력을 할 수 있게 되었다.
배우게 되는 내용은 방대하지만
즐거운 마음으로 임하자 :)
아래의 내용은
JSP의 목차와도 같은 부분이다.
세부적인 내용은 천천히 다루도록 하겠다.
주석 사용법
<%-- 여기 안에서 주석 사용 할거예요 --%>
<%-- --%> : HTML과 JAVA를 동시에 주석 처리 할 수 있다.
<%-- HTML + JAVA 를 동시에 주석 --%> |
지시자
1. page
JSP문서에 대한 정보를 나타내는 지시자 이다.
contentType : 해당 문서를 HTML로 변환할건지 , XML로 변환할 건지 등을 결정한다. 또한 한글 변환을 선택할 수 있다.
errorPage : 페이지에서 에러가 났을 때 안내 문구 또는 이미지를 지정 할 수 있다.
buffer : HTML을 출력하는 메모리 공간을 나타낸다. 기본 8kb이며 16kb로 늘릴 수 있다.
import : 외부 라이브러리 / 자바 라이브러리를 가져올 수 있다.
* page지시자 중 import문만 동시에 여러개 사용이 가능하다. 아래의 표 참고
한줄에 여러개 <%@ page import="java.util.*, java.io.*"%> 각자 선언하기 <%@ page import ="java.util.*"%> <%@ page import ="java.op.*"%> |
2. taglib
자바 제어문, 자바 변수 선언, 화면 이동 , 날짜 변경, String 함수 등이 tag로 형태로 만들어져 있다.
태그를 사용하면 간단한 입력이 가능하다.
자바와 HTML문을 동시에 사용하면 굉장히 복잡하기 때문에 아래와 같이 태그를 이용하여FOR문을 출력 한다. (JSTL)
<c:forEach var="i" begin="1" end="100" step="1">
<c:if test="i%2==0">
${i}
</c:if>
</c:forEach>
3. include
조립식 형태이다. JSP안에 다른 다른 JSP를 첨부해서 사용이 가능하다.
파일을 나눠서 작업 후에 조립한다. 보통의 웹 사이트가 이러한 형태로 구성되어 있다.
스크립트
1.스크립트릿
<% %>
일반 자바 문을 입력할 때 사용된다.
_jspService() 영역에서 사용된다.
<% 여기는 자바 코딩이 들어가는 위치 = 변수 선언 = 제어문 = (<% %>)영역 안에서는 주석 : 자봐와 동일 //, /* */ %> |
2. 표현식
<%= %>
브라우저 변수 출력에 사용된다. out.println()과 같은 역할
_jspService() 영역에서 사용된다.
3. 선언식
<%! %>
메소드 선언, 멤버 변수 선언 등을 하며 사용빈도가 많지는 않다.
class 영역에서 사용된다.
내장 객체
미리 객체를 생성를 생성해서 사용이 가능하게 만든다. 9개 정도 있다.
1.request ☆
사용자 요청 값
한 번 사용하면 메모리에서 삭제되는 값이다.
session이 static 변수라면 request는 지역변수와 같은 역할
2.response ☆
응답 (화면 변환)
3.session ☆
서버 일부 정보를 저장한다. 모든 JSP에서 사용이 가능하다.(static)
로그인 후 예매를 할 때 다시 아이디를 입력하지 않는 것처럼
브라우저 실행 중에는 session 안에 있는 id를 사용한다.
4. application
서버 정보를 가지고 있다.
getRealPath() , 로그파일
<body> <%= application.getRealPath("/") %> </body> 위와 같이 입력 후 실행하면, 톰캣이 실제로 읽어가는 '실제 저장 경로'를 확인 할 수 있다. |
5.pageContext
페이지를 연결할 때 사용한다.
include() : 홈페이지의 로고, 로그인 정보, 네비게이션 바는 고정되어 있는 것처럼 고정되어 있는 부분을 지정할 때 사용된다. 보통 헤더와 풋터는 include를 이용하여 고정되어 있다.
forward()
6.page
this와 같은 역할이다. 자신을 나타낸다.
7.config
환결설정에 사용된다. web.xml
8.exception
예외처리 구간이다. 잘 사용하지 않으며
실무에서는 try ~ catch문을 사용한다.
9.out
화면 출력 부분이다.
out.print()
<%= %>
JSP 액션 태그
JSP에서 제공하는 태그이며 소스량을 줄일 수 있다. xml형식으로 되어 있다.
1.<jsp:include> : 화면 조립
2.<jsp:useBean> : 객체 메모리 할당
3.<jsp:setProperty> : setter에 값을 채운다. (밑의 소스 확인 하기 = 소스량을 확연히 줄인다)
사용자 > 이름, 성별, 주소, 전화, 소개
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String addr=request.getParameter("addr");
String tel=request.getParameter("tel");
String content=request.getParameter("content");
MemberVO vo=new MemberVO();
vo.setName(name);
vo.setSex(sex);
vo.setAddr(addr);
vo.setTel(tel);
vo.setContent(content);
위의 문장을 아래의 한줄로 요약 가능하다.
<jsp:setProperty name="vo" property="*">
4<jsp:getProperty> : 받은 데이터를 출력한다. getter의 역할
Cookie
클라이언트의 정보를 저장하고 있다.
최신 방문 내역 등을 확인 할 때 사용된다.
예를 들어 쇼핑몰이라면 "최근 본 목록" 등을 출력하게 할 수 있다.
내장 객체가 아니기 때문에 직접 생성해야 한다.
세션과 쿠키 모두 사용자의 흔적을 저장하지만 저장 경로에 따라 차이점이 존재한다.
세션은 서버에 저장하는 것이고 쿠키는 클라이언트에 저장한다.
개인 노트북에 id/pwd 정보를 저장해도 피씨방에서 홈페이지에 로그인 할 때 아무런 정보를 불러올 수 없는 이유는
세션이 아닌 쿠키로 저장되었기 때문이다. 쿠키는 클라이언트 즉, 사용자의 컴퓨터 안에만 저장된다.
EL / JSTL
EL과 JSTL은 불필요한 자바 코딩을 하지 않기 위해 사용된다.
JSP문서에서 자바코딩을 하게 되면 <% %> 을 반복적으로 사용해 가독성이 떨어진다.
EL | JSTL |
화면 출력 | 태그형 |
${ } | <c:forEach> , <c:if> ... 등 |
<%= %> 대신 사용됨 | for문, if문 대신 사용됨 |
MVC
자바와 HTML을 분리 하는 구조이다.
자바는 객체지향 언어로 확장성이 좋고 재사용이 편리하다.
그러나 HTML과 함께 사용한다면 이러한 이점을 완벽히 누릴 수 없기 때문에
자바와 HTML을 분리함으로써 자바의 장점을 100프로 연출하게 된다.
확장성과 재사용성은 유지보수에 필수적인 요소이기 때문에 일반적인 회사 등에서는 MVC 구조를 사용한다.
JSP는 절차적 언어이다. 즉 재사용이 불가능하다. 실무에서는 거의 사용되지 않는다. 이러한 방식을 model1이라고 한다.
MVC는 객제치향 언어이다. 즉 재사용이 가능하다. model2 방식이다.
2022.07.26 - [MVC 구조] - [MVC] MVC 구조가 필요한 이유와 기능 + DAO, DTO, VO 구분
'JSP(MVC)' 카테고리의 다른 글
미완성[JSP] session과 cookie 총정리 (쿠키 사용법) (0) | 2022.08.10 |
---|---|
[JSP] 중요!!!! MVC 구조가 필요한 이유와 기능 + DAO, DTO, VO 구분 (0) | 2022.07.26 |
미완성[JSP] request와 response 정리하기 (0) | 2022.07.19 |
[JSP] 지시자의 종류 #145 (0) | 2022.07.18 |
[JSP] 자바 Servlet 과 JSP의 차이점 // 웹의 동작 과정 (서버 클라이언트) (0) | 2022.07.18 |