/* ์ด ๊ธ์ ๊น์ํ๋์ ๊ฐ์๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ๋ ค๊ณ ์์ฑํ ๊ธ์ ๋๋ค.
๊ฐ์ธ์ ์ธ ๊ณต๋ถ๋ฅผ ์ํด ์ฌ๋ฆฌ๋ ๊ธ์ด๋ฏ๋ก ์ค๊ฐ ์ค๊ฐ ์ฝ๋๋ ์๋ต๋์์ต๋๋ค. */
1. JSP ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
JSP๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
*build.gradle์ ์ถ๊ฐ*
์คํ๋ง๋ถํธ 3.0 ๋ฏธ๋ง
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'
์คํ๋ง๋ถํธ 3.0 ์ด์
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'jakarta.servlet:jakarta.servlet-api' //์คํ๋ง๋ถํธ 3.0 ์ด์
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //์คํ๋ง๋ถํธ 3.0 ์ด์
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //์คํ๋ง๋ถํธ 3.0 ์ด์
2. JSP๋ก ํ์ ๊ด๋ฆฌ ์น ์ดํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
ํ์ ๋ฑ๋ก ํผ
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/jsp/members/save.jsp" method="post">
username: <input type="text" name="username" />
age: <input type="text" name="age" />
<button type="submit">์ ์ก</button>
</form>
</body>
</html>
- ์ฒซ ์ค์ JSP ๋ฌธ์๋ผ๋ ๋ป์ด๋ค. JSP๋ฌธ์๋ฅผ ์ด๋ ๊ฒ ์์ํด์ผ ํ๋ค.
- ์ฒซ ์ค์ ์ ์ธํ๊ณ ๋ ์์ ํ HTML๊ณผ ๋๊ฐ๋ค. JSP๋ ์๋ฒ ๋ด๋ถ์์ ์๋ธ๋ฆฟ์ผ๋ก ๋ณํ๋๋ค.
ํ์ ์ ์ฅ
<%@ page import="hello.servlet.domain.member.MemberRepository" %>
<%@ page import="hello.servlet.domain.member.Member" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
MemberRepository memberRepository = MemberRepository.getInstance();
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
%>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
์ฑ๊ณต
<ul>
<li>id=<%=member.getId()%></li>
<li>username=<%=member.getUsername()%></li>
<li>age=<%=member.getAge()%></li>
</ul>
<a href="/index.html">๋ฉ์ธ</a>
</body>
</html>
- JSP๋ ์๋ฐ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ค ์ฌ์ฉํ ์ ์๋ค.
- <%@ page import = "~~"> : java์ import๋ฌธ๊ณผ ๊ฐ๋ค
- <% ~ %> : java์ ์ฝ๋๋ฅผ ์ ๋ ฅํ ์ ์๋ค
- <%= ~ %> : java์ ์ฝ๋๋ฅผ ์ถ๋ ฅํ ์ ์๋ค
ํ์ ๋ชฉ๋ก ์ถ๋ ฅ
<%@ page import="java.util.List" %>
<%@ page import="hello.servlet.domain.member.MemberRepository" %>
<%@ page import="hello.servlet.domain.member.Member" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
MemberRepository memberRepository = MemberRepository.getInstance();
List<Member> members = memberRepository.findAll();
%>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/index.html">๋ฉ์ธ</a>
<table>
<thead>
<th>id</th>
<th>username</th>
<th>age</th>
</thead>
<tbody>
<%
for (Member member : members) {
out.write(" <tr>");
out.write(" <td>" + member.getId() + "</td>");
out.write(" <td>" + member.getUsername() + "</td>");
out.write(" <td>" + member.getAge() + "</td>");
out.write(" </tr>");
}
%>
</tbody>
</table>
</body>
</html>
*์๋ธ๋ฆฟ๊ณผ JSP์ ํ๊ณ
: ์๋ธ๋ฆฟ์ผ๋ก ๊ฐ๋ฐํ ๋๋ ๋ทฐ ํ๋ฉด์ ์ํ HTML์ ๋ง๋๋ ์์ ์ด ์๋ฐ ์ฝ๋์ ์์ฌ ์ง์ ๋ถํ๊ณ ๋ณต์กํ๋ค.
JSP๋ฅผ ์ฌ์ฉํ ๋๋ถ์ ๋ทฐ๋ฅผ ์์ฑํ๋ HTML ์์ ์ ๊น๋ํ๊ฒ ๊ฐ์ ธ๊ฐ๊ณ ๋์ ์ผ๋ก ๋ณ๊ฒฝ์ด ํ์ํ ๋ถ๋ถ์๋ง ์๋ฐ ์ฝ๋๋ฅผ
์ ์ฉํ๋ค.
ํ์ง๋ง ์ฝ๋๋ฅผ ์ ๋ณด๋ฉด Java์ฝ๋, ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฑ๋ฑ ๋ค์ํ ์ฝ๋๊ฐ ๋ชจ๋ JSP์ ๋ ธ์ถ๋์ด ์๋ค.
JSP๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ์ ๋ฐฑ, ์ ์ฒ์ค์ด ๋์ด๊ฐ๋ JSP๋ฅผ ๋ ์ฌ๋ ค๋ณด๋ฉด ์ง์ฅ๊ณผ ๊ฐ๋ค(....ํด)
๋ค์์๊ฐ์๋ MVC ํจํด์ ์ ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ๋ฆฌํฉํ ๋ง ํด๋ณด์!