Skip to content

hw1 helloMVC

JeongHyeon Lee edited this page Sep 27, 2020 · 4 revisions

hw1-helloMVC Report

๊ธฐ์กด ๋กœ๊ทธ์ธ ์–‘์‹์— ํšŒ์›๊ฐ€์ž… ์–‘์‹์„ ์ถ”๊ฐ€ํ•˜๊ณ , ์„ฑ๊ณต์ ์œผ๋กœ register ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๊ฐ€์ž…์„ ๋งˆ์น˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

1. ํšŒ์›๊ฐ€์ž… ์–‘์‹ ๋งŒ๋“ค๊ธฐ

๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž… form์„ table์— ๋‹ด์•„ ๊น”๋”ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

<!-- /hw1-helloMVC/WebContent/view/registerForm.jsp -->

<h1>Registration Form</h1>
    <div class="ex">
        <!--
        action ์†์„ฑ์— submit์‹œ form-data๋ฅผ ์ „์†กํ•  ๊ณณ์„ ์ง€์ •ํ•˜๊ณ 
        ์ „์†ก ๋ฐฉ์‹์€ post๋กœ ์ง€์ •ํ•˜์—ฌ URL์— ์ž…๋ ฅ์ •๋ณด๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋„๋ก ํ•˜๊ณ  header์— ์ •๋ณด๋ฅผ ๋‹ด์•„ ์ „์†กํ•œ๋‹ค.
        -->
	<form action="/hw1-helloMVC/doRegister" method="post">
            <table>
		<tr>
		    <th colspan="2">Enter Information Here</th>
		</tr>
		<tr>
		    <td class="category">์•„์ด๋””</td>
		    <td class="user-info"><input type="text" name="id" /></td>
		</tr>
		<tr>
		    <td class="category">๋น„๋ฐ€๋ฒˆํ˜ธ</td>
		    <td class="user-info"><input type="password" name="password" /></td>
		</tr>
		<tr>
		    <td class="category">์ด๋ฆ„</td>
		    <td class="user-info"><input type="text" name="name" /></td>
		</tr>
		<tr>
		    <td class="category">์„ฑ๋ณ„</td>
		    <td class="user-info">
                        <!-- ์„ฑ๋ณ„์„ ์„ ํƒํ•˜์ง€ ์•Š๋”๋ผ๋„ ์—๋Ÿฌ๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก default ๊ฐ’์œผ๋กœ none์„ ์ง€์ • -->
                        <input type="hidden" name="gender" value="none" />
		        <input type="radio" name="gender" value="male" /> ๋‚จ์ž
			<input type="radio" name="gender" value="female" /> ์—ฌ์ž
		    </td>
		</tr>
		<tr>
		    <td class="category">์ด๋ฉ”์ผ</td>
		    <td class="user-info"><input type="email" name="email" /></td>
		</tr>
		<tr>
		    <td class="category"></td>
		    <td class="user-info"><input type="submit" value="register" /></td>
		</tr>
            </table>
        </form>
    </div>
</body>

๊ฒฐ๊ณผ๋ฌผ

registration form

2. ๊ฐ€์ž… ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

2-1. Create DoRegister.java

registerForm.jsp์—์„œ ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ Customer ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  registerSuccess.jsp๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

/* /hw1-helloMVC/src/controller/DoRegister.java */

@WebServlet("/doRegister")
public class DoRegister extends HttpServlet {
    ...

    /**
      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /* form์—์„œ์˜ name ์†์„ฑ ๊ฐ’๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ์ฃผ์–ด ์ „์†ก๋œ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค. */
	String id = request.getParameter("id");
	String password = request.getParameter("password");
	String name = request.getParameter("name");
	String gender = request.getParameter("gender");
	String email = request.getParameter("email");
		
        /*
         * ๊ฐ€์ž…ํ•œ ๊ณ ๊ฐ์˜ ์ •๋ณด๋ฅผ parameter๋กœ ๋ฐ›์•„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ ,
         * addCustomer ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค์— ๊ณ ๊ฐ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
         */
	CustomerService service = (CustomerService) CustomerService.getInstance();
	Customer customer = new Customer(id, password, name, gender, email);
	service.addCustomer(customer);
		
	String page;
        /* ํ•„์ˆ˜ ์ž…๋ ฅ ๊ฐ’๋“ค์ด ์ฑ„์›Œ์ ธ์žˆ์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์‹œ ๊ฐ’์„ ์ฑ„์šฐ๋„๋ก ์œ ๋„ */
	if (id.isBlank() || password.isBlank() || name.isBlank()) {
		page = "/view/registerFail.jsp";
		System.out.println("Please fill in the blanks");
	}
	else {
		page = "/view/registerSuccess.jsp";
		service.addCustomer(customer);
		request.setAttribute("customer", customer);			
	}
		
	RequestDispatcher dispatcher = request.getRequestDispatcher(page);
	dispatcher.forward(request, response);
    }
}

2-2. Create registerSuccess.jsp

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.

<!-- /hw1-helloMVC/WebContent/view/registerSuccess.jsp -->

<h1>You registered successfully.</h1>
<ul>
    <li>Id: ${customer.id}
    <li>Password: ${customer.password}
    <li>Gender: ${customer.gender}
    <li>Name: ${customer.name}
    <li>Email: ${customer.email}
</ul>
<p>
    <a href="/hw1-helloMVC/index.jsp"> go to home page </a>
</p>

๊ฒฐ๊ณผ๋ฌผ

register-success

2-3. Create registerFail.jsp

๊ณผ์ œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์—๋Š” ์—†์—ˆ์œผ๋‚˜, ํ•„์ˆ˜ ์ž…๋ ฅ๊ฐ’๋“ค์ด ์ž…๋ ฅ๋˜์–ด์•ผ ๊ฐ€์ž…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ง„ํ–‰๋˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ID, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฆ„์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์ž… ์‹คํŒจ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์‹œ ๊ฐ€์ž… ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€ ๊ฐ’์„ ์ฑ„์šฐ๋„๋ก ์œ ๋„ํ•˜์˜€๋‹ค.

<!-- /hw1-helloMVC/WebContent/view/registerFail.jsp -->

<h1>Failed to join</h1>
You have to fill in at least ID, Password and Name..
<p>
	<a href="/hw1-helloMVC/view/registerForm.jsp"> try again </a><br>
	<a href="/hw1-helloMVC/index.jsp"> go to home page </a>
</p>

๊ฒฐ๊ณผ๋ฌผ

register-fail

3. ๋‚˜๋จธ์ง€ ์‹คํ–‰ํ™”๋ฉด

  • ๋ฉ”์ธ ํŽ˜์ด์ง€
    index-page
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
    login-form
  • ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธ ํ–ˆ์„ ๊ฒฝ์šฐ
    login-success
  • ๋กœ๊ทธ์ธ ์‹คํŒจํ–ˆ์„ ๊ฒฝ์šฐ
    login-failed

4. ๋Š๋‚€์ 

๊ฐ€์ž… ์–‘์‹ ์ค‘ ํ•„์ˆ˜ ๊ฐ’์„ ์ฑ„์šฐ์ง€ ์•Š์•˜๋‹ค๋ฉด ์ œ์ถœํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ž๊ฐ€ ์ฑ„์šธ ์ˆ˜ ์žˆ๋„๋ก ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์•„๋ณด์ธ๋‹ค.
๋˜ํ•œ ๋™์ผํ•œ UI๋กœ ๋งŒ๋“ค๋ผ๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ์–ด ๋„ฃ์ง€๋Š” ๋ชปํ•˜์˜€์œผ๋‚˜ ID ์ค‘๋ณต ํ™•์ธ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.