새소식

JAVA 교육/Jsp

2019/08/22 JSP 성적프로그램(기초문법,배열,메소드)

  • -

1) java에서 했던 성적 을 나타내보자

<%@ page  contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>02_성적프로그램.jsp</title>
</head>
<body>
	<h1>성적프로그램</h1>
	<%
	String name="겨울밤";
	int kor=80, eng=90, mat=85;
	int aver= (kor + eng+ mat)/3;
	
	//1)출력
	out.println("이름:"+name+"<br>");
	out.println("국어:"+kor+"<br>");
	out.println("영어:"+eng+"<br>");
	out.println("수학:"+mat+"<br>");
	out.println("평균:"+aver+"<br>");
	//byte int short long
	
	%>
</body>
</html>

왼쪽- 위의 코드를 서버를 통해 출력해 낸값 오른쪽- 그 웹 페이지를 페이지 소스보기 보았다

코드로 나타내는 HTML 문법인 태그는 페이지 소스보기로 보여지지만 JSP는 보여지지 않는다!

 

2) JSP안에서 표를 작성하여 출력해보자

//2)표작성 출력
	out.println("<table border='1px'>");
	out.println("<tr>");
	out.println("<th>이름</th>");
	out.println("<td>"+name+"</td>");
	out.println("</tr>");
	out.println("<tr>");
	out.println("<th>국어</th>");
	out.println("<td>"+kor+"</td>");
	out.println("</tr>");
	out.println("<tr>");
	out.println("<th>영어</th>");
	out.println("<td>"+eng+"</td>");
	out.println("</tr>");
	out.println("<tr>");
	out.println("<th>수학</th>");
	out.println("<td>"+mat+"</td>");
	out.println("</tr>");
	out.println("<tr>");
	out.println("<th>평균</th>");
	out.println("<td>"+aver+"</td>");
	out.println("</tr>");
	out.println("</table>");

결과

3) 표현식(Expression) : out.print() 의 단축키

<table border="1">
	<tr>
	<th>이름</th>
	<td><%out.print(name);%></td>
	</tr>
    </table>

※ 위와 같이 html <body> 태그안에 테이블을 작성할때 JSP를 이용할 수 있다

<body>
<tr>
<th>국어</th>
<td><%=kor%></td>
</tr>
<tr>
<th>영어</th>
<td><%=eng%></td>
</tr>
<tr>
<th>수학</th>
<td><%=mat%></td>
</tr>
<tr>
<th>평균</th>
<td><%out.print(aver);%></td>
</tr>
</body>

※ 또 다른 방법으로 <%=     %>안에 '=' 을 넣어줘서  JSP에서 설정한 변수값을 넣어주면 <%=kor%> 출력가능

같은 결과


4) 배열

<%@ page  contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>03_배열.jsp</title>
</head>
<body>
<h1>성적프로그램(배열)</h1>
<%
	String[] name={"봄비","여름바다","가을하늘","겨울밤","계절이"};
	int[] kor    ={100,75,65,85,95};
	int[] eng    ={100,40,80,95,90};
	int[] mat    ={95,50,60,35,85};
	int[] aver   =new int[5];
	int[] rank   ={1,1,1,1,1};
	int size=name.length;
	
		//1)평균을 구하시오
		//2)등수를 구하시오(평균을 기준으로)


//	name[0]의 평균은
//	(kor[0]+eng[0]+mat[0])/3 이다			
//	aver[0]= (kor[0]+eng[0]+mat[0])/3		
//	rank[0] 은 rank[1],ranl[2],ranl[3],ranl[4] 과 비교해서
//	작으면 rank[0]+=1 크면 rank[0]=rank[0] 
					
			
	for(int a=0; a<size;a++){
		aver[a]=(kor[a]+eng[a]+mat[a])/3;
	}
	for(int a=0; a<size;a++){		
		for(int b=0; b<size;b++){
				if(aver[a]<aver[b]){
				rank[a]=rank[a]+1;
		}
	}
		out.println(name[a]+"의 평균은 "+aver[a]+"이고 등수는 "+rank[a]+"입니다"+"<br>");
	}//for end
		out.println("<hr>");
%>

▲위에 할당한 배열로 각 이름에 맞는 평균과 등수를 구함

▼HTML에서 표를 이용해 데이터 값을 출력해보자

<table border="1">
<tr>
	<th>이름</th>
	<th>국어</th>
	<th>영어</th>
	<th>수학</th>
	<th>평균</th>
	<th>등수</th>
	<th>결과</th>
    <th>star</th>
    <th>우등생</th>
</tr>
<%
	for(int a= 0; a<size; a++){
%>			
<tr>
	<td><%=name[a]%></td>
	<td><%=kor[a]%></td>
	<td><%=eng[a]%></td>
	<td><%=mat[a]%></td>
	<td><%=aver[a]%></td>
	<td><%=rank[a]%></td>
	<td></td>
</tr>		
<% 		
		}//for end
%>
	
</table>

위에서 구한 데이터들을 HTML 에서 표로 작성

※밑에 있는 이름에 맞는 데이터를 각각 넣어줄때 for문을 사용해 줘야 하는데
  HTML에서는 for이 들어가지 않기 때문에 <% %>를 중간에 넣어줘서 for 문을 넣고 위에서
  만든 배열을 반복문으로 레터링시켜준다.

 

▼위의 테이블에서 결과 값을 출력해 보자

<%
	if(aver[a]>=70){
		if(kor[a]<40||eng[a]<40||mat[a]<40){
			out.print("재시험");
		}else{
			out.print("합격");
		}
	}else{out.print("불합격");}
%>

<td></td>안에 if문으로 조건을 걸어주어 과락을 결과값에 출력해준다

 

▼위 조건과 같이 점수 10점당 ★을 넣어주고 평균이 95점 이상인 학생을 장학생을 빨강색으로 나타내 주자

<td>
<%
		if(aver[a]>=70){
			if(kor[a]<40||eng[a]<40||mat[a]<40){
				out.print("재시험");
			}else{
				out.print("합격");
			}
		}else{out.print("불합격");} 

%>
		</td>
		<td>
<%	
		for(int star=1;star<=aver[a]/10; star++){
			out.print("<style>.a{color:orange}</style>");
			out.print("<strong class='a'>★</strong>");
		}
%>	
		</td>
		<td>
<%	
		//평균이 95이상이면 장학생(진하게,빨강색)
		if(aver[a]>95){
			out.print("<style>.b{color:red}</style>");
			out.print("<strong class='b'> 장학생</strong>");
		} 
%>	
		</td>


5) 메소드

<%@ page  contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>04_메소드.jsp</title>
</head>
<body>
	<h1>JSP 사용자 정의 함수</h1>
	최대값 : <%=max(3,5) %>
	<hr>
	두수 사이의 차이 : <%=diff(2,6) %>
    
<%!
	//<% 태그에 !만 넣어주면 된다
	//JSP함수 작성 영역  (많이 사용안함)
	public int max(int a ,int b){
	  return Math.max(a,b);
	}//max() end
		
	public int diff(int a ,int b){
	  int c= a-b;
	  return (c<0)?-c:c;	
		}//diff() end
%>
</body>
</html>

<%%>로 메소드를 불러와 변수값을 넣어준 함수를 만들어 보았다

-max(){} 함수는 Math.max로 매개변수 a,b 값을 넣어주어 함수 생성

-diff(){} 함수는 3항연산자를 이용해 두 수의 차인 함수를 생성하였다 

'JAVA 교육 > Jsp' 카테고리의 다른 글

2019/08/23 계산 연습  (0) 2019.08.23
2019/08/23 JSP에서 를 HTML이용한 성적 양식 만들어 보기  (0) 2019.08.23
2019/08/23 내부객체  (0) 2019.08.23
2019/08/22 JSP 기초 문법  (0) 2019.08.22
2019/08/21 JSP란?  (0) 2019.08.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.