본문 바로가기

JSP(Java Server Page)

JSP 기본 예제 - 좌석예약하는 테이블 만들기

ch.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<script type="text/javascript">

String.prototype.trim=function(){

var p=/(^\s*)|(\s*$)/g;

return this.replace(p,"");

}


function send() {

var f=document.forms[0];

var row=f.row.value;

if(! row) {

alert("행수를 입력 하세요!!!");

f.row.focus();

return;

}

if(! /^[0-9]*$/g.test(row)){

alert("행은 숫자만 가능합니다.");

f.row.focus();

return;

}

if(parseInt(row)<5){

alert("행은 5이상만 입력 가능합니다.");

f.row.focus();

return;

}

f.row.value=row; // 앞뒤 공백 제가 한 값을 다시 대입해줌.

var col=f.col.value;

if(! col) {

alert("열수를 입력 하세요!!!");

f.col.focus();

return;

}

if(! /^[0-9]*$/g.test(col)){

alert("열은 숫자만 가능합니다.");

f.col.focus();

return;

}

if(parseInt(col)<5){

alert("열은 5이상만 입력 가능합니다.");

f.col.focus();

return;

}

f.col.value=col;

f.submit();

}

</script>

</head>

<body>


<form action="ch_form.jsp" method="post">

행수 : <input type="text" name="row"><br/>

열수 : <input type="text" name="col"><br/>

<input type="button" value="보내기" onclick="send();"><br/>

</form>

</body>

</html>


====================================================================================================================================


ch_form.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>


<%

request.setCharacterEncoding("utf-8");


    String _row=request.getParameter("row");

    String _col=request.getParameter("col");

    

    int row=10, col=15;

    if(_row!=null)

    row=Integer.parseInt(_row);

    if(_col!=null)

    col=Integer.parseInt(_col);

    

    int w=30+col*30+col/5*20;

    if(col%5==0)

    w-=20;

%>    

    

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>


<style type="text/css">

*{

padding: 0px; margin: 0px; font-size: 9pt;

}

td {

font-size: 9pt;font-family: 돋움;

}

</style>


<script type="text/javascript">

function send() {

var f=document.forms[0];

// 자바스트립트에서 표현식 사용 가능

var row="<%=row%>";

var col="<%=col%>";

var n=0;


for(var i=0; i<row*col; i++) {

if(f.ch[i].checked==true)

n++;

}

if(n<1 || n>5) {

alert("좌석은 1~5개 까지 가능 합니다.");

return;

}

    

f.submit();

}

</script>


</head>

<body>

<br/><br/>


<form action="ch_action.jsp" method="post">

<table width="<%=w%>">

<tr height="30">

<%

out.println("<td width='30'>&nbsp;</td>");

    for(int i=1; i<=col; i++) {

    if(i!=1 && i%5==1)

    out.println("<td width='20'>&nbsp;</td>");

    out.println("<td width='30' align='center'>"+i+"</td>");

    }

%>

</tr>


<%

    String s;

for(int i=1; i<=row; i++) {

out.println("<tr height='25'>");

out.println("<td align='center'>"+i+"</td>");

for(int j=1; j<=col; j++) {

if(j!=1 && j%5==1)

out.println("<td width='20' bgcolor='green'>&nbsp;</td>");

out.print("<td width='30' align='center'>");

s=i+":"+j;

out.print("<input type='checkbox' name='ch' value='"+

   s+"'>");

out.println("</td>");

}

out.println("</tr>");

}

%>

</table>


<table width="<%=w%>">

<tr height="50">

      <td align="left">

           <input type="button" value="좌석예약"

                 onclick="send();">

      </td>

</tr>

</table>

</form>

</body>

</html>


=======================================================================================================================


ch_action.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%

request.setCharacterEncoding("utf-8");

String[] ch=request.getParameterValues("ch");

String s="";

for(String c:ch)

s+=c+" ";

%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>


선택좌석:<%=s%>


</body>

</html>