입력 받은 값을 서블릿으로 넘어가는 경로는 아래와 같음

서블릿으로 넘어갈 때 변수로 저장이 되어 넘어가게 됨!
ex) name = "id" 라면, String id = "아이디 입력 값"
으로 저장되어 서블릿으로 넘어감
코드로 예시를 자세히 살펴보자!
Ex02.jsp 파일
=============================코드=============================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<hr width = "30%" color = "blue">
<h2>로그인 페이지</h2>
<hr width = "30%" color = "blue">
<br/> <br/>
<form method = "get" action = "LoginServlet">
<table border = "1">
<tr>
<th>아이디</th>
<td>
<input type = "text" name = "id">
</td>
</tr>
<tr>
<th>비밀번호</th>
<td>
<input type = "password" name = "pwd">
</td>
</tr>
<tr>
<td colspan = "2" align = 'center'>
<input type = "submit" value = "로그인" >
<input type = "reset" value = "취소" >
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

서블릿으로 넘겨줄 파일을 생성해보자!
패키지 생성 -> Ex02.jsp 파일에 작성한 <form method = "get" action = "LoginServlet"> form 태그의 LoginServlet 이름을 servlet 으로 생성

그렇다면 코드가 아래와 같이 자동적으로 완성이 된다
=============================코드=============================
package goott;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
} // 기본 생성자
// 요청 객체 응답 객체
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// form 태그에 method = "get" 이라고 적혀 있는 경우나
// method 속성이 안 적혀진 경우에는 doGet() 메서드에서 처리
// 로그인 폼 페이지에서 넘어온 정보를 받아주면 됨
// Ex02내의 form 태그의 정보를 받는 방법
String userId = request.getParameter("id"); // id에 해당하는 값이 문자열로 반환 -> 그 값을 userId 라는 변수에 저장
String userPwd = request.getParameter("pwd");
System.out.println("입력 받은 아이디 >>> " + userId);
System.out.println("입력 받은 비밀번호 >>> " + userPwd);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
Ex02.jsp 파일에서 다시 실행한 뒤 콘솔창에 userId와 userPwd가 잘 출력되는지 확인해보자!

로그인 클릭!
콘솔창을 확인해보자

잘 출력이 됨!
서블릿에서 html에 입력값이 보여질 수 있도록 해보자!
=============================코드=============================
package goott;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
} // 기본 생성자
// 요청 객체 응답 객체
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// form 태그에 method = "get" 이라고 적혀 있는 경우나
// method 속성이 안 적혀진 경우에는 doGet() 메서드에서 처리
// 로그인 폼 페이지에서 넘어온 정보를 받아주면 됨
// Ex02내의 form 태그의 정보를 받는 방법
String userId = request.getParameter("id"); // id에 해당하는 값이 문자열로 반환 -> 그 값을 userId 라는 변수에 저장
String userPwd = request.getParameter("pwd");
System.out.println("입력 받은 아이디 >>> " + userId);
System.out.println("입력 받은 비밀번호 >>> " + userPwd);
// 응답은 response 매개변수를 이용하면 됨
// 클라이언트에 응답 시 한글을 작성하게 되면 한글이 깨져서 나오는 현상이 발생
// 이를 해결해야 함!!
response.setContentType("text/html; charset = UTF-8"); // Ex02에 있는 맨 위 ContentType과 동일명
PrintWriter out = response.getWriter(); // getWriter가 PrintWriter 반환타입임
out.println("<html>");
out.println("<head></head>");
out.println("<body>");
out.println("<h2>");
out.println("입력한 아이디 >>> " + userId + "<br/>");
out.println("입력한 비밀번호 >>> " + userPwd + "<br/>");
out.println("</h2>");
out.println("</body>");
out.println("</html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}

로그인을 클릭하면 창이 넘어가면서 입력한 값을 저장한 문자열이 출력됨!

위와 같이 out.println으로 html 형식을 작성하는 것은 번거롭고 어려운 일이다..!
따라서 이를 보완해주는 JSP가 있는 것임!!
별칭을 주어서 출력하는 방법도 있다!
Ex02 form 태그 밑에다가 똑같은 form 형식 복붙!
아까와 다르게 action = "Login"으로 이름 변경
마찬가지로 servlet을 생성해보자
연동이 되려면 /Login2Servlet 을 클릭하고 edit 클릭

똑같은 이름의 /Login 으로 수정 후 ok 클릭

이것을 mapping 이라고 함!!

위와 같은 방식을 보안상 주로 사용됨 (별칭을 주는 것)