티스토리 뷰

정리 노트/JSP

12주-2일차

eyoadgkn 2023. 12. 27. 17:26

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>

'정리 노트 > JSP' 카테고리의 다른 글

12주차-3일  (0) 2023.12.28
12주차-1일  (0) 2023.12.26
11주차-5일  (0) 2023.12.23
11주-4일  (0) 2023.12.21
11주-3일  (0) 2023.12.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함