: 웹에서 실행하는 프로그램
: java in HTML
선언문 (전역 변수, 한번만 실행)
<%! 전역변수 or 메소드 - 1번 처리 %> init()
스크립트릿 (scriptlet)(요청시마다 실행)
<% 지역변수 or service처리 - 요청 시 마다 처리 %> service() - doGet(), doPost()
출력
<%= 값 or 변수 %>
디렉티브
Java
// 1줄
/
2줄 이상
/
HTML
<!- --->
웹브라우저에는 안보이나(인식은 하나) 소스보기(F12)하면 보인다.
내부적으로는 처리( <% %> <%= %> 수행한다)
만일 jsp 선언문에서 주석되어있으면 에러뜸 (?)
JSP
<%-- --%>
웹브라우저에도 안보이고(인식도 못함) 소스보기(F12)해도 안 보인다.
HTTP 프로토콜은 클라이언트의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다.
: 생성된 쿠키는 클라이언트의 웹브라우저에 저장
: 웹사이트에 접속할 때 생성되는 정보를 담은 임시파일 (4KB)
: ID 기억 - 다음에 접속시 별도의 절차없이 빠르게 연결
: 쿠키 삭제는 시간을 0으로 셋팅
: 사생활 침해
: 팝업창의 오늘 하루 창 띄우지 않음
새로고침으로 조회수 늘리는 걸 방지할 때
최근 본 목록
쿠키생성
Cookie cookie = new Cookie("쿠키명", 값);
cookie.setMaxAge(3);//초 단위
Cookie[] ar = request.getCookies();//특정 쿠키만을 가져오지 못하고, 모든 쿠키를 카져올수 있다
if(ar != null){
for(int i = 0; i<ar.length; i++){
String cookieName = ar[i].getName(); //쿠키명
String cookieValue = ar[i].getValue(); //쿠키값
System.out.println("쿠키명 = " + cookieName);
System.out.println("쿠키값 = " + cookieValue);
System.out.println();
if(cookieName.equals("memName")){name = cookieValue;}
if(cookieName.equals("memId")){id = cookieValue;}
}
}
: 웹서버쪽의 웹컨테이너에 상태를 유지하기 위한 정보가 저장
: 세션은 기본 시간 1800초(30분)
: 각 클라이언트 고유 Session ID를 부여한다
Session ID로 클라이언트를 구분하여 각 클라이언트 요구에 맞는 서비스 제공
세션 생성
HttpSession session = request.getSession();
session.setMaxInactiveInterval(30*60); //초 단위
세션 부여
session.setAttribute("세션명“, ”값“)
세션 얻어오기
session.getAttribute("세션명“)
세션 삭제
session.removeAttribute("세션명“)
모든 세션 삭제 - 무효화
session.invalidate()
name = (String)session.getAttribute("memName");
id = (String)session.getAttribute("memId");
JSP 페이지를 해당 서블릿으로 어떻게 변환하는지 웹 컨테이너에게 알려주는 메시지이다
응답에 대한 설정을 부여하는 것이다
EL은 JSTL에 소개된 내용으로 JSP 2.0에 추가된 기능이며 JSP의 기본문법을 보완하는 역할을 한다
(1) EL에서 제공하는 기능
- JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메소드 호출 기능 제공
- 표현 언어만의 기본 객체 제공
표기법 : ${ expr } != $(JQuery), $.ajax();
(2) 표현언어에서 자바메소드를 사용
- 자바클래스 작성하고 메소드는 static 설정
- 태그라이브러리에 대한 설정정보를 담고 있는 tld(Tag Library Descriptor)파일을 작성
- web.xml에 tld파일을 사용할 수 있는 설정정보를 추가
- 자바클래스에 접근하는 jsp파일을 작성
EL은 JSTL에 소개된 내용으로 JSP 2.0에 추가된 기능이며 JSP의 기본문법을 보완하는 역할을 한다
(1) EL에서 제공하는 기능
JSP의 네 가지 기본 객체가 제공하는 영역의 속성 사용
집합 객체에 대한 접근 방법 제공
수치 연산, 관계 연산, 논리 연산자 제공
자바 클래스 메소드 호출 기능 제공
표현 언어만의 기본 객체 제공
표기법 : ${ expr } != $(JQuery), $.ajax();
(2) 표현언어에서 자바메소드를 사용
- 자바클래스 작성하고 메소드는 static 설정
- 태그라이브러리에 대한 설정정보를 담고 있는 tld(Tag Library Descriptor)파일을 작성
- web.xml에 tld파일을 사용할 수 있는 설정정보를 추가
- 자바클래스에 접근하는 jsp파일을 작성

(1) 기본 사용 방법
(2) $.ajax() 함수의 사용
$.ajax({
url : "접속할 페이지 주소",
type : "get / post",
data : "파라미터 문자열 key=value&key=value" (서버로 보내는 데이터),
dataType : "text / xml / json / jsonp" (서버로 받는 데이터 타입),
timeout : 제한시간(밀리세컨단위),
cache : 이전 요청에 대한 캐쉬 저장 여부 (true=사용함, false=사용안함),
/** 통신이 성공한 경우 실행되는 함수 */
success : function(data) {
......
},
/** 통신이 실패한 경우 실행되는 함수 (주소 오타, 웹서버 중지 등) */
error : function(xhr, textStatus, errorThrown) {
.....
}
});
$.ajax({
url: 'URL',
type: 'POST',
data: yourData,
datatype: 'json'
})
.done(function(data, textStatus, xhr) { });
.fail(function(xhr, textStatus, errorThrown) { });
.always(function(data|xhr, textStatus, xhr|errorThrown) { });
.then(function(data, textStatus, xhr|errorThrown) { });
$('form').submit(
function() {
alert($(this).serialize());
return false;
}
);
<content><![CDATA[Ajax로 구현하는 댓글 예제입니다.]]></content>
<datetime><![CDATA[2021-03-15 12:21:42]]></datetime>
예]
<li class="user" data-name="홍길동" data-city="Seoul" data-car="sm6">
<strong>홍길동:</strong> <span>안녕하세요</span>
</li>
CSS에서 사용
<style type="text/css">
[data-name] { color: red; }
</style>
jQuery에서 .data()를 이용해 접근
데이터를 가져올 때,
$(".user").data("name") -- 홍길동
데이터를 설정할 때,
$(".user").data("name", "고길동");
Template 플러그인은 동적으로 생성하고자 하는 요소를 미리 HTML 틀을 정의해 둔 후,
그 안의 적용할 내용을 JSON 데이터로 처리하는 jQuery 플러그인이다.
Ajax를 사용하면 원격지의 JSON 데이터를 페이지 이동 없이 로드 해 올 수 있다.
이때 Ajax로 로드한 JSON 데이터의 구조와 템플릿에 정의되어있는 치환자들이 동일하다면,
바로 데이터를 전달받아 동적 요소를 생성하여 화면에 출력하도록 구성할 수 있다.
사이트 : https://github.com/BorisMoore/jquery-tmpl=> jquery-tmpl-master.zip 다운로드 받기=> jquery.tmpl.min.js를 사용하면 된다.=> 플러그인 참조 코드 추가
예)
{"message" : "Hello Ajax"}
↓
$.get("data.json", {파라미터}, function(data) {
var temp = $("#itemTemplate").tmpl(data);
$("출력할 요소 CSS셀렉터").append(temp);
}, ["json"]);
↓
주의사항=> JSP 파일에서 작업을 하면 EL표현식과 충돌이 난다.=> 그래서 JSP 파일에서는 반드시 ""를 붙여서 사용을 해야 한다.{message}