ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jsp
    JSP 2021. 12. 13. 15:55

    저번 시간에 이어서,, 한번이라도 티켓팅을 해 봤다면 오류 페이지는 물론이고 "이선좌"를 못 봤을 리x

     

    공포의 이선좌,,를 뜨게 하는 방법을 알아보자..!

     

    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
    <% //예매가 확정된 좌석 정보를 저장할 리스트
    List<String> list = new ArrayList<>();
    if(application.getAttribute("complete_list") != null){
    list = (List<String>) application.getAttribute("complete_list");
    }
     
    //사용자가 예매를 희망하는 좌석 정보가 들어 있는 배열
    String[] seat = request.getParameterValues("seat");
     
    //예약 확정 전에 임시로 좌석 정보를 저장할 리스트
    List<String> temp = new ArrayList<>();
     
    int count = 0; //몇 자리를 예매할 수 있는지의 여부를 체크할 변수입니다.
    for(String s : seat){
    if(list.contains(s)) break; //좌석의 중복 발생!
    else{
    temp.add(s);
    count++;
    }
    }
     
    if(count == seat.length){
    list.addAll(temp);
    }
    application.setAttribute("complete_list", list);
    %>
     
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
     
    <div align="center">
    <h2>좌석 예매 결과</h2>
    <p>
    선택한 좌석: <br>
    <% for(String s : seat) { %>
    out.print("<strong>[" + s + "]</strong>");
    } %>
    <br>(이)가 예매 신청되었습니다.
    </p>
    <p>
    예매 신청 결과: <%=(count == seat.length) ? "성공" : "실패" %>
    <br>
    <% if(count != seat.length) { %>
    이미 선택된 자리입니다.
    <% } %>
    <br>
    <a href="concert_reserve.jsp">추가 예매하기!</a>
    </p>
    </div>
    </body>
    </html>

     

    공포의 이선좌 만들어 주기 완성!

     

    그리고 오늘은 java에서 배운 것을 전반적으로 복습하는 내용이었다.

             System.out.println("\n### 회원 관리 프로그램 ###");
             System.out.println("# 1. 회원 정보 등록하기");
             System.out.println("# 2. 전체 회원 정보 조회하기");
             System.out.println("# 3. 개인 회원 정보 조회하기");
             System.out.println("# 4. 회원 정보 수정하기");
             System.out.println("# 5. 회원 정보 삭제하기");
             System.out.println("# 6. 프로그램 종료");

     

    sql과 연동해서 java 콘솔창에서 입력하는 거였는데, 전체 코드를 올리면 안되니까!

     일단, public class MembersManager {

     private static Scanner sc = new Scanner(System.in);
     private static Connection conn;
     private static PreparedStatement pstmt;
     private static ResultSet rs;

    메인에서는,

    while(true) { 괄호을 열어,

    switch문으로 case를 각각 작성해 줬고,

     

    //Connection 객체를 제공하는 메서드.
    private static Connection getConnection() throws Exception {
     
    String driverName = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@localhost:1521:xe";
    String uid = "hr";
    String upw = "hr";
    Class.forName(driverName);
    return DriverManager.getConnection(url, uid, upw);
    }
    다른 건 예전에 올린 코드와 똑같았고, 제일 어려웠던 부분을 말하자면
    새로운 변수로 갈아야 하는 건가, 생각이 들었던 회원 정보 수정..
    //4. 개인 회원 정보를 수정하는 메소드
    private static void update() {
    System.out.println("수정하실 ID를 입력하세요.");
    System.out.println("> ");
    String id = sc.next();
     
    System.out.println("수정할 값을 입력하세요.");
     
    System.out.println("이름: ");
    String cName = sc.next();
     
    System.out.println("이메일: ");
    String cEmail = sc.next();
     
    String sql = "UPDATE members SET name=?, email=? WHERE id=?";
     
    try {
    conn = getConnection();
    pstmt = conn.prepareStatement(sql);
     
    pstmt.setString(1, cName);
    pstmt.setString(2, cEmail);
    pstmt.setString(3, id);
     
    int rn = pstmt.executeUpdate();
     
    if(rn == 1) {
    System.out.println("회원 정보가 수정되었습니다.");
    }else {
    System.out.println("회원 정보 수정에 실패했습니다.");
    }
     
    } catch (Exception e) {
    e.printStackTrace();
    }
     
    try {
    conn.close();
    pstmt.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    새 변수를 선언해서 적어주면 된다고 말씀해 주셔서 생각보다 별탈없이 풀게 되었다.

    내일도 실습(?) 문제를 푼다고 해서 티스토리에 무엇을 올려야 할지.. 고민이 된다..!

    'JSP' 카테고리의 다른 글

    jsp  (0) 2021.12.11
    jsp  (0) 2021.12.09
    jsp [2]  (0) 2021.12.09
    jsp 시작!  (0) 2021.12.08
Designed by Tistory.