1.1 การสมัคร
*รับออบเจ็กต์แอปพลิเคชันใน jsp เช่น: getServletContext().setAttribute("counter",new mycount.Counter());
ตัวอย่างเช่น: <jsp:useBean scope="application" id="counter" class="mycounter.Counter"/>
*วิธีการจัดการเหตุการณ์ On Application Start และ On Session Start ใน jsp ใช้คลาส HttpSessionBindingListener
เพิ่มเซสชัน:
session.putValue("bingdings.listener",MyListener ใหม่(getServletContext());
กำหนดคลาส MyListener:
นำเข้า javax.servlet.http.*;
นำเข้า javax.servlet.*;
MyListener คลาสสาธารณะใช้ HttpSessionBindingListener {
บริบท ServletContext;
MyListener สาธารณะ (บริบท ServletContext) {
นี้.บริบท=บริบท;
-
ค่าโมฆะสาธารณะ (เหตุการณ์ HttpSessionBindingEvent) {
System.out.println("valuebound:someone just bounded my Listener to a session!");
-
โมฆะสาธารณะ valueUnbound (เหตุการณ์ HttpSessionBindingEvent) {
System.out.println("valueunbound:someone just unbound my Listener!");
-
}
1.2 คำขอ
*รับที่อยู่ URL ที่สมบูรณ์ของไฟล์ jsp/servlet ที่กำลังรันอยู่
ไฟล์ Stringf=request.getRequestURL();
ถ้า(requet.getQueryString()!=null{
ไฟล์+='?'+request.getqueryString();
-
URL ที่สร้างใหม่URL=URL ใหม่(request.getScheme(),request.getServerName(),request.getServerPort(),ไฟล์);
out.println(reconstructedURL.toString());
*รับ URL ที่ลูกค้าเข้าถึงหน้านี้
String callPage=request.getHeader("ผู้อ้างอิง");
*รับเส้นทางที่แท้จริงของสคริปต์ปัจจุบันในระบบไฟล์ในเครื่อง
request.getRealPath(request.getServletPath());
* พิจารณาหนึ่งในการส่งหลายรายการ
<input type=submit name="sub" value="up">
<input type=submit name="sub" value="down">
ใช้ request.getParameter("sub"); ใน jsp เพื่อแยกแยะ
การตอบสนอง 1.3
*สามวิธีในการเปลี่ยนเส้นทางหน้าเว็บ
(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("หมดอายุ",0);%>
1.4 เซสชัน
*เวลาแห่งการอยู่รอด
<%session.setMaxInactiveInterval(300);%>
*ออกจากระบบ
session.invalidate();
1.5 ข้อยกเว้น
* การจัดการข้อผิดพลาดของ Servlet ในหน้า jsp
โมฆะที่ได้รับการป้องกัน sendErrorRedirect (คำขอ HttpServletRequest,
การตอบสนอง HttpServletResponse, สตริง errorPageURL, โยนได้ e)
พ่น ServletException, IOException {
request.setAttibute("javax.servlet.jsp.jspException",e);
getServletConfig().getServletContext();
getRequestDispatcher(errorPageURL).forward(คำขอ ตอบกลับ);
-
doPost โมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบกลับ HttpServletResponse) {
พยายาม{
-
-
จับ (ข้อยกเว้น e) {ลอง {
sendErrorRedirect(คำขอ,ตอบกลับ,"/jsp/ErrPage.jsp",e);
} catch (ข้อยกเว้น e) {e.printStackTrace();}
-
-
* stacktrace ข้อผิดพลาดเอาต์พุตในหน้า jsp
(1)
<%@ หน้า isErrorPage="true%>
-
out.println("<pre>");
printWriter pw=response.getWriter();
ข้อยกเว้น printStackTrace (pw);
out.println("</pre>");
-
(2)
<%@ หน้า isErrorPage="true%>
<ก่อน>
-
ข้อยกเว้น printStackTrace (PrintWriter ใหม่ (ออก));
-
</pre>
1.6 คุกกี้
*ตั้งค่าคุกกี้
-
คุกกี้ mycookie=คุกกี้ใหม่("aName","aValue");
การตอบสนอง addCookie (mycookie);
//mycookie.setMaxAge(เวลา);
-