티스토리 뷰

MCV패턴
모델 생성하기
:모델은 데이터 베이스에서 데이터를 가져오거나 웹 애플리케이션에 필요한 서비스를 수행하는 간단한 자바 클래스로 자바빈즈를 의미합니다. 여기서 자바빈즈는 데이터를 담은 멤버 변수인 프로퍼티와 데이터를 가져오거나 저장하는 getter/setter 메서드로 구성이 됩니다.
뷰 생성하기
:뷰는 웹 브라우저의 요청을 처리한 결과를 사용자에게 보여주는 JSP 페이지를 의미합니다. 뷰는 JSP가 제공하는 태그를 사용해 컨트롤러가 전송한 모델 데이터를 웹 브라우저에 출력을 합니다.
뷰 페이지 (view.jsp page 생성 예)
//view.jsp
<%
String msg = (String) request.getAttribute("message");
out.println(msg);
%>
web.xml
<servlet>
<servlet-name>mycontroller</servlet-name>
<servlet-class>controller.controllerservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>mycontroller</servlet-name>
<url-pattern>/aaa</url-pattern>
</servlet-mapping>
LoginBean.java
package controller;
public class loginbean {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String password;
public boolean validate()
{
if(password.equals("admin"))
{
return true;
}
else
{
return false;
}
}
}
ControllerServlet.java
package controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class controllerservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String id = req.getParameter("id");
String password = req.getParameter("password");
loginbean bean = new loginbean();
bean.setId(id);
bean.setPassword(password);
req.setAttribute("bean", bean);
boolean status = bean.validate();
if(status)
{
RequestDispatcher rd= req.getRequestDispatcher("mvc_success.jsp");
rd.forward(req,resp);
}
else
{
RequestDispatcher rd= req.getRequestDispatcher("mvc_error.jsp");
rd.forward(req,resp);
}
}
}
mvc.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>
<form action="aaa" method="post">
<p> 아이디 : <input type="text" name="id">
<p> 비밀번호 : <input type="password" name="password">
<p><input type="submit" value="전송">
</form>
</body>
</html>
mvc_success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="controller.loginbean" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p> 로그인 성공했습니다.
<p>
<%
loginbean bean = (loginbean) request.getAttribute("bean");
out.print("아이디 : " + bean.getId() );
%>
</body>
</html>
mvc_error.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>
<p>아이디와 비밀번호를 확인해주세요.
<%@ include file="mvc.jsp" %>
</body>
</html>
