
<% 자바 코드 %> : 스크립틀릿 : 안에 자바코드만 쓸 수 있다
결국 JSP는 뷰를 담당한다.
스크립틀릿(자바코드)는 서버에서 실행되고,
html ,css, js 는 클라이언트에서 실행된다.
JSP 구성요소
- html 태그, css ,js 코드
- JSP 기본태그
- JSP 액셔태그
- ( 개발자가 직접만들거나 framework에서 제공하는 custom 태그)
컨테이너의 JSP 변환과정
- 변환 단계 : JSP→.java파일로 변환
- 컴파일 단계 : .java → class파일로 변환
- 실행단계 : class파일 실행
디렉티브 태그
- 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보 설정 <%@ page ~~%>
- include 디렉티브 태그 : JSP페이지를 다른 JSP페이지에 추가할때
- ex) 쇼핑페이지에서 상단 메뉴는 고정이고, 상품상세보기 페이지만 바뀔때 등 사용
- ⇒ header를 공통으로 사용할때 header.jsp를 만들고, include시켜서 header사용
- directive : 소스를 가져와서 실행
- action tag : 실행하고 가져옴 , 파라미터 전달 가능, 동적처리 가능
대부분 directive를 쓰지만, 파라미터를 넘겨줄때는 action을 쓰는 경우가 있음<%//@ include file="header.jsp" %> //directive <jsp:include page="header.jsp"></jsp:include> //action tag //둘이 같은 코드임.
//header.jsp <div>여기는 헤더</div> <%=request.getParameter("name")%>
//main.jsp <jsp:include page="header.jsp"> <jsp:param value="moonswings" name="name"/> </jsp:include>
- ex)
- 태그라이브 디렉티브 태그 : 커스텀or 프레임워크에서 제공하는 태그
script + java code
<script>
<% int a = 1; %>
<% if(a==1){ %>
alert('a는1');
<% }else { %>
alert("호호");
<% } %>
</script>
//자바는 태그로 묶고, script는 그냥 script안에서 돌게
or
<%
int a = 2;
String v = a%2 == 1 ? "홀수" : "짝수";
%>
<script>
alert('<%= v %>입니다.');
</script>
//이렇게 써도 댐
에러처리
webapp 밑에 err 폴더 생성
web.xml에 코드 추가

<error-page>
<error-code>404</error-code>
<location>/err/err404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/err/err500.html</location>
</error-page>
⇒ 오류페이지 대신 html파일이 나온다.
jsp포워드
//a.jsp
<%
request.setAttribute("email", "hong@gmail.com");
//response.sendRedirect("b.jsp");
%>
<jsp:forward page="b.jsp"></jsp:forward>
//b.jsp
<body>
<h1> b.jsp </h1>
<%= request.getAttribute("email") %>
</body>
우선순위
같은 속성에서의 우선순위 (page가 먼저)
page > request > session > application
ID중복 여부
public boolean overlappedID(String id) {
boolean result = false;
try {
conn = dataFactory.getConnection();
String query = "SELECT COUNT(*) AS cnt FROM USERS WHERE ID=?";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
rs.next();
if(rs.getInt("cnt")==1) {
result = true;
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try {pstmt.close();}catch(Exception e) {}
try {conn.close();}catch(Exception e) {}
}
return result;
}
'JSP & Servlet' 카테고리의 다른 글
[ Servlet ] 나만 보고싶은 간단정리 part3 (0) | 2024.07.31 |
---|---|
[ Servlet ] 나만 보는 간단정리 part2 (0) | 2024.07.31 |
[ Servlet ] 나만 보려고 올리는 간단정리 part1 (0) | 2024.07.31 |

<% 자바 코드 %> : 스크립틀릿 : 안에 자바코드만 쓸 수 있다
결국 JSP는 뷰를 담당한다.
스크립틀릿(자바코드)는 서버에서 실행되고,
html ,css, js 는 클라이언트에서 실행된다.
JSP 구성요소
- html 태그, css ,js 코드
- JSP 기본태그
- JSP 액셔태그
- ( 개발자가 직접만들거나 framework에서 제공하는 custom 태그)
컨테이너의 JSP 변환과정
- 변환 단계 : JSP→.java파일로 변환
- 컴파일 단계 : .java → class파일로 변환
- 실행단계 : class파일 실행
디렉티브 태그
- 페이지 디렉티브 태그 : JSP 페이지의 전반적인 정보 설정 <%@ page ~~%>
- include 디렉티브 태그 : JSP페이지를 다른 JSP페이지에 추가할때
- ex) 쇼핑페이지에서 상단 메뉴는 고정이고, 상품상세보기 페이지만 바뀔때 등 사용
- ⇒ header를 공통으로 사용할때 header.jsp를 만들고, include시켜서 header사용
- directive : 소스를 가져와서 실행
- action tag : 실행하고 가져옴 , 파라미터 전달 가능, 동적처리 가능
대부분 directive를 쓰지만, 파라미터를 넘겨줄때는 action을 쓰는 경우가 있음<%//@ include file="header.jsp" %> //directive <jsp:include page="header.jsp"></jsp:include> //action tag //둘이 같은 코드임.
//header.jsp <div>여기는 헤더</div> <%=request.getParameter("name")%>
//main.jsp <jsp:include page="header.jsp"> <jsp:param value="moonswings" name="name"/> </jsp:include>
- ex)
- 태그라이브 디렉티브 태그 : 커스텀or 프레임워크에서 제공하는 태그
script + java code
<script>
<% int a = 1; %>
<% if(a==1){ %>
alert('a는1');
<% }else { %>
alert("호호");
<% } %>
</script>
//자바는 태그로 묶고, script는 그냥 script안에서 돌게
or
<%
int a = 2;
String v = a%2 == 1 ? "홀수" : "짝수";
%>
<script>
alert('<%= v %>입니다.');
</script>
//이렇게 써도 댐
에러처리
webapp 밑에 err 폴더 생성
web.xml에 코드 추가

<error-page>
<error-code>404</error-code>
<location>/err/err404.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/err/err500.html</location>
</error-page>
⇒ 오류페이지 대신 html파일이 나온다.
jsp포워드
//a.jsp
<%
request.setAttribute("email", "hong@gmail.com");
//response.sendRedirect("b.jsp");
%>
<jsp:forward page="b.jsp"></jsp:forward>
//b.jsp
<body>
<h1> b.jsp </h1>
<%= request.getAttribute("email") %>
</body>
우선순위
같은 속성에서의 우선순위 (page가 먼저)
page > request > session > application
ID중복 여부
public boolean overlappedID(String id) {
boolean result = false;
try {
conn = dataFactory.getConnection();
String query = "SELECT COUNT(*) AS cnt FROM USERS WHERE ID=?";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
rs.next();
if(rs.getInt("cnt")==1) {
result = true;
}
}catch (Exception e) {
e.printStackTrace();
}finally {
try {pstmt.close();}catch(Exception e) {}
try {conn.close();}catch(Exception e) {}
}
return result;
}
'JSP & Servlet' 카테고리의 다른 글
[ Servlet ] 나만 보고싶은 간단정리 part3 (0) | 2024.07.31 |
---|---|
[ Servlet ] 나만 보는 간단정리 part2 (0) | 2024.07.31 |
[ Servlet ] 나만 보려고 올리는 간단정리 part1 (0) | 2024.07.31 |