๐ก Servlet, JSP ์ ์ธ๊น?
๋์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ธฐ ์ํด์๋
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํด์ผํ๊ธฐ ๋๋ฌธ์ Servlet์ด๋ JSP๋ฅผ ์ฌ์ฉํ๋ค!
= ํ ๋ง๋๋ก, Java๋ก ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด์ผ ํ๋๋ฐ, Java๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์!!
* ๋์ ์น ํ์ด์ง : ๋ฑ๋ก๋ ์์๋ค ์ค ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ค์ด ๋์ค๋ ํ์ด์ง
Servlet
- Java ์ฝ๋ ๋ด HTML ์ฝ๋
- ์๋ฐ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ์์ ๋์ ์ผ๋ก ์์ฑํ ์น ํ์ด์ง๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ๋๋ ค์ค
Servlet Life-Cycle
- ๋จ์ํ ํด๋์ค๊ฐ ์๋ธ๋ฆฟ ํด๋์ค๊ฐ ๋๊ธฐ ์ํด์๋ ์๋ธ๋ฆฟ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ ธ์ผ ํจ
- init(), service(), destroy() ์์์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ถ์ ๋ฉ์๋๋ก ๊ฐ๋ ์ธํฐํ์ด์ค = servlet ์ธํฐํ์ด์ค
init()
:์๋ธ๋ฆฟ์ด ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ ๋ ๋ ํ๋ฒ ํธ์ถ (์ฝ๋ ์์ ์ผ๋ก ๋ค์ ๋ก๋ ๋๋ฉด ๋ค์ ํธ์ถ)
public void init(ServletConfig config)
throws ServletException
service()
๋ชจ๋ ์์ฒญ์ service()๋ฅผ ํตํด์ doXXX() ๋ฉ์๋๋ก ์ด๋ (์์ฒญ๋ง๋ค ๋ฐ๋ณต ํธ์ถ)
* service()๋ฅผ ์ฌ์ ์ ํ๋ ๊ฒฝ์ฐ doXXX() ๋ฉ์๋๋ฅผ ์ง์ ํธ์ถํด์ฃผ์!
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
IOException
// GET
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
IOException
// POST
protected void doPost(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
IOExceptionโ
destroy()
: ์๋ธ๋ฆฟ์ด ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ๋๋ฉด ํธ์ถ (์ฝ๋๊ฐ ์์ ๋๋ฉด ํธ์ถ)
public void destroy()
HttpServlet
: ์ฌ์ฉ์๊ฐ ์ ์ํ๋ service()๋ฅผ ๋ด์ ์์ ํด๋์ค
๐ก Servlet ์ธํฐํ์ด์ค
: init(), service(), destroy(), getServletConfig(), getServletInfo()
๋ฑ 5๊ฐ์ ๋ฉ์๋๋ฅผ ์ ์ธํ๊ณ ์์
= servlet ์๋ช ์ฃผ๊ธฐ์ ์ฐ๊ด๋ ๋ฉ์๋๋ค
๐ก GenericServlet ์ธํฐํ์ด์ค
: service() ๋ฉ์๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํ์ฌ ์ ์ ํ ๊ธฐ๋ฅ์ผ๋ก ๊ตฌํ
๐ก HttpServlet ์ธํฐํ์ด์ค
: GenericServlet์ ์์ํ์ฌ service() ๋ฉ์๋๋ฅผ ์ฌ์ ์ํจ์ผ๋ก์จ
HTTP ํ๋กํ ์ฝ์ ์๋ง์ ๋์์ ์ํํ๋๋ก ๊ตฌํ
( service() ๋ฉ์๋ ⇒ ์์ฒญ ๋ฐฉ์์ ๋ฐ๋ผ doGet(), doPost() ๋ฑ ์ ํด์ง ์ฌ์์ ๋ฉ์๋ ํธ์ถ)
Servlet ์ค์ต
โ servlet์ ํธ์ถํ HTML ํ๋ฉด
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Cache-Control" content="no-cache">
<title>์ฌ์ฉ์์ ๋ณด์ฌ์ดํธ</title>
<style>
label {
display: inline-block;
width: 80px;
}
</style>
</head>
<body>
<h1>์ฌ์ฉ์ ๊ด๋ฆฌ</h1>
<!-- method ํ์
์ค์ , submit์ ์ด๋๋ก ๊ฐ๊ฑด์ง ์ค์ ( ๋ฉ์ธ ์๋ธ๋ฆฟ url ) -->
<form method="post" action="main">
<fieldset>
<legend>์ฌ์ฉ์ ์ ๋ณด ์
๋ ฅ</legend>
<!-- front-controller pattern์์ ์์ฒญ์ ๊ตฌ๋ถํ๊ธฐ ์ํ parameter -->
<input type="hidden" name="action" value="regist">
<label for="id">์์ด๋</label>
<input type="text" id="id" name="id" value="hong"><br>
<label for="password">๋น๋ฐ๋ฒํธ</label>
<input type="password" id="password" name="password" value="1234"><br>
<label for="name">์ด๋ฆ</label>
<input type="text" id="name" name="name" value="ํ๊ธธ๋"><br>
<label for="email">์ด๋ฉ์ผ</label>
<input type="email" id="email" name="email" value="hong@email.com"><br>
<label for="age">๋์ด</label>
<input type="number" id="age" name="age" value="20"><br>
<input type="submit" value="๋ฑ๋ก">
<input type="reset" value="์ด๊ธฐํ">
</fieldset>
</form>
</body>
</html>โ
โ User.java (DTO)
@Getter
@Setter
public class User {
private String id; // ์์ด๋
private String password; // ๋น๋ฐ๋ฒํธ
private String name; // ์ด๋ฆ
private String email;// ์ด๋ฉ์ผ
private int age; // ๋์ด
// ๊ธฐ๋ณธ ์์ฑ์
public User() {
}
public User(String id, String password, String name, String email, int age) {
super();
this.id = id;
this.password = password;
this.name = name;
this.email = email;
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", password=" + password + ", name=" + name + ", email=" + email + ", age=" + age
+ "]";
}
}
โ ํธ์ถ๋ servlet
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;
import dto.User;
// ์ด ์๋ธ๋ฆฟ์ด ํธ์ถ๋๊ธฐ ์ํด์๋ url ์์ http:server_ip:port/context_name/main ์ด ํ์
@WebServlet("/main")
public class MainServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* get ๋ฐฉ์์ ์์ฒญ์ ๋ํด ์๋ตํ๋ ๋ฉ์๋
* front controller pattern์ ์ ์ฉํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก process๋ฅผ ํธ์ถ
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
/**
* post ๋ฐฉ์์ ์์ฒญ์ ๋ํด ์๋ตํ๋ ๋ฉ์๋
* front controller pattern์ ์ ์ฉํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก process๋ฅผ ํธ์ถ
*/
protected void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// post ์์ฒญ ์ ํ๊ธ ํ๋ผ๋ฏธํฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํด encoding ์ฒ๋ฆฌ
request.setCharacterEncoding("UTF-8");
process(request, response);
}
/**
* request ๊ฐ์ฒด์์ action ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถํด์ ์ค์ ๋น์ง๋์ค ๋ก์ง ๋ฉ์๋(ex: doRegist)ํธ์ถ
*/
private void process(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
switch (action) {
case "regist":
doRegist(request, response);
break;
}
}
/**
* ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ๊ฐ ์ ์ ๋ฌ๋๋์ง ํ์ธํ๊ณ ์ ๋ฌ ๊ฒฐ๊ณผ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅ
* ์ด๋ฅผ ์ํด request์์ ์ ๋ฌ ๋ฐ์ ๋ด์ฉ์ ์ถ์ถํด์ User ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ response๋ก ์ถ๋ ฅ
* ํนํ response ์ content์ ํ์์ ์ฃผ์
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doRegist(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request ๊ฐ์ฒด์์ ์ ๋ฌ๋ parameter๋ฅผ ์ถ์ถ
String id = request.getParameter("id");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
// ๋ฌธ์์ด๋ก ์ ๋ฌ๋ age๋ ์ซ์๋ก ๋ณํ
int age = Integer.parseInt(request.getParameter("age"));
// ์ ๋ฌ๋ฐ์ parameter๋ฅผ ์ด์ฉํด์ User ๊ฐ์ฒด๋ฅผ ์์ฑ
User user = new User(id, password, name, email, age);
// ํ๋ฉด์ ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑ
StringBuilder output = new StringBuilder();
output.append("<html><body>").append("<h1>์ฌ์ฉ์ ์ ๋ณด</h1>").append(user.toString()).append("</body></html>");
// response ๊ฐ์ฒด๋ฅผ ํตํด์ ์์ฑํ html์ฝ๋๋ฅผ ์ถ๋ ฅ
// ์๋ต์ด ์ด๋ค ํ์
์ธ์ง ์ค์
response.setContentType("text/html; charset=UTF-8");
response.getWriter().write(output.toString());
}
}
JSP (Java Server Page)
- HTML ์ฝ๋ ๋ด Java ์ฝ๋
- JSP๋ ์คํ ์ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋ ํ ์คํ๋จ
- ์๋ฐ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ์์ ๋์ ์ผ๋ก ์์ฑํ ์น ํ์ด์ง๋ฅผ ์น ๋ธ๋ผ์ฐ์ ์ ๋๋ ค์ค
JSP Scriptlet
์ ์ธ
๋ฉค๋ฒ ๋ณ์ ์ ์ธ์ด๋ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ ์์ญ
<%! ์ ์ญ๋ณ์ or method %>
์คํฌ๋ฆฝํธ๋ฆฟ
Client ์์ฒญ ์ ๋งค๋ฒ ํธ์ถ ์์ญ์ผ๋ก, Servlet์ผ๋ก ๋ณํ ์ `service()` method์ ํด๋น๋๋ ์์ญ
<% ์๋ฐ์ฝ๋ %>
ํํ์
๋ฐ์ดํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅํ ๋ ์ฌ์ฉ * ๋ฌธ์์ด ๋ค ; ์ ์์ฑ X
<%= ๋ฌธ์์ด %>
์ฃผ์
<%-- ์ฃผ์ ๋ด์ฉ --%>
JSP ๊ธฐ๋ณธ ๊ฐ์ฒด
๊ธฐ๋ณธ ๊ฐ์ฒด๋ช | Type | ์ค๋ช |
request | javax.servlet.http.HttpServletRequest | ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ ๋ณด๋ฅผ ์ ์ฅ HTML ํผ ์์์ ์ ํ ๊ฐ ๋ฑ ์ฌ์ฉ์ ์ ๋ ฅ ์ ๋ณด๋ฅผ ์ฝ์ด์ฌ ๋ ์ฌ์ฉ * scope - ํ๋์ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ์์ญ - ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญํ ๋ ๋ง๋ค ์๋ก์ด request ๊ฐ์ฒด๊ฐ ์์ฑ๋จ |
response | javax.servlet.http.HttpServletResponse | ์๋ต ์ ๋ณด๋ฅผ ์ ์ฅ ์ฌ์ฉ์ ์์ฒญ์ ๋ํ ์๋ต์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ |
pageContext | javax.servlet.jsp.PageContext | JSP ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅ ๊ฐ์ข ๊ธฐ๋ณธ ๊ฐ์ฒด๋ฅผ ์ป๊ฑฐ๋, forward ๋ฐ include ๊ธฐ๋ฅ์ ํ์ฉํ ๋ ์ฌ์ฉ * scope - ํ๋ฒ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํ์ฌ ํ๋์ JSP ํ์ด์ง๊ฐ ํธ์ถ - ํ์ด์ง ์์ญ์ ์ ์ฅํ ๊ฐ์ ํ์ด์ง๋ฅผ ๋ฒ์ด๋๋ฉด ์ฌ๋ผ์ง * ์ปค์คํ ํ๊ทธ์์ ์๋ก์ด ๋ณ์๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉ |
session | javax.servlet.http.HttpSession | HTTP ์ธ์
์ ๋ณด๋ฅผ ์ ์ฅ ํด๋ผ์ด์ธํธ์ ๋ํ ์ธ์ ์ ๋ณด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ page directive์ session ์์ฑ์ false๋ก ํ๋ฉด, ๋ด์ฅ ๊ฐ์ฒด๋ ์์ฑ ๋์ง ์์ * scope - ํ๋์ ์น ๋ธ๋ผ์ฐ์ ์ ๊ด๋ จ๋ ์์ญ - ๊ฐ์ ์น๋ธ๋ผ์ฐ์ ๋ด์์ ์์ฒญ๋๋ ํ์ด์ง๋ค์ ๊ฐ์ ์ธ์ ์ ๊ณต์ * ๋ก๊ทธ์ธ ์ ๋ณด ๋ฑ์ ์ ์ฅ |
application | javax.servlet.ServletContext | ์น ์ดํ๋ฆฌ์ผ์ด์
์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅ ์น ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ ํผ๋ฐ์คํ๊ธฐ ์ํด ์ฌ์ฉ * scope - ํ๋์ ์น ์ดํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ด๋ จ๋ ์์ญ - ์น ์ดํ๋ฆฌ์ผ์ด์ ๋น 1๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ์ฒด๊ฐ ์์ฑ๋จ - ๊ฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์์ฒญ๋๋ ํ์ด์ง๋ค์ ๊ฐ์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ์ฒด๋ฅผ ๊ณต์ |
๊ณตํต method
servlet๊ณผ jsp ํ์ด์ง ๊ฐ์ ํน์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฑฐ๋ ๊ณต์ ํ๊ธฐ ์ํ ๋ฉ์๋๋ฅผ ์ง์
// ๋ฌธ์์ด name์ผ๋ก Objectํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
void setAttribute(String name, Object object)
// ๋ฌธ์์ด name์ ํด๋นํ๋ ์์ฑ ๊ฐ์ด ์๋ค๋ฉด,
// Object ํํ๋ก ๊ฐ์ ธ์ค๊ณ (์ ์ ํ ํ๋ณํ ํ์)
// ์์ผ๋ฉด null์ ๋ฆฌํด
Object getAttribute(String name)
// ํ์ฌ ๊ฐ์ฒด์ ์ ์ฅ๋ ์์ฑ๋ค์ ์ด๋ฆ๋ค์ Enumeration ํํ๋ก ๊ฐ์ ธ์ด
Enumeration getattributenames()
// ๋ฌธ์์ด name์ ํด๋นํ๋ ์์ฑ์ ์ญ์
void removeAttribute(String name)
// ๋ฌธ์์ด name์ ํด๋นํญ๋ ์์ฑ ๊ฐ์ String ํํ๋ก ์ป์ด์ด
String getParameter(String name)
// ์ฌ๋ฌ ๊ฐ ์ ๋ฌ ์ ์ฌ์ฉ (ex. checkbox)
String[] getParameterValues(String name)
web page ์ด๋
forward(request, response) | sendRedirect(location) | |
์ด๋ ๋ฒ์ | ๋์ผ ์๋ฒ(project) ๋ด ๊ฒฝ๋ก | ๋์ผ ์๋ฒ ํฌํจ ํ URL ๊ฐ๋ฅ ex www.naver.com ๋ ๊ฐ๋ฅ! |
location bar | ๊ธฐ์กด URL ์ ์ง (์ค์ ์ด๋๋๋ ์ฃผ์ ํ์ธ ๋ถ๊ฐ) |
์ด๋ํ๋ page๋ก ๋ณ๊ฒฝ |
๊ฐ์ฒด | ๊ธฐ์กด์ request์ response๊ฐ ๊ทธ๋๋ก ์ ๋ฌ | ๊ธฐ์กด์ request์ response๋ ์๋ฉธ๋๊ณ , ์๋ก์ด request์ response ์์ฑ |
์๋ | ๋น๊ต์ ๋น ๋ฆ | forward()์ ๋นํด ๋๋ฆผ |
๋ฐ์ดํฐ ์ ์ง | request์ setAttribute(name, value)๋ฅผ ํตํด ์ ๋ฌ |
request๋ก๋ data ์ ์ฅ ๋ถ๊ฐ๋ฅ. session์ด๋ cookie๋ฅผ ์ด์ฉ |
// forward
RequestDispatcher dispatcher = request.getrequestdispatcher(path);
dispatcher.forward(request, response);
// sendRedirect
response.sendRedirect(location);
Servlet ์ค์ต
controller ์ญํ ์ servlet์ด !
view ์ญํ ์ jsp๊ฐ ํด์ฃผ๊ณ ์์์ ํ์ธํด๋ณด์.
โ servlet์ ํธ์ถํ JSP(HTML) ํ๋ฉด ( regist.jsp )
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ฌ์ฉ์์ ๋ณด์ฌ์ดํธ</title>
<style>
label {
display: inline-block;
width: 80px;
}
</style>
</head>
<body>
<h1>์ฌ์ฉ์ ๊ด๋ฆฌ</h1>
<form method="post" action="main">
<fieldset>
<legend>์ฌ์ฉ์ ์ ๋ณด ์
๋ ฅ</legend>
<!-- front-controller pattern์์ ์์ฒญ์ ๊ตฌ๋ถํ๊ธฐ ์ํ parameter -->
<input type="hidden" name="action" value="regist">
<label for="id">์์ด๋</label>
<input type="text" id="id" name="id" value="hong"><br>
<label for="password">๋น๋ฐ๋ฒํธ</label>
<input type="password" id="password" name="password" value="1234"><br>
<label for="name">์ด๋ฆ</label>
<input type="text" id="name" name="name" value="ํ๊ธธ๋"><br>
<label for="email">์ด๋ฉ์ผ</label>
<input type="email" id="email" name="email" value="hong@email.com"><br>
<label for="age">๋์ด</label>
<input type="number" id="age" name="age" value=21><br>
<input type="submit" value="๋ฑ๋ก">
<input type="reset" value="์ด๊ธฐํ">
</fieldset>
</form>
</body>
</html>
โ ํธ์ถ๋ servlet
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//์ด ์๋ธ๋ฆฟ์ด ํธ์ถ๋๊ธฐ ์ํด์๋ url ์์ http://server_ip:port/context_name/main ์ด ํ์ํจ
@WebServlet("/main")
public class MainServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* get ๋ฐฉ์์ ์์ฒญ์ ๋ํด ์๋ตํ๋ ๋ฉ์๋
* front controller pattern์ ์ ์ฉํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก process๋ฅผ ํธ์ถ
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
process(request, response);
}
/**
* post ๋ฐฉ์์ ์์ฒญ์ ๋ํด ์๋ตํ๋ ๋ฉ์๋
* front controller pattern์ ์ ์ฉํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก process๋ฅผ ํธ์ถ
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// post ์์ฒญ ์ ํ๊ธ ํ๋ผ๋ฏธํฐ์ ์ฒ๋ฆฌ๋ฅผ ์ํด encoding์ ์ฒ๋ฆฌํ๋ค.
request.setCharacterEncoding("utf-8");
process(request, response);
}
/**
* request ๊ฐ์ฒด์์ action ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถํด์ ์ค์ ๋น์ง๋์ค ๋ก์ง ๋ฉ์๋(ex: doRegist) ํธ์ถ
*/
private void process(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
switch (action) {
case "regist":
doRegist(request, response);
break;
}
}
/**
* ํด๋ผ์ด์ธํธ์์ ์ ๋ฌ๋ request๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ๋ฅผ regist_result.jsp์์ ๋ณผ ์ ์๋๋ก ํจ
* RequestDispatcher๋ฅผ ์ฌ์ฉํด์ regist_result.jsp๋ก forwardํ๋ค.
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void doRegist(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request ๊ฐ์ฒด์์ ์ ๋ฌ๋ parameter๋ฅผ ์ถ์ถ
String id = request.getParameter("id");
String password = request.getParameter("password");
String name = request.getParameter("name");
String email = request.getParameter("email");
// ๋ฌธ์์ด๋ก ์ ๋ฌ๋ age๋ ์ซ์๋ก ๋ณํ
int age = Integer.parseInt(request.getParameter("age"));
// ์ ๋ฌ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ request์ ๋ด์
request.setAttribute("id", id);
request.setAttribute("password", password);
request.setAttribute("name", name);
request.setAttribute("email", email);
request.setAttribute("age", age);
// reuqest์ ๋ด์ ์ ๋ณด๋ค์ ๊ฒฐ๊ณผ ํ์ด์ง์ ๋๊ฒจ์ค
RequestDispatcher disp = request.getRequestDispatcher("/regist_result.jsp");
disp.forward(request, response);
}
}
โ servlet์ด ๋๊ฒจ์ค JSP(HTML) ํ๋ฉด ( regist_result.jsp )
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ฌ์ฉ์ ๋ฑ๋ก ๊ฒฐ๊ณผ</title>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
}
th:nth-child(1) {
width: 120px;
}
</style>
</head>
<body>
<h1>์ฌ์ฉ์ ๋ฑ๋ก ๊ฒฐ๊ณผ</h1>
<h2>๋ฑ๋ก๋ ์ฌ์ฉ์ ์ ๋ณด</h2>
<%-- ํ
์ด๋ธ ๋ด์์ User์ ๋ด์ฉ์ ์ถ๋ ฅํ๊ธฐ ์ํด expression tag๋ฅผ ์ฌ์ฉ --%>
<table>
<thead>
<tr>
<th>ํญ๋ชฉ</th>
<th>๋ด์ฉ</th>
</tr>
</thead>
<tbody>
<tr>
<td>์์ด๋</td>
<td><%=request.getParameter("id")%></td>
</tr>
<tr>
<td>๋น๋ฐ๋ฒํธ</td>
<td><%=request.getParameter("password")%></td>
</tr>
<tr>
<td>์ด๋ฆ</td>
<td><%=request.getParameter("name")%></td>
</tr>
<tr>
<td>์ด๋ฉ์ผ</td>
<td><%=request.getParameter("email")%></td>
</tr>
<tr>
<td>๋์ด</td>
<td><%=request.getParameter("age")%></td>
</tr>
</tbody>
</table>
<!-- ๋ค์ ์ฌ์ฉ์๋ฅผ ๋ฑ๋กํ ์ ์๋ ๋งํฌ๋ฅผ ์ ๊ณต -->
<a href="regist.jsp">์ถ๊ฐ๋ฑ๋ก</a>
</body>
</html>
๐ก Servlet๊ณผ JSP ๋น๊ต
๊ณตํต์
- ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ ์๋ฒ ํ๋ก๊ทธ๋จ
์ฐจ์ด์
- Servlet : Java ์ฝ๋ ๋ด HTML
- JSP : HTML ๋ด Java ์ฝ๋
Servlet + JSP
์ต๊ทผ์๋ Servlet๊ณผ JSP๋ฅผ ํจ๊ป ์ฌ์ฉํ์ฌ ์น์ ๊ตฌํํ๋ MVCํจํด์ Model 2 ๋ฐฉ์์ด ์ฃผ๋ก ์ฌ์ฉ๋๊ณ ์์
- View → HTML์ด ์ฃผ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ JSP๋ฅผ ์ฌ์ฉ
- Controller → Java๊ฐ ์ฃผ๋ก ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ Serlvet์ผ๋ก ์์ฑ
'WEB > back-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Interceptor (0) | 2023.04.22 |
---|---|
AOP(Aspect Oriented Programming, ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ) (0) | 2023.04.22 |
Spring (0) | 2023.04.21 |
JDBC๋ฅผ ์ด์ฉํ DB ์ฐ๊ฒฐ (MySQL) (0) | 2023.03.24 |
DAO, DTO, Entity ๋? (0) | 2023.03.22 |