- 2019/08/22 JSP 성적프로그램(기초문법,배열,메소드)2019년 08월 22일
- 조별하
- 작성자
- 2019.08.22.:42
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>
※밑에 있는 이름에 맞는 데이터를 각각 넣어줄때 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 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)