JSP) ์๋ธ๋ฆฟ
๐ ์๋ธ๋ฆฟ(Servlet)์ด๋?
- ์๋ฐ๋ฅผ ์ด์ฉํด์ ์น ๊ฐ๋ฐ์ ํ๊ธฐ ์ํ ๊ธฐ์ ๋ก ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ํ์ด์ง์ธ
JSP
ํ์ผ์ ์ต์ข ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด ์๋ฐ ํด๋์ค ํ์ผ๋ก ๋ง๋ค์ด์ผ ํ๋๋ฐ ์๋ธ๋ฆฟ์ ๊ทธ ์ค๊ฐ ๊ณผ์ ์ด๋ผ ํ ์ ์๋ค. - ์ฆ
JSP(.jsp) -> Servlet(.java) -> ํด๋์คํ์ผ(.class)
์ด๋ฐ ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋๋ค.
์๋ธ๋ฆฟ ์์ฑ ๊ท์น
1) javax.servlet.Servlet ์ธํฐํ์ด์ค ๊ตฌํ
2) 1)์ ๊ตฌํ์ด ์ด๋ ค์ด ๊ฒฝ์ฐ javax.servlet.http.HttpServlet ํด๋์ค ์์(์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ)
3) doGet()/ doPost() ์์ฑ(์ค๋ฒ๋ผ์ด๋ฉ), HttpServletRequest/ HttpServletResponse ๊ฐ์ฒด ๊ตฌํ
4) IOException/ ServletException์ ์ฒ๋ฆฌํด์ผ ํจ
5) web.xml ํ์ผ์ ํตํด์ ์ฃผ์ ๋งคํ (์ด๋
ธํ
์ด์
์ฒ๋ฆฌ)
์๋ธ๋ฆฟ ์คํ ๊ตฌ์กฐ
์๋ธ๋ฆฟ ํด๋์ค ๋ง๋ค๊ธฐ
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
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;
import com.itwillbs.test.Student;
// ์๋ธ๋ฆฟ - jsp์ฝ๋ + java์ฝ๋๋ฅผ ํจ๊ป ์ํํ ์ ์๋ ํ์ผ
// ์๋ธ๋ฆฟ ํด๋์ค ์์๋ฐ์ผ๋ฉด ์๋ธ๋ฆฟ์ด ๋จ
// http://localhost:8090/JSP6/ex1
@WebServlet("/ex1")
public class ExServlet extends HttpServlet
{
// ํผํ๊ทธ์์ get method๋ฅผ ์ผ์ ๋ ํธ์ถ๋๋ ํจ์
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.println("doGet() ํธ์ถ");
// ์๋ต์ ๋ณด์ ๋ด์ฉ์ ํํ๋ html๋ฌธ์๋ก ํํํ๊ฒ ๋ค.
response.setContentType("text/html; charset=UTF-8");
// response๋ฅผ ํตํด์ ์ถ๋ ฅ๊ฐ๋ฅํ ํต๋ก๋ฅผ ์์ฑํ๊ฒ ๋ค.
// PrintWriter out = response.getWriter();
//
// // ์๋ธ๋ฆฟ์ ์ด์ฉํ JSP ํ์ด์ง ํํ - ์ฌ์ฉํ์ง ์์ ๊ฒ์
// out.print("<html>");
// out.print("<head>");
// out.print("</head>");
// out.print("<body>");
// out.print("<h1> ์๋ธ๋ฆฟ์ ํ์ฉํ JSPํ์ด์ง ๋ง๋ค๊ธฐ</h1>");
// out.print("</body>");
// out.print("</html>");
// out.close();
// ํฌ์๋ฉ ์ request ์์ญ์ ์ ๋ณด๋ฅผ ์ ์ฅ
request.setAttribute("itwill", "busan");
// ๊ฐ์ฒด์ ๋ณด๋ฅผ ์ ๋ฌ
Student kim = new Student();
kim.setName("๊นํ์");
kim.setKor(100);
kim.setEng(90);
kim.setMath(76);
request.setAttribute("Student", kim);
Student user = new Student();
user.setName("์ฌ์ฉ์");
user.setKor(45);
user.setEng(70);
user.setMath(98);
ArrayList<Student> memberList = new ArrayList<Student>();
memberList.add(kim);
memberList.add(user);
request.setAttribute("memberList", memberList);
// ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์ฌ์ฉํ ํ๋ฉด ์ถ๋ ฅ X
// => ํฌ์๋ฉ์ ์ฌ์ฉํ ํ๋ฉด ์ถ๋ ฅ O
// ์๋ฐ ์ฝ๋๋ฅผ ์ด์ฉํ ํฌ์๋ฉ ๋ฐฉ์ - ์ธ์ฐ๊ธฐ
// <jsp:forward/> ์ฌ์ฉ๋ถ๊ฐ - JSP ํ์ด์ง๊ฐ ์๋ ์๋ฐํ์ผ์ด๋ผ์ ๋ชป ์
// ์ด๋ํ ๊ฒฝ๋ก ์ค์
RequestDispatcher dis = request.getRequestDispatcher("/jstl/coreSet2.jsp");
dis.forward(request, response);
} // doGet()
}
- ์ด๋ ๊ฒ ๋ง๋ค๋ฉด ๋๋๋ฐ ์ฌ์ฉํ ํจ์๋ค์ ๋ค ์ค๋ฒ๋ผ์ด๋ฉ ํ๊ธฐ ๋๋ฌธ์ ์ผ์ผ์ด ์์ฑํ์ง ์์๋ ๋๋ค.
HttpServlet
์ ์์๋ฐ๊ณ ๋๋ฉด ์ดํด๋ฆฝ์ค๊ฐ ๊ตฌํํด์ผ ํ๋ ํจ์๋ค์ ๋ค ๋ง๋ค์ด ์ค๋ค.- ์ฐ๋ฆฌ๋ ํํ๊ฐ ๋ง๋ค์ด์ง ํจ์์ ๋ด๋ถ๋ง ์ฑ์ฐ๋ฉด ๋๋ค.
JSP ํ์ด์ง์์ ์๋ธ๋ฆฟ์ ํ์ฉํ ์ ๋ณด ์ ๋ฌ
<!-- ์๋ธ๋ฆฟ์์ ์ ์ฅ๋ ์ ๋ณด(request.setAttribute("itwill", "busan");) ์ถ๋ ฅ -->
itwill : <%=request.getAttribute("itwill") %><br>
itwill : ${itwill }<br>
itwill : ${requestScope.itwill }<br>
<!-- ์์ผ๋ก๋ ๋ณด์์ ์ํด ์ฃผ์์ ์ ๋ณด๊ฐ ์ฒ๋ฆฌ๋๋ jsp ํ์ด์ง๋ฅผ ๋ํ๋ด์ง ์์ ๊ฒ์
์๋ฐ ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์ด์ฉํด jsp ํ์ด์ง ์์ฑ(๊ฐ์์ฃผ์ ์์ฑ) -->
- ์๋ฐ ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ์ด์ฉํด
jsp
ํ์ด์ง๋ฅผ ์์ฑํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๋ธ๋ฆฟ ํด๋์ค๋ฅผ ์คํํ๋ฉดjsp
ํ์ด์ง๋ก ์ฐ๊ฒฐ๋์ด ์ก์ ์ ์ํํ์ง๋ง ์ฃผ์์ฐฝ์๋jsp
ํ์ด์ง๊ฐ ๋ํ๋์ง ์๊ณ ์ด๋ ธํ ์ด์ @WebServlet("/ex1")
์ ์ด/ex1
๊ฐ ๋งจ ๋ค์ ๋ถ์ด ์ฃผ์์ฐฝ์๋http://localhost:8090/JSP6/ex1
์ ๊ฐ์ ํํ๋ก ๋ํ๋๊ฒ ๋๋ค.
${Student}<br>
ํ์ ์ด๋ฆ : ${Student.getName() }<br>
๊ตญ์ด : ${Student.getKor() }<br>
์์ด : ${Student.getEng() }<br>
์ํ : ${Student.getMath() }<br>
<%
Student kim = (Student) request.getAttribute("Student");
%>
<%=kim.getName() %><br>
${Student.name }<br><!-- el ํํ์์์๋ ๋ด๋ถ์ ์ผ๋ก get/set ๋ฉ์๋๋ฅผ ์๋์ผ๋ก ๊ตฌํํด ์ฌ์ฉํจ. ๊ทธ๋์ ๋ณ์๋ช
์ผ๋ก๋ ์ ๊ทผ๊ฐ๋ฅ -->
<!-- ์ข ๋ ๊ฐ๋จํ๊ฒ ์ฐ๊ธฐ -->
<c:set var="kim" value="${Student }"/>
${kim.name }
<hr>
${requestScope.memberList }<br>
${requestScope.memberList[0].name }
- ๊ทธ๋ฆฌ๊ณ ์๊น ์๋ธ๋ฆฟ์์ ํจ๊ป ์ ์ฅํ๋ ํด๋์ค ๊ฐ์ฒด๋ ์์ ๊ฐ์ด
el ํํ์
์ ์ฌ์ฉํด์ ์ถ๋ ฅํ ์ ์๋ค.