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, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฆ„์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์ž… ์‹คํŒจ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์‹œ ๊ฐ€์ž… ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€ ๊ฐ’์„ ์ฑ„์šฐ๋„๋ก ์œ ๋„ํ•˜์˜€๋‹ค. ```

Failed to join

You have to fill in at least ID, Password and Name..

try again
go to home page

``` ### ๊ฒฐ๊ณผ๋ฌผ register-fail *** ## 3. ๋‚˜๋จธ์ง€ ์‹คํ–‰ํ™”๋ฉด - ๋ฉ”์ธ ํŽ˜์ด์ง€
index-page
- ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
login-form
- ์„ฑ๊ณต์ ์œผ๋กœ ๋กœ๊ทธ์ธ ํ–ˆ์„ ๊ฒฝ์šฐ
login-success
- ๋กœ๊ทธ์ธ ์‹คํŒจํ–ˆ์„ ๊ฒฝ์šฐ login-failed ## 4. ๋А๋‚€์  ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์• ์ดˆ์— ๊ฐ€์ž… ํŽ˜์ด์ง€์—์„œ ํ•„์ˆ˜ ๊ฐ’๋“ค์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ฐ€์ž… ์™„๋ฃŒ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ํ•˜๊ณ  ๊ฐ’์„ ์ฑ„์šฐ๋ผ๋Š” ํ‘œ์‹œ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€ ์„ ํƒ์ง€์˜€๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋˜ํ•œ ID ์ค‘๋ณต ํ™•์ธ ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•ด ๋ณด์ธ๋‹ค.
Clone this wiki locally