page -> 환경설정
include -> 페이지 안에 페이지 를 넣을때
taglib -> 자바코드의 기능들을 태그화 시켜 만들어 놓은 태그들을 사용하기위해 선언할때 쓴다
Page 지시자의 속성
contentType의 charset=UTF-8" pageEncoding="UTF-8" <meta charset="UTF-8">
3가지 속성이 모두 같은지 확인해야한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="java.util.ArrayList" %>
<%@ page errorPage = "error.jsp" %>
<%--
지시자
<%@ 지시자이름 %>
현재 페이지의 환경설정 or Servlet으로 변환될때 필요한 정보를 기술
Page 지시자
contentType속성 --> 응답 형식 지정
pageEncoding --> 페이지의 인코딩 형식
import --> 다른 클래스파일을 사용하기위해 임포트할때 사용
가급적 자동완성 코딩하는게 좋음
errorPage --> 에러발생시 해당하는 jsp파일을 대신 호출
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- html에서 사용하는 주석
홈페이지에서 f12로 개발자모드로 보면 보인다
표현식 적으면 오류난다. -->
<%-- JSP에서 사용하는 주석
Servlet으로 바뀌는 과정에 사라져서 보이지 않는다.
<% %> 표현식도 적을 수 있다. --%>
</body>
</html>
Include지시자
include1
<%@ 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>
<!--
include 지시자
: 특정 jsp파일 전체를 집어넣어주자.
html파일은 안쓰는게 좋다. -> jsp라고 인식해서 한글이 깨진다
file속성에 포함시키고자 하는 파일의 이름을 지정
-->
<h1>1번 jsp 페이지</h1>
<a href="ex05include2.jsp"> 2번 페이지로</a>
<%@ include file="footer.jsp" %>
</body>
</html>
include2
<%@ 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>2번 jsp 페이지</h1>
<a href="ex05include1.jsp"> 1번 페이지로</a>
<%@ include file="footer.jsp" %>
</body>
</html>
footer
<%@ 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>
<hr>
<p>빅데이터 13차</p>
<p>안현진</p>
<p>010-0000-1234</p>
<hr>
</body>
</html>
include지시자를 이용하여 footer의 내용을 include1페이지 ,include2페이지에 원하는 곳에 나타낼 수 있다.
ex) 홈페이지에 페이지를 넘어가도 맨 고정되어 있는 공간들
taglib
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!--
taglib : 커스텀태그 라이브러리를 불러와 사용할 수 있게해주는 lib
uri : 태그라이브러리의 종류 선택
prefix : 다른 태그와 헷갈리지 않게 앞에 붙이는 별칭
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
java의 for문
begin : 시작하는 숫자
end : 끝나는 숫자
step : 몇씩 증가할 것인지
-->
<c:forEach begin="1" end="5" step="1">
안녕하세요 <br>
</c:forEach>
</body>
</html>
jar파일은 webapp -> web-inf -> lib에 드래그&드롭 ↓
내장객체
jsp에서 Servlet으로 변환시 service 메소드 안으로 들어가는데 service메소드에 request, response가 있다.
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request
ex07request.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>
<%
// JSP의 내장객체 : Jsp -> Servlet으로 변환될때, 자동 선언
// request / response / out 객체를 생성할 필요 없이 바로 사용가능하다.
// 1. 파라미터 수집
String data = request.getParameter("data");
%>
<h1><%=data %></h1>
</body>
</html>
ex07request.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>데이터 보내주기</h1>
<!-- jsp로 데이터를 보낼땐, 확장자까지 적을 것 -->
<form action="ex07request.jsp">
<input type="text" name="data">
<input type="submit" value="전송">
</form>
</body>
</html>
↓
※ http 404 오류가 나왔을때 -> 파일경로가 web-inf면 webapp으로 보내주고 /
action에 파일명.확장자를 정확히 썼는지 확인해본다
request 객체 실습
ex08score.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>
<%--0. form 태그 필수 3요소 채워주기 --%>
<%--1. 파라미터 수집--%>
<%
// Post방식 -> 인코딩
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
int java = Integer.parseInt(request.getParameter("java"));
int web = Integer.parseInt(request.getParameter("web"));
int iot = Integer.parseInt(request.getParameter("iot"));
int android = Integer.parseInt(request.getParameter("android"));
int avg = (java+web+iot+android)/4;
// 가급적 java코드는 한곳에 모아주자.
// 학점 계산
String grade = "";
if(avg>=95){
grade="A+";
}else if(avg>=90){
grade="A";
}else if(avg>=85){
grade="B+";
}else if(avg>=80){
grade="B";
}else{
grade="F";
}
%>
<%--2. 이름과 각 과목 점수 출력--%>
<p>이름 : <%=name %></p>
<p>JAVA점수 : <%=java %></p>
<p>WEB점수 : <%=web %></p>
<p>IOT점수 : <%=iot %></p>
<p>ANDROID점수 : <%=android %></p>
<%--3. 평균점수의 학점 구해서 출력--%>
<p>평균 : <%=avg %></p>
<%--4. 평균점수에 따라 학점 출력
100~95 : A+
94~90 : A
89~85 : B+
84~80 : B
79~ : F--%>
<p>학점 <%=grade %></p>
</body>
</html>
ex08score.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>성적확인 프로그램</h1>
<form action="ex08score.jsp" method="post">
이름 : <input type="text" name="name"> <br>
JAVA : <input type="number" name="java"> <br>
WEB : <input type="number" name="web"> <br>
IOT : <input type="number" name="iot"> <br>
ANDROID : <input type="number" name="android"> <br>
<input type="submit" value="전송">
</form>
</body>
</html>
↓
'빅데이터 서비스 교육 > JSP Servlet' 카테고리의 다른 글
JSP Cookie (0) | 2022.05.12 |
---|---|
JSP request, response (0) | 2022.05.11 |
JSP 개념, 구성요소 (0) | 2022.05.10 |
JSP Servlet (0) | 2022.05.09 |
JSP/Servlet 데이터 전송 (0) | 2022.05.03 |