상세 컨텐츠

본문 제목

JSP 예제 (메서드 및 변수 출력, li 배열 출력, table 구구단 )

FrontEnd/JSP (JavaServerPage)

by H_Develop 2022. 8. 16. 18:51

본문

JSP_architecture.jsp

메서드 및 변수 출력

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.util.Calendar" %>
<%@ page import = "java.util.Random" %>
<%!	// 선언 영역(선언부) : 변수나 메서드를 정의하는 영역(전역변수 개념)
	// 원래 많이 사용하지는 않지만, 이해해둘 필요가 있다.
	int n = 0;	// Java Class를 사용하려면 하나하나 import 해야한다.
    Random rnd = new Random();
    public int plus (int a, int b) {
    	return a+b;
    }
%>
<%
	int random = rnd.nextInt(11) + 1;
    System.out.println(random);
    int n2 = 0;
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP 구조</title>
</head>
<body>
	<p><%= "n++ : " + n++ %></p>
	<p><%= "n2++ : " + n2++ %></p>
	<p><%= plus(random, random) %></p>
</body>
</html>

서버가 켜있는 상태에서 계속 페이지를 키면,

n++ : 2
n2++ : 0
2
n의 값은 계속 1씩 추가 된다.
빨간색 버튼으로 서버를 종료하고 다시 키면 n값은 초기화가 되어 0이 출력된다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
	String[] fruit_array = {"사과","배","참외","오렌지","복숭아"};
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style>
	ul {width : 130px;}
	li {list-style : none; background : #ff3300; 
		padding : 5px; margin : 3px 0; color : #ffffff; 
		font-weight : bold;}
	li:hover {background : #00cc00; color : #ffff00;}
</style>
</head>
<body>
	과일목록<br>
    <ul>
    	<%
        	for(int i=0; i<fruit_array.length; i++) {
        %>
        <li>
        	<%
            	fruit_array[i]
            %>
        </li>
        <%
        	}
        %>
    </ul>
</body>
</html>

 <% %>를 따로 사용하면서 li 안에 fuit_array[i]를 돌려서 배열의 값들을 출력하고,
 } 도 따로 닫아주었다.
자바와 관련된 부분은 모두 스크립트로 처리되어야 한다.

 

 

table을 이용한 구구단

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
	for(int i=1; i<=9; i++) {
		for(int j=2; j<=9; j++) {
			System.out.println(i + " * " + j + " = " + i*j + "\t");
		}
		System.out.println();
	}
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	table {border:2px solid black; border-collapse:collapse;}
	tr {height:30px;}
	td {width:110px; text-align:center;}
</style>
</head>
<!-- html 주석인데, 컴파일 시 그대로 자바코드로 전환되기 때문에 사용이 좋지 않다. 
그대로 노출될 가능성이 높다 -->
<%-- JSP 주석인데, 컴파일 시 자바코드로 전환되지 않아서 사용하기 좋다. --%>
<body>
	구구단
    <table border="1">
    	<%
        	for(int i=1; i<=9; i++) {
        %>
        <tr>
        	<%
            	for(int j=2; j<=9; j++) {
            %>
            <td>
            	<%
                	String str = String.format("%d * %d = %d", i, j, i*j);
                %>
                <%=
                	str
                %>	<%-- "<%="는 변수 처리 --%>
            </td>
            <%
            	}
            %>
        </tr>
        <%
        	}
        %>
	</table>
</body>
</html>

<!DOCTYPE html>
...
<html>
위 부분은 Consle에서 확인을 위함이고,
실제 출력 부분은 body 부분에서 실행된다.

관련글 더보기