1.1 적용
*jsp에서 다음과 같은 애플리케이션 객체를 가져옵니다. getServletContext().setAttribute("counter",new mycount.Counter());
예: <jsp:useBean 범위="application" id="counter" 클래스="mycounter.Counter"/>
*jsp에서 On Application Start 및 On Session Start 이벤트를 처리하는 방법은 HttpSessionBindingListener 클래스를 사용합니다.
세션 추가:
session.putValue("bingdings.listener",new MyListener(getServletContext());
MyListener 클래스를 정의합니다.
import javax.servlet.http.*;
import javax.servlet.*;
공개 클래스 MyListener는 HttpSessionBindingListener를 구현합니다.
ServletContext 컨텍스트;
공개 MyListener(ServletContext 컨텍스트){
this.context=컨텍스트;
}
공개 무효 valueBound(HttpSessionBindingEvent 이벤트){
System.out.println("valuebound:누군가 내 리스너를 세션에 연결했습니다!");
}
공개 무효 valueUnbound(HttpSessionBindingEvent 이벤트){
System.out.println("valueunbound:누군가 내 리스너의 바인딩을 해제했습니다!");
}
}
1.2 요청
*실행 중인 jsp/servlet 파일의 절대 URL 주소를 가져옵니다.
Stringf 파일=request.getRequestURL();
if(requet.getQueryString()!=null{
file+='?'+request.getqueryString();
}
URL 재구성URL=새 URL(request.getScheme(),request.getServerName(),request.getServerPort(),file);
out.println(reconstructedURL.toString());
*클라이언트가 이 페이지에 액세스하는 데 사용되는 URL을 가져옵니다.
String callPage=request.getHeader("Referer");
*로컬 파일 시스템에서 현재 스크립트의 실제 경로를 가져옵니다.
request.getRealPath(request.getServletPath());
*여러 제출물 중 하나를 결정
<입력 유형=제출 이름="sub" 값="위로">
<입력 유형=제출 이름="sub" 값="다운">
1.3 응답을
구별하려면 jsp에서 request.getParameter("sub");를 사용하십시오.
*웹페이지 리디렉션의 세 가지 방법
(1)response.sendRedirect(url);
(2)<%response.setStatus(HttpServletResponse.SC_MOVED_PREMANENTLY);
문자열 nowloc="/newpath/index.htm";
response.setHeader("위치",newloc);%>
(3)<jsp:forward page="/newpage.jsp"/>
위 방법은 출력이 클라이언트로 전송되기 전에만 사용할 수 있습니다.
*캐싱 비활성화
<%response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);%>
1.4 세션
*생존 시간
<%session.setMaxInactiveInterval(300);%>
*로그아웃
session.invalidate();
1.5 예외
*JSP 페이지의 서블릿 오류 처리
protected void sendErrorRedirect(HttpServletRequest 요청,
HttpServletResponse 응답, 문자열 errorPageURL, Throwable e)
ServletException,IOException이 발생합니다.
request.setAttibute("javax.servlet.jsp.jspException",e);
getServletConfig().getServletContext();
getRequestDispatcher(errorPageURL).forward(요청,응답);
}
공공 무효 doPost(HttpServletRequest 요청,HttpServletResponse 응답){
노력하다{
//
}
catch(예외 e){try{
sendErrorRedirect(요청,응답,"/jsp/ErrPage.jsp",e);
}catch(예외 e){e.printStackTrace();}
}
}
* JSP 페이지의 출력 오류 스택 추적
(1)
<%@ 페이지 isErrorPage="true%>
<%
out.println("<pre>");
printWriter pw=response.getWriter();
예외.printStackTrace(pw);
out.println("</pre>");
%>
(2)
<%@ 페이지 isErrorPage="true%>
<예비>
<%
예외.printStackTrace(new PrintWriter(out));
%>
</pre>
1.6 쿠키
*쿠키 설정
<%
쿠키 mycookie=new Cookie("aName","aValue");
response.addCookie(mycookie);
//mycookie.setMaxAge(시간);
%>