내장객체(Implicit Object)
; JSP프로그래밍에 필요한 여러가지 기능을 묶어놓은 미리 만들어 제공하는 객체들
request : ServletRequest client의 요청정보를 관리하는 객체
HttpServletRequest
response : ServletResponse 웹 서버의 응답정보를 관리하는 객체
HttpServletResponse
pageContext | PageContext | Jsp 페이지에 대한 정보를 관리하는 객체 |
session | HttpSession | HTTP세션정보를 관리하는 객체 * 쿠키를 기반으로 일정시간동안 같은 브라우저로부터 들어오는 요구를 하나의 상태로 보고, 그 상태를 유지하는 기술이다. - 세션, 서버에 저장되며, 로그인 처리에 활용 |
application | ServletContext | 웹 어플리케이션에 대한 정보를 관리하는 객체 |
out | JspWriter | 생성된 결과를 출력할 때 사용하는 스트림 |
config | ServletConfig | Jsp 페이지에 대한 설정정보를 관리하는 객체 |
exception | Throwable | 예외처리에 사용 |
Scope(영역)
Scope | 내장 객체 |
page . 한개의 Jsp페이지 내부 영역 . [jsp페이지] |
pageContext . page영역내에서 데이터를 공유할 목적으로 사용 |
request . 한개의 요청이 처리되는 영역 . [[jsp페이지][jsp페이지]] |
request . 요청에서 응답이 이루어질때까지 관련된 데이터를 공유할 목적으로 사용 . forward, include / setAttribute(), getAttribute() |
session . 한 개의 브라우저 영역 |
session . 한 개의 브라우저에서 실행되는 모든 JSP페이지들간의 데이터 공유목적으로 사용 . 로그인 처리에 활용됨 |
application . 한 개의 웹어플리케이션의 전체영역 . 웹컨테이너가 종료되거나 재시작할때 소멸 |
application 주로 웹 어플리케이션의 설정정보에 활용 |
속성을 이용한 데이터 공유
. setAttribute(String name, Object obj)
. getAttribute(String name)
. removeAttribute(String name)
. getAttributeName()
pageContext
- getRequest()
- getResponse()
- getOut()
- getServletConfig()
- getServletContext()
- getException()
- getPage()
- forward()
- include()
등등
jsp1
<%@ 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>
<%
out.print("out.print()메서드를 이용한 출력입니다.<br>");
pageContext.getOut().print("pageContext.getOut()을 활용한 출력입니다.");
//forward()
pageContext.forward("Jsp2.jsp");
request.setAttribute("name","서대길");
%>
</body>
</html>
jsp2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" info="페이지에 대한 정보내용을 기술했습니다."%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>이동된 페이지입니다.</h3>
<%= getServletInfo() %>
<%= request.getAttribute("name") %>
</body>
</html>
application객체
- getInitParameter(String str)
- getInitParameterNames()
- getAttributeNames()
- getRealPath(String path) : 실제경로를 가져온다
- getContext(String path) : path경로의 컨텍스트 정보
- getServerInfo()
Jsp3
<%@ 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>
<h3>웹 어플리케이션이 실행되고 있는 서버와 자원의 정보를 담고 있다.</h3>
<hr>
<%= "JSP컨테이너정보: "+application.getServerInfo() %><br>
<%= "JSP컨테이너의 Major정보: "+application.getMajorVersion() %><br>
<%= "JSP컨테이너의 Minor정보: "+application.getMinorVersion() %><br>
</body>
</html>
Jsp4
<%@page import="java.util.Enumeration"%>
<%@ 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>
<%
String name = application.getInitParameter("name");
out.print("name: "+name+"<br>");
String age = application.getInitParameter("age");
out.print("age: "+age+"<br>");
String gender = application.getInitParameter("gender");
out.print("gender: "+gender+"<br>");
Enumeration en = application.getInitParameterNames();
while(en.hasMoreElements()){
String n = (String) en.nextElement();
out.print(n + "="+application.getInitParameter(n)+"<br>");
}
%>
</body>
</html>
Jsp5 - 파일 읽어오기
<%@page import="java.io.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>member_list 파일 읽어오기</title>
</head>
<body>
<h3>파일 읽기</h3>
<%
FileReader fr = null;
BufferedReader br = null;
String line = null;
String path="/member/list.txt";
String realPath = application.getRealPath(path); //path경로의 실제경로를 가져온다.
try{
fr = new FileReader("/member/list.txt");
br = new BufferedReader(fr);
while((line=br.readLine()) != null){
out.print(line);
out.print("<br>");
}
}catch(IOException e){
out.print(e.getMessage());
}
%>
<hr>
<%
try{
FileReader fr2 = new FileReader("C:/Junny/list.txt");
BufferedReader br2 = new BufferedReader(fr2);
String line2 = null;
while((line2=br2.readLine()) != null){
out.print(line2);
out.print("<br>");
}
}catch(IOException e){
out.print(e.getMessage());
}
%>
</body>
</html>
list.txt
오늘의 점심메뉴
-----------
쉑쉑버거
파파존스
아비꼬
사보텐
Jsp8_Out
<%@ 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>
<h3>out객체는 JSP페이지에서 생성되는 내용을 모두 전달받는 객체이다.</h3>
<%
String str = "jsp5_RequestFormOutput.jsp";
int sizeBuffer = out.getBufferSize();
int size = out.getRemaining();
boolean b = out.isAutoFlush();
%>
출력할 값 : <%= str %><br>
버퍼의 크기 : <%= sizeBuffer %><br>
버퍼의 잔여크기 : <%= size %><br>
자동플러시여부 : <%=b %>
</body>
</html>
Exception
100 ~ 505
200 : 성공
404 : 문서를 찾을 수 없음
405 : 리소스를 허용하지 않음
500 : 서버내부 프로그램 오류발생
501 : 클라이언트가 서버에 수행할 수 없는 행동을 요청
502 : 서버과부하 상태
Jsp9_Exception
<!--
jsp_Exception
-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1 style="color:red"> 여기는 에러 페이지입니당! 에러가 발생되었습니다ㅠㅅㅠ</h1>
<h3>0으로 나눌 수는 없어용..</h3>
<h3><%="에러메시지 : "+ exception.getMessage() %></h3>
</body>
</html>
jsp10_Exception
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page errorPage="jsp9_Exception.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>오류가 발생된 페이지</title>
</head>
<body>
<h3>JSP에 관련된 일을 처리하는 과정에서 예외가 발생되었습니다.</h3>
<%
int result = 100/10;
out.print("<b>나눈 값 : "+result+"</b>");
%>
</body>
</html>
Jsp11 - Data, Calendar
<!--
Data, Calendar
-->
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Date date = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("YYY-MM-dd"); //MM 월, mm 분, dd 월중일자, DD 365일자
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date1 = sdf1.format(date);
String date2 = sdf2.format(date);
%>
오늘은 몇일? <%=date1 %> <br>
지금은 몇시? <%=date2 %>
</body>
</html>