공부/그룹 스터디

[3회차 04] jsp값 Controller로 넘기기

junani0v0 2024. 4. 17. 18:51

WebContent아래 resources를 압축을 풀어 넣어주고

WEB-INF/views에 login.jsp를 넣어 줍니다

resources.zip
0.12MB
login.jsp
0.00MB

 

먼저 login.jsp를 좀 수정해야 합니다

<input type="text" placeholder="Enter your email" required>

위 jsp코드에서 type, placeholder 등을 attribute라고 합니다. 현재 위 코드에서는 속성이 하나가 빠져있는데요

그게 무엇일까요??

 

바로 name입니다

이 코드의 값을 servelt으로 보내기 위해서는 name이 꼭 있어야 하고, 코드를 쉽게 하기 위해서는 id가 있어야 합니다

<input type="text" placeholder="Enter your email" name="email" required>

jsp코드를 봤을 때 attribute에 꼭 name이 있는지 확인해야 합니다

그리고 name은 의미 있는 단어로 해야 이 이름을 변수명으로도 사용할 수 있습니다

 

<div class="input-field">
    <input type="password" class="password" placeholder="Create a password" required>
    <i class="uil uil-lock icon"></i>
</div>
<div class="input-field">
    <input type="password" class="password" placeholder="Confirm a password" required>
    <i class="uil uil-lock icon"></i>
    <i class="uil uil-eye-slash showHidePw"></i>
</div>

다음은 위 코드처럼 비밀번호화 비밀번호 확인이 있습니다. 이럴 경우 비밀번호 확인에도 name을 추가해야 할까요??

정답은 No입니다 

대신 비밀번호 확인에는 id값은 꼭 필요하며, 비밀번호에는 id와 name이 필요합니다.

<div class="input-field">
    <input type="password" id="passwd1" class="password" placeholder="Create a password" name="passwd" required>
    <i class="uil uil-lock icon"></i>
</div>
<div class="input-field">
    <input type="password" id="passwd2" class="password" placeholder="Confirm a password" required>
    <i class="uil uil-lock icon"></i>
    <i class="uil uil-eye-slash showHidePw"></i>
</div>

위 코드처럼 id와 name을 추가하고 다른 곳(id, email)에도 이름이 빠진 곳에 이름을 추가해 줍니다

@Controller
public class LoginController {

	@RequestMapping("/loginPage.do")
	public String loginPage() {
		return "login";
	}
}

간단한 LoginController를 작성해 줍니다

 

<form action="#">
      |
      V
<form action="/{context root 이름}/join.do">

우리가 servlet으로 값을 받으려면 form action을 완성해줘야 합니다.

<div class="input-field button">
    <input type="button" value="Signup" onClick = "submit();">
</div>

그리고 버튼을 누르면 제출되도록 코드를 추가해 줍니다

@RequestMapping("/join.do")
public String join(@RequestParam HashMap<String, String> params) {
    System.out.println(params);
    return "join";
}

LoginController에 값을 params로 받는 RequestMapping을 추가해 줍니다

 

서버를 다시 시작 후 login.jsp에 값을 넣어 버튼을 클릭 

{memberId=admin, email=aaa@aaa.com, passwd=1234}

console에 우리가 출력한 params가 설정한 name과 값이 잘 출력되는 걸 확인합니다