เป็นเวลานานแล้วที่เราเรียน Jsp. ในกระบวนการนี้ เราได้สรุปความรู้พื้นฐานเล็กๆ น้อยๆ และแบ่งปันกับผู้เริ่มต้น จนกระทั่งในที่สุดเราก็ได้ทำโปรเจ็กต์เล็กๆ ของโรงพยาบาลสัตว์เลี้ยง เราก็ใช้เครื่องมือที่ง่ายที่สุดของเราด้วย Jcreater4.0 ฮ่าๆ ฉันเพิ่งรู้หลังจากใช้ Ecliplse ว่าการพัฒนาเร็วมาก แต่มันก็เป็นการวางรากฐานของเราด้วย... ฉันจะไม่พูดอะไรมาก แค่ส่งบทสรุปเล็กๆ น้อยๆ เกี่ยวกับสิ่งที่ฉันเรียนรู้ที่นี่ ยินดีที่จะนำความสะดวกสบายมาสู่ผู้เริ่มต้น และในเวลาเดียวกัน เราหวังว่าผู้เชี่ยวชาญจะสามารถชี้ให้เห็นข้อบกพร่อง...
ก่อนอื่น เรามาพูดถึงหลักสูตร jsp ของเรากันก่อน ส่วนแรกคือเทคโนโลยี Servlet รวมถึงการแนะนำ Servelt การติดตามเซสชัน JavaMal และ Servlet บทที่ 2 ส่วนที่สองคือเทคโนโลยี JSP รวมถึง: การแนะนำ jsp, การใช้สคริปต์และคำสั่ง jsp, วัตถุโดยนัย jsp, JavaBeans และการดำเนินการมาตรฐานใน jsp, ภาษานิพจน์ jsp, แท็กที่กำหนดเอง, ไลบรารีแท็กที่กำหนดเอง jsp คือรูปแบบการออกแบบตัวกรอง รวมถึงรูปแบบการออกแบบตัวกรองและ MVC
1. ความรู้เกี่ยวกับเซิร์ฟเล็ตและข้อผิดพลาดและกฎทั่วไป
1. กระบวนการรันโปรแกรมบนเดสก์ท็อปและแอปพลิเคชันเว็บจะเหมือนกัน --- ขึ้นอยู่กับกระบวนการร้องขอและการตอบสนอง
2.http โปรโตคอล (โปรโตคอลการถ่ายโอนไฮเปอร์เท็กซ์)
1) ไร้สัญชาติ: ไม่มีความเชื่อมโยงระหว่างคำขอข้อมูลหลายรายการ
2) ใช้เพื่อส่งข้อความคำขอและตอบกลับทางอินเทอร์เน็ต
3) ใช้พอร์ตเพื่อรับและส่งข้อความค่าเริ่มต้นคือพอร์ต 80
พอร์ต: สำหรับบัฟเฟอร์หน่วยความจำ (ข้อมูลการรับแบบมัลติเธรด)
หน้าต่าง: 0 --- พอร์ต 65535
0---4096 คือพอร์ตระบบ
3.เซิร์ฟเล็ตคืออะไร?
เซิร์ฟเวอร์ให้แอปเพล็ตฝั่งเซิร์ฟเวอร์
โปรแกรมที่เขียนด้วยภาษา Java ที่ใช้ในการประมวลผลคำขอที่ส่งโดยไคลเอนต์และให้เซิร์ฟเวอร์ตอบสนองต่อไคลเอนต์
Servlet ทำงานบนเซิร์ฟเวอร์เท่านั้น
4. คำอธิบายโดยละเอียดของ Servlet:
นำเข้า java.io.*;
นำเข้า javax.servlet.*;
นำเข้า javax.servlet.http.*;
นำเข้า java.util.*;
MyServlet คลาสสาธารณะขยาย HttpServlet
-
โมฆะสาธารณะ doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่นServletException, IOException
-
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
response.sendRedirect("Login.jsp"); //วิธีการเปลี่ยนเส้นทาง
request.getParameter(""); //อ่านข้อมูลลูกค้า
//วิธีการต่อไปนี้คือการส่งต่อ สิ่งที่แตกต่างจากการเปลี่ยนเส้นทางคือข้อมูลจะไม่สูญหายระหว่างการส่งต่อ
บริบท ServletContext=this.getServletContext();
ผู้ส่งคำขอ Dispatcher=context.getRequestDispatcher("/welcome.jsp");
Dispatcher.forward (คำขอตอบกลับ);
...//รวมวิธีการดังต่อไปนี้ (ค่อนข้างไม่ค่อยได้ใช้)
Dispatcher.include
(คำขอตอบกลับ);
doPost โมฆะสาธารณะ (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่นServletException, IOException
-
doGet(ร้องขอ, ตอบกลับ);
-
}
(2) เมื่อคุณต้องการส่งพารามิเตอร์ไปยัง Servlet, Src="Servlet?name=' ' ";
5. เมื่อดำเนินการเซิร์ฟเล็ต ข้อความแจ้งการดาวน์โหลดจะเกิดขึ้น:
(1) ความเป็นไปได้อย่างใดอย่างหนึ่ง: text/html;charset =GBK เครื่องหมายอัฒภาคตรงกลางเขียนด้วยลูกน้ำ
(2) ความเป็นไปได้ที่สอง: ข้อมูลการกำหนดค่าใน XML ไม่ถูกต้อง
(3) ความเป็นไปได้ที่สาม: เมื่อกำหนดตัวแปรส่วนกลาง เช่น CONTENT_TYPED ควรอยู่ในเครื่องหมายคำพูดคู่เพื่อใช้ในอนาคต
(4) ความเป็นไปได้ที่สี่: เมื่อมีการเขียนอักขระผิดในข้อความ/html และชุดอักขระด้านบน การดาวน์โหลดจะได้รับแจ้งด้วย
6. เมื่อดำเนินการเซิร์ฟเล็ต เกิดข้อผิดพลาด 404:
(1) ส่วนใหญ่เกิดจากข้อผิดพลาดในการกำหนดค่า ใน xml
(2) อาจมีข้อผิดพลาดใน URL ในวิธีการสื่อสารเซิร์ฟเล็ต
(3) เมื่อส่งแบบฟอร์มแล้ว: เส้นทางการดำเนินการ
(4) ข้อผิดพลาดที่ค่อนข้างโง่คือเครื่องหมายถูกเขียนไม่ถูกต้อง โปรดตรวจสอบอย่างละเอียด
ดำเนิน
การเซิร์ฟเล็ต เกิดข้อผิดพลาด 403:
(1) เกิดข้อผิดพลาดในไซต์ภายใต้ Tomcat
เซิร์ฟเล็ต เกิดข้อผิดพลาด 405:
(1) ) เมื่อไม่มีวิธีการโพสต์ในเซิร์ฟเล็ต
95 เมื่อรันเซิร์ฟเล็ต เกิดข้อผิดพลาด 500:
(1) ส่วนใหญ่เป็นข้อผิดพลาดที่ผิดปกติในโค้ดโปรแกรมเซิร์ฟเล็ต 10.
ในระหว่างการดำเนินการ ข้อมูลที่นำออกมาจะต้องเป็นไปตามสถานการณ์จริง ค้นหาข้อความแสดงข้อผิดพลาดที่เกี่ยวข้อง
11. เมื่อดำเนินการหน้า jsp จะมีข้อความแสดงข้อผิดพลาด 500 เกิดขึ้น....
ส่วนใหญ่เป็นข้อผิดพลาดในการคอมไพล์ระหว่างกระบวนการแปลหน้า jsp!
2. การกำหนดค่า XML
<!--ข้อมูลการกำหนดค่าใน config การกำหนดค่าจะต้องอยู่ใน xml ในเซิร์ฟเล็ต -->
<เซิร์ฟเล็ต>
<init-พารามิเตอร์>
<param-name>sess</param-name>
<param-คลาส>com.serv<param-คลาส>
</init-พารามิเตอร์>
<servlet-name>Myservlet</servlet-name>
<servlet-class>com.Myservetl</servlet-class>
</servlet>
<!--นี่คือการแมป Myservlet-->
<การแมปเซิร์ฟเล็ต>
<servlet-name>Myservlet</servlet-name>
<servlet-คลาส>/url</servlet-คลาส>
<servlet-mapping>
<!--ข้อมูลการกำหนดค่าในบริบท-->
<บริบท-พารามิเตอร์>
<param-name>ses</param-name>
<param-class>com.ser</param-คลาส>
</บริบท-พารามิเตอร์>
หมายเหตุ: ข้อมูลการกำหนดค่าสามารถอ่านได้เท่านั้น และสามารถเข้าถึงการกำหนดค่าได้ใน Servlet เดียว และสามารถเข้าถึงบริบทได้ทั่ว
โลก
======================== สรุปเทคโนโลยีการติดตามเซสชัน ===================== = ==
การอนุญาตผู้ใช้
ซ่อนฟิลด์แบบฟอร์ม
การเขียน URL ใหม่
การใช้คุกกี้
-------------------------------------------------- -------------------------------------------------- -----------------------------------------------
1. เซสชัน: เป็นการร้องขอและการตอบกลับหลายรายการระหว่างไคลเอนต์และเซิร์ฟเวอร์เดียวกันในเวลาเดียวกัน
2. การใช้งานเซสชัน (ประเด็นสำคัญ)
HttpSession session=request.getSession();
session.setAttribute("name",Object); //แนบค่า
session.getAttribute(); //ค่า
session.removeAttributer();
3.คุกกี้(คลาส)
1).คุกกี้คืออะไร?
คุกกี้คือสตริงที่รองรับโดย HTTP ซึ่งสามารถบันทึกและเขียนไปยังไคลเอนต์ (ฮาร์ดดิสก์) อย่างถาวร
ในทุกคำขอ พื้นที่จะเหลือสำหรับคุกกี้ในการตอบกลับ
2) การใช้งาน:
Cookie cookie=new Cookie("name",cookie); //ต้องระบุคีย์และค่าของคุกกี้และต้องเป็นสตริง
การตอบสนอง addcookie (คุกกี้);
cookie.setMaxAge(3600); //เป็นวินาที
//อ่านคุกกี้ที่ลูกค้าส่งมา ประเภทค่าตอบแทนคือ: อาร์เรย์คุกกี้
ขอ.getCookies();
ซ้ำ
เพื่ออ่านคีย์และค่าต่างๆ
(2) ตั้งค่าอายุการใช้งาน > 0, SetMaxAge (วินาที)
(3) ส่งถึงลูกค้า: response.addCookie(cookie);
(1) เว็บไซต์สามารถเขียนคุกกี้ได้ถึง 20 รายการ
(2) ลูกค้าสามารถรับคุกกี้ได้มากถึง 300 ชิ้น
4. ความสัมพันธ์ระหว่างเซสชันและคุกกี้:
รหัสเซสชันจะถูกส่งผ่านระหว่างไคลเอนต์และเซิร์ฟเวอร์เป็นค่าคุกกี้
-------------------------------------------------- -------------------------------------------------- -----------------------------------------------
4. หลักการสร้างเอนทิตีบีน:
/*
* 1. คลาส bean เป็นแบบสาธารณะ
* 2. สมาชิกชั้นเรียนเป็นแบบส่วนตัว
* 3. จะต้องมีโครงสร้างที่ไม่มีพารามิเตอร์
* 4. มีเมธอด set() และ get()
* 5. เมธอดนี้มีชื่อว่าเมธอด setXxx() หรือ getXxx()
-
5. MVC ใช้การห่อหุ้มข้อมูล
มาตรฐานการห่อหุ้มข้อมูลนี้สรุปตาม MVC
เนื้อหาที่ต้องการ: 1. Servlet 2. JavaBean 3. OperBean (การเชื่อมต่อ DB) 4. Jsp
แยกข้อมูลเบื้องหน้าจาก Servlet จากนั้นจึงห่อหุ้มข้อมูลใน JavaBean และ จากนั้นสร้างอินสแตนซ์ OperBean เรียกวิธีการใน OperBean
ส่งผ่านวัตถุ JavaBean เป็นพารามิเตอร์และดำเนินการชุดของการดำเนินการ จากนั้นจัดเก็บข้อมูลที่ส่งคืนใน ArrayList หรือคอลเลกชันอื่น ๆ และห่อหุ้มวัตถุคอลเลกชันในวัตถุเซสชันเพื่ออำนวยความสะดวกในการดึงค่าใน
การควบคุม Servlet เบื้องหน้า:
... ....
Arraylist lis=new ArrayList();
ชื่อสตริง=request.getParameter("ชื่อผู้ใช้");
JavaBean bean=ใหม่ JavaBean();
bean.setName(ชื่อ);
OperBean oper=ใหม่ OperBean();
lis=oper.operMethod(ถั่ว);
เซสชัน HttpSession=request.getSession();
session.setAttribute("รายการ",ลิส)
;
-
ArrayList สาธารณะ OperMethod (ถั่ว JavaBean)
-
ArrayList lis=ใหม่ ArrayList();
สตริง usr=bean.getName("name");
String sql="select * from students โดยที่ name='"+usr+"'";
การเชื่อมต่อฐานข้อมูล db=การเชื่อมต่อฐานข้อมูลใหม่();
...//ธุรกิจข้อมูลการดำเนินงาน
กลับลิส;
}
ธุรกิจแผนกต้อนรับ:
-
รายการ ArrayList=(ArrayList)session.getAttribute("lis");
ตัววนซ้ำ ite=list.iterator();
ในขณะที่ (ite.harNext()) // สำรวจเอาต์พุต
-
JavaBean bean=(JavaBean)ite.next();
-
//รับค่ามัธยฐานของ bean
-
//จากนี้ คุณสามารถดำเนินการต่างๆ เช่น "การเข้าสู่ระบบของผู้ใช้", "การเพิ่มข้อมูล, การลบ, การแก้ไขและการสืบค้น", "การออกจากระบบและการเข้าสู่ระบบ"...
เทคโนโลยี jsp ข้างต้นทั้งหมดไม่เกี่ยวข้องกับ struts และเฟรมเวิร์กอื่น ๆ แต่ เป็นแนวคิด MVC ที่เรียบง่าย มีเพียงการทำความเข้าใจแนวคิดง่ายๆ ข้างต้นเท่านั้นที่เราจะเจาะลึกสิ่งต่าง ๆ ระดับสูง เช่น กรอบงานได้ ท้ายที่สุดแล้ว ฉันยังเป็นมือใหม่อีกด้วย เข้าใจและกำลังเรียนรู้อยู่เรื่อยๆ ถ้ามีเพื่อนๆ คนไหนมีความคิดเห็นดีๆ หรือวิธีเรียนดีๆ ช่วยแนะนำหน่อยนะครับ!