Leeyebin의 블로그
JSP강좌 요약 본문
JSP 1강
JSP : html파일 내에 java언어를 삽입한 문서
servlet : java언어로 이루어진 웹프로그래밍 문서
JavaScript : 클라이언트 기능을 구현하기 위한 언어
Jquery : JavaScript의 대표적인 라이브러리로써, 클라이언트 사이드 스크립트 언어를 단순화 할 수 있다.
CSS : 웹어플리케이션의 레이아웃 및 스타일을 지정하는 언어
웹서버 : 클라이언트의 요청에 의해 정보를 제공해 주는 서버(ex: 아파치) 별도의 구현이 필요한 로직이 있을 경우 웹어플리케이션 서버에 요청.
웹브라우저 : 웹서버에 정보를 요청하고, 웹서버로부터 정보를 받는 매개체, 이때 http 프로토콜을 사용함.
프로토콜 : 네트워크상에서 약속한 통신규약
ip : 네트워크상에서 컴퓨터를 식별할 수 있는 주소
DNS : ip주소를 인간이 쉽게 외우도록 맵핑한 문자역
port : ip주소가 컴퓨터를 식별할 수 있게 해준다면, port번호는 해당컴퓨터의 구동되고 있는 프로그램을 구분할 수 있는 번호
화면 <-> 웹서버 <-> WAS <-> DB
2강(4/10)
eclipse(이클립스에서 서버세팅 포트랑 경로 등)
apache-tomcat
jdk(환경변수 포함)
3강(4/11)
jsp특징
-동적 웹어플리케이션 컴포넌트
-jsp 확장자
- 클라이언트의 요청에 동적으로 작동하고 응답은 html을 이용
-jsp는 서블릿으로 변환되어 실행
-mvc패턴에서 view로 이용됨
jsp아키텍쳐
.jsp file(helloworld.jsp) -----java파일로 변환-----> Java file(helloworld_jsp.java)-----컴파일------>class file(helloworld_jsp.class)
java나 class파일은 예제(C:\javalec\apache-tomcat-7.0.68\work\Catalina\localhost\practice20160411\org\apache\jsp)에 있음
4강(4/12)
Servlet특징
- 동적 웹어플리케이션 컴포넌트.
- .java 확장자.
- 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.
- java thread이용하여 동작.(강점)
- MVC패턴에서 Controller로 이용됨.
매핑시 web.xml에서 하는 방법, 어노테이션으로 하는 방법이 있다
<servlet-name>
임의의 이름을 만들어 준다.
<servlet-class>
매핑할 클래스 파일명을 패키지명을 포함하여 입력
<url-pattern>
servlet-class의 클래스를 매핑할 임의의 이름을 입력 한다. '/'로 시작해야한다
5강(4/13)
-프로젝트만들기
-doGet()
-doPost()
-Context Path
Servlet클래스는 HttpServlet클래스를 상속 받음[ Servlet(인터페이스)<---GenericServlet(추상클래스)<---HttpServlet]
Request(요청처리객체) 및 Response(응답처리객체)를 톰캣에서 받음.
GET - URL값으로 정보가 전송되어 보안에 약함.(html작성시 form태그에서 mothod속성값에 get)
POST - header를 이용해 정보가 전송되어 보안에 강함.(html작성시 form태그에서 mothod속성값에 post)
HttpServletResponse 객체의 setContentType() 메소드 호출하여 응답방식 결정(ex response.setContentType("text/html; charset=euc-kr"); )
HttpServletResponse 객체의 getWriter() 메소드를 이용하여 출력 스트림을 얻음
출력스트림의 println() 메소드를 이용하여 출력하면, 웹브라우저에 출력
-Context Path
WAS(Web Application Server)에서 웹어플리케이션을 구분하기 위한 path
이클립스에서 프로젝트를 생성하면, 자동으로 server.xml에 추가됨0
6강(4/13)
-Servlet 작동순서
클라이언트에서 servlet요청이 들어 오면 서버에서는 servlet컨테이너를 만들고, 요청이 있을 때마다 쓰레드가 생성된다.
웹브라우저 -> 웹서버 -> 웹어플리케이션 서버(was) -> Servlet컨테이너(스레드 생성, servlet객체 생성)
-Servlet 라이프사이클
Servlet의 사용도가 높은 이유는 빠른 응답 속도이기 때문
Servlet은 최초 요청 시 객체가 만들어져 메모리에 로딩되고, 이후 요청 시에는 기존의 객체를 재활용하게 되기때문에 동작 속도가 빠름.
getContextPath() : 웹어플리케이션의 컨텍스트 패스를 얻습니다.
getMethod() : get방식과 post방식을 구분할 수 있습니다.
getSession() : 세션 객체를 얻습니다.
getProtocol() : 해당 프로토콜을 얻습니다.
getRequestURL() : 요청 URL를 얻습니다.
getRequestURI() : 요청 URI를 얻습니다.
getQueryString() : 쿼리스트링을 얻습니다.
getParameter(String name) : name에 해당하는 파라미터 값을 구함.
getParameterNames() : 모든 파라미터 이름을 구함.
getParameterValues(String name) : name에 해당하는 파라미터값들을 구함.
getCharacterEncoding() : 응답할때 문자의 인코딩 형태를 구합니다.
addCookie(Cookie) : 쿠키를 지정 합니다.
sendRedirect(URL) : 지정한 URL로 이동합니다.
참고
getParameter()와 getAttribute() 차이점
getParameter()는 return 값이 String타입일 경우에만 가능
getParameter()는 String 값을 다루기때문에 주로 쿼리 등을 받는데 사용됨
getAttribute()는 return 값으로 Object가 가능함(자바빈 객체 혹은 다른 클래스객체 등을 받을 때 사용함 주로)
< %
Object x = request.getAttribute("객체명");
% >
Object 형으로 받는 다는 것. 포인트
12강(04/24)
액션태그
forward, include, param 태그
-액션태그
JSP페이지 내에서 어떤 동작을 하도록 지시하는 태그
forward - 현재의 페이지에서 다른 특정페이지로 전화할 때 사용함.(ex : "<jsp:forward page="test.jsp"/>
include - 현재 페이지에 다른 페이지를 삽입할 때 사용(ex : "<jsp:include page = "test1.jsp" flush = "ture"/>
param - forward 및 include 태그에 데이터 전달을 목적으로 사용되는 태그
ex
<jsp:forward page = "test.jsp">
<jsp:param name = "id" value="abcdef"/>
<jsp:param name = "pw" value = "1234"/>
</jsp:forward>
13강(05/03)
쿠키
웹브라우저에서 서버로 어떤 데이터를 요청 하면, 서버측에서는 알맞은 로직을 수행한 후 데이터를 웹브라우저에 응답함. 그리고, 서버는 웹브라우저와의 관계를 종료함. 이렇게, 웹브라우저에 응답 후 관계를 끊는 것은 http프로토콜의 특징
연결이 끊겼을 때 어떤 정보를 지속적으로 유지하기 위한 수단으로 쿠키라는 방식을 사용.
쿠키는 서버에서 생성하여, 서버가 아닌 클라이언트측에 특정 정보를 저장. 그리고 서버에 요청 할 때 마다 쿠키의 속성값을 참조 또는 변경 할 수 있음.
쿠키는 4kb로 용량이 제한적이며, 300개까지 데이터 정보를 가질 수 있다.
[쿠키 클래스를 이요하여 쿠키생성] -> [setter를 이용하여 속성 설정] -> [response객체에 쿠키 탑재(response.addCookie())]
쿠키관련 메소드
setMaxAge() : 쿠키 유효기간을 설정 합니다.
setpath() : 쿠키사용의 유효 디렉토리를 설정 합니다.
setValue() : 쿠키의 값을 설정 합니다.
setVersion() : 쿠키 버전을 설정 합니다.
getMaxAge() : 쿠키 유효기간 정보를 얻습니다.
getName() : 쿠키 이름을 얻습니다.
getPath() : 쿠키사용의 유효 디렉토리 정보를 얻습니다.
getValue() : 쿠키의 값을 얻습니다.
getVersion() : 쿠키 버전을 얻습니다.
14강(05/05)
세션
쿠키와 달리 클라이언트의 특정 위치에 저장되는 것이 아니라 서버상에 객체로 존재함.
세션은 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없음.
세션은 클라이언트의 요청이 발생하면 자동생성되고 session이라는 내부 객체를 지원하여 세션의 속성을 설정.
[클라이언트 요청] -> [session 자동 생성] -> [session 속성 설정]
세션 관련 메소드
setAttribute() : 세션에 데이터를 저장 합니다.
getAttribute() : 세션에서 데이터를 얻습니다.
getAttributeNames() : 세션에 저장되어 있는 모든 데이터의 이름(유니크한 키값)을 얻습니다.
getId() : 자동 생성된 세션의 유니크한 아이디를 얻습니다.
isNew() : 세션이 최초 생성되었는지, 이전에 생성된 세션인지를 구분 합니다.
getMaxInactiveInterval() : 세션의 유효시간을 얻습니다. 가장 최근 요청시점을 기준으로 카운트 됩니다.
(C:\javalec\apache-tomcat-7.0.57\apache-tomcat-7.0.57\conf\web.xml 참조) 기본적으로 30분으로 세팅되어있음.
removeAttribute() : 세션에서 특정 데이터 제거 합니다.
Invalidate() : 세션의 모든 데이터를 삭제 합니다.
15강(05/10)
JSP/Servlet에서의 예외페이지
page지시자를 이용한 예외 처리
페이지에서 <%@ page errorPage="에러가났을때 보여줄 페이지.jsp"%>
를 입력한다.
에러가났을때 보여줄 페이지.jsp에서도 <% response.setStatus(200); %>을 적어야할 경우가 있다.
ex)
<%@ page isErrorPage = 'true'%>
<% response.setStatus(200); %>
<% exception.getMessage() %> --> isErrorPage값을 true로 하면 exception에 접근할 수 있다.
web.xml파일을 이용한 예외 처리
ex)
<error-page>
<error-code>404</error-code>
<location>/asdf.jsp</location>
</error-page>
반복적인 작업을 효율적으로 하기 위해 빈을 사용. JAVA언어의 데이터(속성)와 기능(메소드)으로 이루어진 클래스.
jsp페이지를 만들고, 액션태그를 이용하여 빈을 사용. 빈의 내부 데이터를 처리함.
'프로그래밍 > JSP' 카테고리의 다른 글
[JSTL] 날짜 포맷 바꾸기 (0) | 2017.10.11 |
---|