빅데이터 서비스 교육/JSP Servlet

JSP 개념, 구성요소

Manly 2022. 5. 10. 09:50
반응형

JSP를 사용하는 이유

 

 

Servlet: Java 코드기반에 html코드가 들어가있다

 

 

 

 

JSP: html코드기반에 Java 코드가 들어가있다.

 

 

 

 

 

 

구현 -> Servlet

 

화면 -> JSP

 

각 경우에 맞춰서 쓴다.

 

 

 

 

 

 

 

 

 

 

 

 

.jsp 파일이 Servlet으로 바뀌고

 

서블릿이 컴파일되어 .class파일로

 

바뀌고 html로 변환되어 실행된다.

 

 

 

 

선언문: method, 전역변수를 만드는데 사용

 

스크립트릿: 자바코드의 영역

 

표현식: html사이의 변수를 출력

 

 

 

Dynamic web Project생성

 

Servlet은 src/main/java에 만들었었고

html은 src - webapp에 만들었었는데

JSP도 webapp에 만든다

JSP페이지 설명

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<!-- 
스크립 트릿
 html코드 사이에 java 코드를 작성하는 영역
 -->
 
	<%
	int num1 = 10;
	int num2 = 20;
	int result = num1 + num2;
	%>
	
	<!-- 
	표현식
	:html코드에 java 코드의 결과를 출력
	;을 쓰지 않음
	값, 값으로 떨어지는 식(메서드)를 쓴다
	 -->
	 <h1 class="<%=result %>"><%=result %></h1>
     
     	 <!-- 
	 1 ~ 100까지 합을 구해서
	 h1태그 사이에 출력해보세요.
	  -->
<%
int result1 = 0;
for(int i=1; i<=100; i++){
	result1 += i;
}
%>
<h1><%=result1 %></h1>

</body>
</html>

 

여러가지 출력해보기

<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 
1~10까지 담긴 table만들기
단! 반복문 사용해서 만들것
 -->
<table border='1'>
<tr>
<%
// 1. 내장객체 : Servlet으로 변환되는 과정에서 자동으로 선언
//            JSP에서 바로 사용할 수 있는 객체
for (int i=1; i<=10; i++){
out.print("<td>"+i+"</td>");
}

%>
</tr>
<tr>
<!-- 스크립트릿끼리는 단절되어 보이지만 서블릿으로 변환된 파일을 보면 이어져 있어서 변수도 같이 쓸 수 있다.
2. for문을 태그처럼 쪼개서 사용하는 방법
 --> 
<%for(int i=1; i<=10; i++){%>
	<td><%=i %></td>
<%} %>
</tr>

<!-- 1~20사이에 있는 짝수만 출력 -->
<tr>
<%for(int i=1; i<=20; i++){%>       <- 길어지면 헷갈릴수도 있으니까 그냥 하나씩 닫고 열고
	<%if(i%2==0){%>
		<td><%=i %></td>
	<%}%>
<%} %>
</tr>

</table>

</body>
</html>

 

<!-- 1~20사이에 있는 짝수만 출력 -->

 

두수의 합을 구하는 메소드 / 선언문

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 
선언문
: 메서드를 만들거나, 전역변수를 선언할때
변환된 class파일의 상단에 위치한다
변수 선언시 class의 field가 된다. (전역변수)
 -->

<%!
 // 두 수의 합을 구해주는 메서드
 public int sum(int num1, int num2){
	int result = num1 + num2;
	return result;
}

%>
<!-- 선언문에서 만든 메서드 사용 -->
<h1><%=sum(10,15) %></h1>

</body>
</html>

 

예제

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 
선언문
: 메서드를 만들거나, 전역변수를 선언할때
변환된 class파일의 상단에 위치한다
변수 선언시 class의 field가 된다. (전역변수)
 -->
 
<!-- 
  +, -, *, / 메서드 호출 하여 html페이지에 출력
  전역변수 num1,num2를 선언해서 이 두 수가 들어가게 설정
 -->
<%!
int num1 = 2;
int num2 = 2;

 // 두 수의 합을 구해주는 메서드
 public int sum(int num1, int num2){
	int result = num1 + num2;
	return result;
}

 public int minus(int num1, int num2){
		int result = num1-num2;
		return result;
	}
 
 public int multi(int num1, int num2){
	int result = num1*num2;
	return result;
}
 
 public int div(int num1, int num2){
	int result = num1/num2;
	return result;
}
%>
<!-- 선언문에서 만든 메서드 사용 -->
<h1><%=num1 %> + <%=num2 %> : <%=sum(num1,num2) %></h1>

<h1><%=num1%> - <%=num2 %> : <%=minus(num1,num2) %></h1>

<h1><%=num1%> * <%=num2 %> : <%=multi(num1,num2) %></h1>

<h1><%=num1%> / <%=num2 %> : <%=div(num1,num2) %></h1>
</body>
</html>

 

복습

 

 

반응형

'빅데이터 서비스 교육 > JSP Servlet' 카테고리의 다른 글

JSP request, response  (0) 2022.05.11
JSP 지시자, 내장객체  (0) 2022.05.10
JSP Servlet  (0) 2022.05.09
JSP/Servlet 데이터 전송  (0) 2022.05.03
JSP/ Servlet 웹 동작 방식  (0) 2022.05.02