-
[JSP] table, calendar, operator, declareWEB/JSP 2022. 9. 9. 18:42
table
HTML 테이블 생성
<table cellspacing="1" bgcolor="black" width="500"> <tr bgcolor="white" height="80"> <td>1행 1열</td><td>1행 2열</td><td>1행 3열</td><td>1행 4열</td><td>1행 5열</td> </tr> <tr bgcolor="white" height="80"> <td>2행 1열</td><td>2행 2열</td><td>2행 3열</td><td>2행 4열</td><td>2행 5열</td> </tr > <tr bgcolor="white" height="80"> <td>3행 1열</td><td>3행 2열</td><td>3행 3열</td><td>3행 4열</td><td>3행 5열</td> </tr> <tr bgcolor="white" height="80"> <td>4행 1열</td><td>4행 2열</td><td>4행 3열</td><td>4행 4열</td><td>4행 5열</td> </tr> <tr bgcolor="white" height="80"> <td>5행 1열</td><td>5행 2열</td><td>5행 3열</td><td>5행 4열</td><td>5행 5열</td> </tr> </table>
JSP 테이블 생성
<table cellspacing="1" bgcolor="black" width="500"> <% for(int i=1; i<=5; i++){ %> <tr bgcolor="white" height="80"> <% for(int j=1; j<=5; j++){ %> <td><%=i %>행 <%=j %>열</td> <% } %> </tr> <% } %> </table>
calendar
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Calendar" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>07_Calendar.jsp</title> <style type="text/css"> td{font-weight:bold; font-size:110%; } tr>td:first-child{color:red;} tr>td:last-child{color:blue;} a{text-decoration:none; font-size:110%} </style> </head> <body> <% Calendar sDay=Calendar.getInstance(); // 출력될 달력의 1일자를 저장할 객체 Calendar eDay=Calendar.getInstance(); // 출력될 달력의 말일자가 저장될 객체 int sYear=sDay.get(Calendar.YEAR); // 출력월의 날짜의 연도 int sMonth=sDay.get(Calendar.MONTH); // 출력월 날짜의 월(0~11) // 오늘 날짜로 sYear, sMonth 변수를 설정했다가 // 전달되는 파라미터가 존재한다면 그 값으로 대체 if(request.getParameter("sYear")!=null) sYear=Integer.parseInt(request.getParameter("sYear")); if(request.getParameter("sMonth")!=null){ sMonth=Integer.parseInt(request.getParameter("sMonth")); if(sMonth==12) { sMonth=0; sYear++; } if(sMonth==-1){ sMonth=11; sYear--; } } // request: 웹페이지에 별도로 만들지 않아도 존재하는 서버에 자료를 요청하기 위한 객체 sDay.set(sYear,sMonth,1); // 출력할 월의 1일자로 설정 eDay.set(sYear,sMonth+1,1); // 다음달 1일로 설정 후 eDay.add(Calendar.DATE,-1); // 바로 전날로 조정 -> 이달의 말일 int START_WEEK=sDay.get(Calendar.DAY_OF_WEEK); // 1:일요일, 2:월요일... int i,k,cnt=0; // i는 반복실행에 사용, k는 날짜 출력에 사용, // cnt는 줄바꿈에 사용 %> <table width="560" align="left" cellspacing="1" bgcolor="black"> <tr bgcolor="white" height="50"> <td align="center" colspan="7" style="font-size:150%"> <a href="07_Calendar.jsp?sYear=<%=sYear%> &sMonth=<%=sMonth-1%>">이전달</a> <%=sYear %>년 <%=sMonth+1 %>월 <a href="07_Calendar.jsp?sYear=<%=sYear%> &sMonth=<%=sMonth+1%>">다음달</a> </td> </tr> <tr bgcolor="white" height="50"> <td align="center" width="80">일</td> <td align="center" width="80">월</td> <td align="center" width="80">화</td> <td align="center" width="80">수</td> <td align="center" width="80">목</td> <td align="center" width="80">금</td> <td align="center" width="80">토</td> </tr> <!-- 첫번째행: 1일자 요일 전까지 열에는 공백, 그 위부터는 날짜가 1,2,3... --> <tr bgcolor="white" height="50"> <% for(i=1; i<START_WEEK; i++){ %> <td> </td> <!-- 첫칸부터 시작날짜의 요일바로 전열까지 빈칸 표시 --> <% } for(i=1; i<=8-START_WEEK; i++){ %> <td align="right"><%=i %> </td> <!-- 1일자부터 토요일까지 날짜 표시 --> <% } %> </tr> <!-- 두번째행부터 이어지는 날짜를 표시: 현재 표시할 날짜 -i, i부터 말일까지 표시 --> <tr bgcolor="white" height="60"> <% for(k=i; k<=eDay.get(Calendar.DATE);k++){ %> <td align="right"><%=k%> </td><!-- 날짜출력 --> <% cnt++; // 날짜 한 번 표시하고 cnt 증가 if(cnt%7==0){ %> </tr> <tr bgcolor="white" height="60"> <% } } for(i=1; i<=7-(cnt%7); i++){ %> <td> </td> <% } %> </tr> </table> </body> </html>
6월에서 이전달 클릭하면 나타나는 화면 6월에서 다음달 클릭하면 나타나는 화면
operator
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>01_Operator.jsp</title> </head> <body> <% int num1=20; int num2=7; double num3; int add=num1+num2; out.print(num1+" + "+num2+" = "+add+"<br>"); add=num1-num2; out.print(num1+" - "+num2+" = "+add+"<br>"); add=num1*num2; out.print(num1+" * "+num2+" = "+add+"<br>"); num3=num1/(double)num2; out.print(num1+" / "+num2+" = "+num3+"<br>"); // <%= 를 대신할 메서드 out.print() %> <!-- out.print(): System.out.print()와 비슷해보이지만 이 메서드는 웹페이지에 출력하는 메서드 --> </body> </html>
declare
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>02_Declare.jsp</title> <%-- jsp는 실행영역과 선언부영역으로 구분됨. 보통 실행영역은 body 안에서 <%%>로 표시된 곳에 기술되지만 선언부는 head 부분에서 <%! %>로 표시된 곳에 대부분 기술됨 --%> <%! // 선언부의 시작: 선언부 영역은 변수, 메서드 등이 정의됨 // 변수 선언 String str="안녕하세요!!"; int a=5, b=-5; // 메서드 정의 public int abs(int n){ if(n<0) n=-n; //n=-1*n return n; } // jsp의 메서드는 static으로 선언하지 않아도 사용 가능함 %> </head> <body> <% // jsp 실행부의 시작 int c=10; c++; a++; out.print(str+"<br>"); out.print(a+"의 절대값: "+abs(a)+"<br>"); out.print(c+"의 절대값: "+abs(c)+"<br>"); %> <br><br> <%=str %><br> <%=a %>의 절대값: <%=abs(a) %><br> <%=c %>의 절대값: <%=abs(c) %><br> </body> </html>
'WEB > JSP' 카테고리의 다른 글
[JSP] servlet, action tag form (0) 2022.09.09 [JSP] login form, forward form, server object (0) 2022.09.09 [JSP] variable, import, request, include (0) 2022.09.09 [JSP] sum, form, checkbox, select (0) 2022.09.09 [JSP] Java Server Pasge (0) 2022.09.09