본문 바로가기

웹 구축/Jsp & Servlet

JSP 1

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