본문 바로가기
JSP

JSP(회원 정보 관리 프로그램)_2024-08-29

by 앵보몬 2024. 8. 30.
728x90
반응형

회원 정보 관리 프로그램

 

요구사항

1) 사용자 인터페이스

2) 설명 : 메뉴 기반의 텍스트 사용자 인터페이스 제공

3) 사례 : "1. 성명 2. 전화번호 3. 주소 

4) 핵심 : 사용자가 쉽게 각 기능을 선택

 

예외 처리

1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리

2) 사례 : 파일이 없을 경우, 잘못된 수량 입력

3) 핵심 : 안정적인 프로그램 동작 보장

 

telephone.html
0.00MB
telephone_number.java
0.00MB

 

telephone.html

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>회원정보관리</title>
  <style>
    #container {
      border: 3px solid skyblue;
      width: 500px;
      height: 250px;
      margin: 0 auto;
      font-weight: bolder;
      color: skyblue;
    }
    #button {
      margin-left: 400px;
      margin-top: -200px;
      width: 60px;
      height: 30px;
      background-color: skyblue;
      border: 1px solid skyblue;
      color: white;
     
    }
   
    h1{
        text-align: center;
    }
   
    #result {
      display: none;
      text-align: center;
      border: 3px solid skyblue;
      width: 500px;
      height: 250px;
      margin: 0 auto;
      font-weight: bolder;
      color: skyblue;
    }
    .contain {
        margin-left: 100px;
        width: 200px;
    }
    .contain > label {
        display: block;
    }
   
  </style>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script>
    $(document).ready(function () {
        $("#button").click(function(){
            $("#result").show();
        })
      $("form").submit(function (event) {
        event.preventDefault(); // Prevent default form submission

        var name = $("#name").val().trim(); // Trim whitespace
        var phone = $("#phone").val().trim(); // Trim whitespace
        var address = $("#address").val();

        // Input Validation (입력 유효성 검사)
        var isValid = true;
        if (name === "" || phone === "" || address === "") {
          $("#result").html("Please fill in all fields.");
          isValid = false; // Invalid input
        }

        if (!isValid) {
          return; // Prevent AJAX request if input is invalid
        }

        $.ajax({
          url: "/JSP/TEXT", // Make sure this matches your servlet mapping
          method: "POST",
          data: { name: name, phone: phone, address: address },
          beforeSend: function () {
            $("#result").html("Processing...");
          },
          success: function (data) {
            $("#result").html(data);
          },
          error: function (jqXHR, textStatus, errorThrown) {
            console.error("Error:", textStatus, errorThrown);
            $("#result").html(
              "An error occurred during processing. Please try again."
            );
          },
        });
      });
    });
  </script>
</head>
<body>
  <div id="container">
    <h1>회원정보 관리</h1>
    <form>
    <div class="contain">
      <label for="name">이름 : </label>
      <input type="text" id="name" name="name" /><br />
      <label for="phone">전화번호 : </label>
      <input type="text" id="phone" name="phone" /><br />
      <label for="address">주소 : </label>
      <input type="text" id="address" name="address" /><br />
    </div>
      <input type="submit" id="button" value="실행" />
    </form>
  </div>
    <div id="result"></div>
</body>
</html>

 

telephone_number.java

package common;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * Servlet implementation class TelephoneNumber
 */
@WebServlet("/TEXT")
public class telephone_number extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public telephone_number() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Handling GET requests
        response.setContentType("text/html");
        try (PrintWriter out = response.getWriter()) {
            out.println("<html><body>");
            out.println("<h1>GET method is not supported for this servlet.</h1>");
            out.println("</body></html>");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Retrieve form data
        String name = request.getParameter("name");
        String phoneNumber = request.getParameter("phone");
        String address = request.getParameter("address");

        response.setContentType("text/html; charset=utf-8");
        try (PrintWriter out = response.getWriter()) {
            out.println("<html><body><h2>입력한 정보</h2>");
            out.println("이름: " + (name != null ? name : "N/A") + "<br>");
            out.println("전화번호: " + (phoneNumber != null ? phoneNumber : "N/A") + "<br>");
            out.println("주소: " + (address != null ? address : "N/A") + "<br>");
            out.println("</body></html>");
        } catch (Exception e) {
            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
            response.getWriter().write("An error occurred: " + e.getMessage());
        }
    }
}

 

728x90
반응형