Servlet - 응용문제 [영화 예매 시스템]

2025. 2. 20. 17:43·Web

[영화 예매 시스템]

movie_part1.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>영화 예매 시스템</title>
</head>
<body>

<form id="frm" method="post" action="./movie_part2.do">
<p>영화 예매 시스템</p>
고객명 : <input type="text" name="mname"><br>
연락처 : <input type="text" name="mtel" maxlength="11"> "-"없이 숫자만 입력<br><br>
<p>영화 선택</p>
<ol>
<li><input type="radio" name="movie_name" value="히트맨2">히트맨2</li>
<li><input type="radio" name="movie_name" value="써니데이">써니데이</li>
<li><input type="radio" name="movie_name" value="브루탈리스트">브루탈리스트</li>
<li><input type="radio" name="movie_name" value="히어">히어</li>
<li><input type="radio" name="movie_name" value="하얼빈">하얼빈</li>
</ol>
예매일자 : <input type="date" name="mdate"><br>
<input type="button" value="예매하기" onclick="movieok()">
</form>

</body>
<script>
var movieok = function(){	
	if(frm.mname.value==""){
		alert("고객명을 입력하세요!");
		frm.mname.focus();
	} else if(frm.mtel.value==""){
		alert("연락처를 입력하세요!");
		frm.mtel.focus();
	} else if(isNaN(frm.mtel.value)){
		alert("연락처는 숫자만 입력하세요!");
		frm.mtel.focus();
	} else if(frm.mtel.value.length < 10){
		alert("연락처를 제대로 입력하세요!");
		frm.mtel.focus();
	} else if(frm.movie_name.value==""){
		alert("영화를 선택하세요!");
	}  else if(frm.mdate.value==""){
		alert("날짜를 선택하세요!");
	}
	else{
		frm.submit();
	}
}
</script>
</html>

movie_part2.java

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class movie_part2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
	PrintWriter pw = null;
	
	protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		res.setContentType("text/html;charset=utf-8");
		
		try {
			this.pw = res.getWriter();
			
			String mname = req.getParameter("mname");
			String mtel = req.getParameter("mtel");
			String movie_name = req.getParameter("movie_name");	
			String mdate = req.getParameter("mdate");
			
			String redate = mdate.replace("-", "");
			
//		System.out.println("예약 날짜 : " + redate);
//		System.out.println("오늘 날짜 : " + this.today());
			
			if(Integer.parseInt(redate) < Integer.parseInt(this.today())) {
				this.pw.write("<script>" 
						+ "alert('오늘 이후의 날짜로 예약해주세요.');" 
						+ "history.go(-1);" 
						+ "</script>");
			}else {
				ArrayList<String> data = new ArrayList<String>();
				data.add(mname);
				data.add(mtel);
				data.add(movie_name);
				data.add(mdate);
				
				req.setAttribute("data", data);
				RequestDispatcher rd = req.getRequestDispatcher("./movie_part2.jsp");
				rd.forward(req, res);				
			}
			
		}catch (Exception e) {
			this.pw.write("<script>" 
					+ "alert('올바른 접근이 아닙니다.');" 
					+ "history.go(-1);" 
					+ "</script>");
		}finally {
			this.pw.close();
		}
	}
	
	public String today() {
		Date day = new Date();
		SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
		return sf.format(day);
	}
}

movie_part2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList"%> 
<%
ArrayList<String> data = (ArrayList)request.getAttribute("data");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>영화 예매 확인</title>
</head>
<body>
<p>영화 예매 확인</p>
고객명 : <%=data.get(0)%><br>
연락처 : <%=data.get(1)%><br>
영화선택 : <%=data.get(2)%><br>
예매일자 : <%=data.get(3)%><br><br>
<input type="button" value="확인" onclick="kk()">
</body>

<script>
var kk = function(){	
		alert("*^-^*");
}
</script>
</html>

 

😭 어려웠던점

    • 라디오 체크 
      • else if(frm.movie_name.value=="")
      • 라디오는 값이 하나니까 그냥 value로 체크
    • 번호 숫자인지 체크 => isNaN() 사용 !
      • else if(isNaN(frm.mtel.value))
    • 날짜
      •  HTML에서 <input type="date"> => yyyy-MM-dd 의 형태로 나옴
      • servlet에서 오늘 날짜 가져오려할때 Date 임포트
        • import java.util.Date;  이거 맞는지 확인
      • 날짜 비교
        • HTML에서 넘어온 값에 -가 포함되어있음
        • 서블릿에서 replace 사용
저작자표시 비영리 변경금지 (새창열림)
'Web' 카테고리의 다른 글
  • Servlet - 응용문제 [파일을 서버에 저장]
  • Servlet - 모델
  • Servlet - Tree Page
  • Servlet - 모바일
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      datalist
      Oracle
      notice_writer
      net4
      exam1_1~10
      file24
      net1
      spring-boot
      re_java10
      ab1
      java_io1~10
      file25
      macbook pro m4
      net3
      noticewriteok
      net2
      re2
      net5~10
      file25_t
      io_dto
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    Servlet - 응용문제 [영화 예매 시스템]
    상단으로

    티스토리툴바