JSP (Java Server Page)
기존 Servlet 은 메서드와 사용자 뷰가 분리되어있어
1.코드가 수정되면 다시 컴파일하여 배포해야한다.[Class 별개]
2. Html 소스를 서블릿 클래스 내에서 관리해야 한다. "<html>" 식으로
3. 프로그램이 복잡해지면 Servelt 을 통해 출력되는 HTML 페이지를 상상하기 어렵다.
JSP는 클래스 내에 HTML 을 작성하는 Servlet 구조와 달리
HTML 안에서 Java 코드를 작성하게 된다.
확장자 .jsp 로 동작하는 동적 웹애플리케이션 컴포넌트이다.
jsp -> 서블릿 -> 클래스 -> html 으로 변환되어 실행된다.
서블릿 : 복잡한 로직 구현에 적합
JSP : HTML 코드 중심이므로, 화면작성이나 수정에 용이
JSP 구성요소
스크립트릿(Scriptlet) <% %> 으로 이루어지고, 이 사이에 자바 소스코드를 삽입하여 사용
표현식(Expression) <%=%> 출력결과 (html 요소 내) 에 값을 넣기 위해 사용한다. (변수 값을 출력하고 싶을때)
지시자 (Directive) <% @ %> JSP에 대한 설정 정보 또는 JSP 페이지에 다른 문서를 포함시킬 때 사용
선언문 <% ! %> JSP페이지 내부에 자바 메서드 변수 선언
『스크립트릿』
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<!-- scriptlet -->
<% int num1 = 10;
int num2 = 20;
int result = num1*num2;%>
<!-- 표현식 -->
결과 : <%=result %>
</body>
</html>
스크립트릿에 변수를 선언하고
표현식으로 결과를 내보내는 예시이다.
java코드 안에서 html 표현식 을 사용하는 방법은 두가지가 있다.
<% int num = 10;%>
<table border="1">
<tr>
<% for(int i=1; i<10; i++)
{ %><td><%out.print(i);%></td><%}%>
</tr>
</table>
하나는 다음과 같이 문자 단위로 끊어서 표현하는것이고 ( {에서 끊고 <td> 하였음)
<body>
<% int num = 10;%>
<table border="1">
<tr>
<% for(int i=1; i<10; i++)
out.print("<td>"+i+"</td>"); %>
</tr>
</table>
하나는 다음과 같이 더블 쿼테이션으로 html 태그를 묶어줄 수 있다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action ="ex13_data.jsp">
이름: <input type="text" name = "name">
<input type="submit">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<% String name = request.getParameter("name"); %>
이름: <%= name %>
</body>
</html>
하나의 페이지에서 name을 보내 다른 페이지에서 받아오는 코드이다.
post방식은 servlet과 마찬가지로 폼의 메서드를 post로 지정하고
인코딩 메서드를 사용할 것을 명시하면 된다.
'웹 구축 > Jsp & Servlet' 카테고리의 다른 글
JSP 3 쿠키, 세션 (0) | 2021.01.28 |
---|---|
JSP 2 - 지시자. (0) | 2021.01.28 |
Servlet 3 (0) | 2021.01.27 |
Servlet 2 (0) | 2021.01.26 |
Servlet (0) | 2021.01.26 |