WEB/JSP
[JSP] table, calendar, operator, declare
hvoon
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>
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>