깃허브
https://github.com/sblee1031/Kosta/tree/main/ORACLE_DB_THEOTY/Oracle_DB_project/myweb
응답의 주체는 JSP가 된다. 꼭 Servlet에서 응답을 받아야함.
forward() : request.getRequestDispatcher는 기존에 전달받은 httpRequest, httpResponse 객체를 전달시킨다.
-> 서버쪽에서의 페이지 이동. 주소변경X
include() : request.getRequestDispatcher는 기존에 전달받은 httpRequest, httpResponse 객체를 전달하고, 다시 현재 위치로 돌아오게 된다.
-> 기존 1페이지에서 2페이지로 이동 후 다시 1페이지로 돌아옮.
redirect() : response.sendRedirect();
-> 주소URL 변경.
* 비지니스 로직 : 가장 중요한 로직해당
View
M 모델 : 비지니스로직
V 뷰 : JSP
C 컨트롤러 : Servlet
JSP 라이프 사이클
* jsp 객체 소멸되는 시점은 JSP 코드 변경시 - _jspDestroy()호출 됨.
JSP 구성 요소
scripting.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>
<% int i=9; %> <!-- Scriptlet -->
<%i++; %>
<%out.print("i변수의 값은 : "+i); %>
<hr>
지역변수 i변수 값은 : <%=i %> <!--Expression 표현 -->
<hr>
<%! int i; %> <!-- Declaration 선언 -->
멤버 변수값은 : <%=this.i %>
<hr>
<%//자바 주석문 %>
<!-- html 주석문 -->
<%-- jsp 전용 주석문 : 퍼포먼스 향상에 기여됨. --%>
</body>
</html>
//scripting.jsp 컴파일 후 변수들↓ 내장변수, Default Object
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;
score.jsp
<%@page import="java.text.DecimalFormat"%>
<%@page import="java.text.SimpleDateFormat" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>별점화면</title>
</head>
<body>
<% String score = request.getParameter("score");
int intScore = Integer.parseInt(score);
%>
<%!int member_count;
int total; %>
<%
if(score==null || score =="") {
out.print("다시 별점을 선택해주세요.");
}else{
out.print("선택한 별점은 "+request.getParameter("score")+ " 점 입니다.");
member_count += 1;
this.total += intScore;
}
%><br>
<hr>
<%out.print("전체 별점은 "+ total+ " 점 입니다."); %><br>
<%
double avg = (double)total/member_count;
out.print("평점은 "+ avg+ " 점 입니다.");
%>
<%DecimalFormat df = new DecimalFormat("0.0"); %>
<br>
평점은 약 <%=df.format(avg)%> 입니다.
<br>
<%out.print("전체 참여자 "+ member_count+ " 명 입니다."); %>
<br>
<a href="score.html">별점주기</a>
</body>
</html>
jspservice에는 IOException이 throw 되어있기에 추가 excetion는 추가 하지 않아도됨.
pagedirective.jsp (부모페이지)
<%@page import="java.io.FileNotFoundException"%>
<%@page import="java.io.FileInputStream"%>
<%@page errorPage="err.jsp" %>
<%@page buffer="1kb" %> //버퍼크기
<%@ 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>
<%
for(int i=1; i<=100; i++){
%> <div><%=i %> </div>
<%
}
%>
<%
String fileName = "a.txt";
FileInputStream fis = null;
fis = new FileInputStream(fileName);
%>
<%-- <%
String fileName = "a.txt";
FileInputStream fis = null;
try{
fis = new FileInputStream(fileName);
}catch(FileNotFoundException e){
request.setAttribute("exception", e);
String path = "err.jsp";
RequestDispatcher rd = request.getRequestDispatcher(path);
rd.forward(request, response);
}
%> --%>
<%-- <%//a.txt 파일 내용 1바이트 읽기
String fileName = "a.txt";
FileInputStream fis = null;
try{
fis = new FileInputStream(fileName);
}catch(FileNotFoundException e){
%>
<h1> 오류 내용<%=e.getMessage() %></h1>
<%
}
%> --%>
<h1>END</h1>
</body>
</html>
err.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
isErrorPage="true" //true 상태에서는 에러상태를 부모객체로부터 가져옴
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body style="background-color:yellow">
<h3><%=exception.getMessage() %></h3>
</body>
</html>
페이지 지시자에 isErrorPage="true" 지정시 exception상태를 부모객체로부터 가져옴
* jsp페이지에 import 하기
*jsp페이지 buffer설정 (기본값 8kb) -> 페이지 내부 에러시, buffer확장하여 진행.
* jsp페이지에 errpage 설정하기
jsp: : include -> rd.include( , ) 와 같음
<%@include file="*.*"%> .java파일이 생성시 포함됨.
menu.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%String msg = "WELCOME"; %>
<div>
<a href = "#">메뉴1</a>
<a href = "#">메뉴2</a>
</div>
menua.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>menua.jsp</title>
</head>
<body>
<%@include file="menu.jsp" %>
<h1><%=msg %></h1>
<%
//String msg = "안녕하세요";%>
</body>
</html>
menub.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>menub.jsp</title>
</head>
<body>
<jsp:include page="menu.jsp"/>
<h1><%-- <%=msg %> --%></h1>
<%
//String msg = "안녕하세요";%>
</body>
</html>
'KOSTA > WEB' 카테고리의 다른 글
21.06.23 - web 필기자료 이미지 (0) | 2021.06.23 |
---|---|
21.06.23 - JSP element(2), jackson 라이브러리 (0) | 2021.06.23 |
21.06.21 - 백엔드( Back-End)- 톰캣, sevlet, MVC *중요* (0) | 2021.06.21 |
Tomcat 서버 이클립스에 설치하기 (Tomcat v9.0) - 2편 (0) | 2021.06.13 |
Tomcat 서버 이클립스에 설치하기 (Tomcat v9.0) - 1편 (2) | 2021.06.13 |