빅데이터 서비스 교육/JSP Servlet

JSP 지시자, 내장객체

Manly 2022. 5. 10. 17:22
반응형

 

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