get / post 등으로 받는다.
http://localhost:8080/guestbook02/gb 이런 url로 접속


- Model: 데이터를 가진 객체, 파라미터로 자주 쓰인다. DB의 테이블과 대응하는 경우가 많다.
- View: UI를 담당한다. 클라이언트 측 기술인 Html, Css, Javascript등으로 만들어진 컨테이너이다.
- Controller: UI를 통한 사용자의 입력 명령에 응답하고, 및 데이터 흐름 제어를 담당한다
=> 모델1 보다는 모델2를 주로 사용

모델1: JSP를 이용한 방식
모델2: servlet을 이용한 방식
helloweb 프로젝트 생성후(war로 생성한다)
Java EE Tools - Generate Deployment Descriptor stub

JSP 파일을 생성한다. 생성이후 오류가 잡혀있는데, 톰캣 런타임 설정을 해줘야한다.

프로젝트 폴더에 properties

톰캣 체크 후 apply

이후 project-clean로 이동

자신의 프로젝트를 선택후 clean을 누른다.

hello.JSP의 런타임이 톰캣으로 설정되면서 오류가 사라진다.
어플리케이션 Add
이클립스 하단의 Servers - 마우스 오른쪽 - Add

오른쪽으로 프로젝트를 add 한다

서버실행 : 오른쪽의 재생버튼 클릭

URL을 통해 브라우저에서 .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>
<h1>회원가입</h1>
<form action="join.jsp" method="post">
이메일: <input type="text" name="email" value="@gmail.com"/>
<br/><br/>
비밀번호: <input type="password" name="password" value=""/>
<br/><br/>
<select name="birthYear">
<option value="1994">1994년</option>
<option value="1995">1995년</option>
<option value="1996">1996년</option>
</select>
<br/><br/>
성별:
여 <input type="radio" name="gender" value="f"/>
남 <input type="radio" name="gender" value="M" checked='checked'/>
<br/><br/>
취미:
코딩 <input type="checkbox" name="hobby" value="coding"/>
운동 <input type="checkbox" name="hobby" value="health"/>
요리 <input type="checkbox" name="hobby" value="cooking"/>
수영 <input type="checkbox" name="hobby" value="swimming"/>
<br/>중복선택가능!
<br/><br/>
자기소개:
<textarea name="profile">소개해봐라!
</textarea>
<br/><br/>
<input type="submit" value="회원가입"/>
</form>
</body>
</html>
버튼으로 넘어가는 페이지는 action="" 으로 명시할수 있다.
checkbox타입은 여러개 선택가능, radio타입은 하나만 선택

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("utf-8");
String email = request.getParameter("email");
String password = request.getParameter("password");
String birthYear = request.getParameter("birthYear");
String gender = request.getParameter("gender");
String[] hobbies = request.getParameterValues("hobby");
String profile = request.getParameter("profile");
%> <!-- 자바영역 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=email %><br/>
<%=password %><br/>
<%=birthYear %><br/>
<%=gender %><br/>
<ul>
<%
for(String hobby: hobbies){
%>
<li>
<strong><%=hobby %></strong>
</li>
<%
}
%>
</ul>
<p>
<%=profile.replaceAll("\n", "<br/>") %>
</p>
<br/><br/>
<a href="form.jsp"> 폼으로가기</a>
<a href="/helloweb/hello.jsp?name=양승우&email=ysw3114"> hello.jsp에 가기</a>
</body>
</html>
a href -> 문서내 이동이 가능
<%
request.setCharacterEncoding("utf-8");String email = request.getParameter("email");
String password = request.getParameter("password");
String birthYear = request.getParameter("birthYear");
String gender = request.getParameter("gender");
String[] hobbies = request.getParameterValues("hobby");
String profile = request.getParameter("profile");
%> // HTML문서내의 자바 영역hello.jsp에 가기 -> 클릭시 작성한name값과 email 값이 hello.jsp페이지로 넘어간다.





<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
JSP파일은 상단에 위의 코드를 추가 해주어야 한다.
WEB-INF를 생성하기 위해 emaillist01 프로젝트를 우클릭 후 Java EE Tools - Generate Deployement Descriptor Stub 클릭한다
/src/main/webapp 밑에 WEB-INF 폴더가 생성되었는지 확인한다
xmlns="http://JAVA.sun.com/xml/ns/javaee"
web.xml 파일을 열어 xmlns의 java를 JAVA로 변경한다
<%
String name =request.getParameter("name");
String email =request.getParameter("email");
%>
<%=name %>
<% for(GuestbookVo vo : list){ %> <table width=510 border=1> <tr> <td><%=vo.getNo() %></td> <td><%=vo.getName() %></td> <td><%=vo.getReg_date() %></td> <td><a href="/guestbook02/gb?a=deleteform&no=<%=vo.getNo()%>">삭제</a></td> </tr> <tr> <td colspan=4><%=vo.getMessage() %></td> </tr> </table> <br> <% } %>