บล็อกบอกการใช้ตัวดักในรูปแบบของการสาธิต
โครงสร้างโครงการแสดงในรูป:
JAR ที่จำเป็น: มีขวดที่จำเป็นสำหรับการกำหนดค่า SpringMVC และขวดที่จำเป็นสำหรับ JSTL
คำอธิบายของฟังก์ชั่นของแพ็คเกจ SpringMVC:
AOPALLIANCE.JAR: แพ็คเกจนี้เป็นแพ็คเกจ AOP Alliance API ซึ่งมีอินเทอร์เฟซสำหรับ facets โดยปกติเฟรมเวิร์กอื่น ๆ เช่นฤดูใบไม้ผลิที่มีฟังก์ชั่นการทอแบบไดนามิกขึ้นอยู่กับขวดนี้
Spring-core.jar: ไฟล์ jar นี้มีคลาสเครื่องมือหลักพื้นฐานของเฟรมเวิร์กสปริง ส่วนประกอบอื่น ๆ ทั้งหมดของฤดูใบไม้ผลิจำเป็นต้องใช้คลาสในแพ็คเกจนี้ซึ่งเป็นแกนหลักพื้นฐานของส่วนประกอบอื่น ๆ แน่นอนคุณสามารถใช้คลาสเครื่องมือเหล่านี้ในระบบแอปพลิเคชันของคุณเอง
การพึ่งพาภายนอกคอมมอนส์การบันทึก (log4j)
Spring-beans.jar: ไฟล์ jar นี้ใช้โดยแอปพลิเคชันทั้งหมด ซึ่งรวมถึงการเข้าถึงไฟล์กำหนดค่าการสร้างและการจัดการถั่วและทำการผกผันของการควบคุม /
การดำเนินการฉีดพึ่งพา (IOC/DI) เป็นคลาสทั้งหมดที่เกี่ยวข้องกับ หากแอปพลิเคชันต้องการการสนับสนุน IOC/DI ขั้นพื้นฐานเท่านั้นแนะนำไฟล์ Spring-core.jar และ Spring-Beans.jar
Spring-Aop.jar: ไฟล์ JAR นี้มีการสนับสนุนข้อมูลเมตาและระดับต้นทางที่จำเป็นเมื่อใช้คุณสมบัติ AOP ของ Spring ในแอปพลิเคชันของคุณ ใช้คุณสมบัติสปริงตาม AOP เช่นการจัดการธุรกรรมที่ประกาศและรวมถึงแพ็คเกจ JAR นี้ในแอปพลิเคชัน
การพึ่งพาภายนอกฤดูใบไม้ผลิ (ถั่วฤดูใบไม้ผลิ, AOP Alliance, CGLIB, คุณลักษณะคอมมอนส์)
Spring-context.jar: ไฟล์ jar นี้ให้ส่วนขยายจำนวนมากไปยัง Spring Core คลาสทั้งหมดที่คุณต้องการใช้คุณสมบัติ Spring ApplicationContext สามารถพบได้ JDNI
คลาสที่จำเป็นทั้งหมดส่วนประกอบเครื่องมือและคลาสที่เกี่ยวข้องสำหรับการตรวจสอบการตรวจสอบ
การพึ่งพาอาศัยกันของถั่วฤดูใบไม้ผลิ (Spring-Aop)
Spring-Context-Support: การสนับสนุนส่วนขยายของสปริงเท็กซ์ใช้สำหรับ MVC
Spring-Web.jar : ไฟล์ JAR นี้มีคลาสหลักที่จำเป็นสำหรับการใช้งานใน Framework Spring ในระหว่างการพัฒนาเว็บแอปพลิเคชันรวมถึงคลาสที่โหลดคุณสมบัติบริบทของแอปพลิเคชันเว็บแอปพลิเคชันโดยอัตโนมัติและคลาสรวม JSF
สปริงเท็กซ์การพึ่งพาภายนอก, Servlet API, (JSP API, JSTL, Commons fileupload, COS)
Spring-Webmvc.jar: ไฟล์ JAR นี้มีคลาสทั้งหมดที่เกี่ยวข้องกับกรอบ MVC Spring รวมถึง Servlets, Web MVC Framework, Controller และ View Support สำหรับเฟรมเวิร์ก แน่นอนหากแอปพลิเคชันของคุณใช้เฟรมเวิร์ก MVC แบบสแตนด์อโลนคุณไม่จำเป็นต้องใช้คลาสใด ๆ ในไฟล์ JAR นี้
Spring-Web การพึ่งพาภายนอก (สนับสนุนสปริง, กระเบื้อง, IText, POI)
Spring-Specects.jar: ให้การสนับสนุนสำหรับ ASPECTJ เพื่อให้ฟังก์ชั่นที่มุ่งเน้นด้านต่าง ๆ สามารถรวมเข้ากับ IDEs ได้อย่างง่ายดายเช่น Eclipse AJDT
การพึ่งพาภายนอก
Spring-Jdbc.jar: ไฟล์ JAR นี้มีคลาสทั้งหมดที่ห่อหุ้มการเข้าถึงข้อมูล JDBC ของ Spring
Spring-beans Spring-dao การพึ่งพาภายนอก
Spring-test.jar: การห่อหุ้มกรอบการทดสอบอย่างง่ายเช่น Junit
Spring-tx.jar: jar ของ Spring สำหรับการประมวลผลธุรกรรม TX
Spring-expression.jar: ภาษานิพจน์ฤดูใบไม้ผลิ
เขียนคอนโทรลเลอร์:
แพ็คเกจ com.mvc.action; นำเข้า Javax.servlet.http.httpsession; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.web.bind.annotation.requestmapping; /** * เข้าสู่ระบบคอนโทรลเลอร์รับรองความถูกต้อง */@Controller คลาสสาธารณะ LoginControl {/** * เข้าสู่ระบบ * @param เซสชัน * httpsession * @param ชื่อผู้ใช้ * ชื่อผู้ใช้ * @param รหัสผ่าน * รหัสผ่าน * @return */@requestmapping (value = "/login") session.setAttribute ("ชื่อผู้ใช้", ชื่อผู้ใช้); // เปลี่ยนเส้นทางกลับ "เปลี่ยนเส้นทาง: hello.action"; }/** * ออกจากระบบ * @param เซสชัน * เซสชัน * @return * @throws Exception */@requestmapping (value = "/logout") การออกจากระบบสตริงสาธารณะ (เซสชัน httpsession) โยนข้อยกเว้น {// ล้างเซสชันเซสชัน. invalidate (); return "Redirect: Hello.Action"; - เขียน interceptor:
แพ็คเกจ com.mvc.interceptor; นำเข้า javax.servlet.http.httpservletrequest; นำเข้า Javax.servlet.http.httpservletResponse; นำเข้า Javax.servlet.http.httpsession; นำเข้า org.springframework.web.servlet.handlerinterceptor; นำเข้า org.springframework.web.servlet.modelandview; /*** การตรวจสอบความถูกต้องของการล็อกอิน interceptor* /คลาสสาธารณะเข้าสู่ระบบ LoginInterceptor ใช้ handlerInterceptor { /*** เรียกวิธีนี้หลังจากที่ตัวจัดการถูกดำเนินการ* /โมฆะสาธารณะหลังการรวม (httpservletrequest คำขอ httpservletResponse ModelAndView ส่งคืน*/โมฆะสาธารณะ Postthandle (คำขอ httpservletRequest, การตอบสนอง httpservletResponse, ตัวจัดการวัตถุ, modelandview modelandview) โยนข้อยกเว้น {}/***วิธีนี้เรียกว่าการดำเนินการ handler url string url = request.getRequesturi (); //url:login.jsp สามารถเข้าถึงได้อย่างเปิดเผย การสาธิตนี้ถูกสกัดกั้นยกเว้น login.jsp, URL อื่น ๆ ถูกสกัดกั้นถ้า (url.indexof ("login.action")> = 0) {return true; } // รับเซสชัน httpsession session = request.getSession (); string username = (string) session.getAttribute ("ชื่อผู้ใช้"); if (ชื่อผู้ใช้! = null) {return true; } // หากเงื่อนไขไม่เป็นไปตามเงื่อนไขให้ข้ามไปที่คำขออินเตอร์เฟสเข้าสู่ระบบ GetRequestDispatcher ("/web-inf/jsp/login.jsp") ส่งต่อ (คำขอตอบกลับ); กลับเท็จ; - ไฟล์กำหนดค่า SpringMvc:
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: aop = "http://www.springframework xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://ww.springframework http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context/spring-contexte-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/scthema <!-ใช้การสแกนส่วนประกอบ-> <!-สแกนการกระทำลงทะเบียนในคอนเทนเนอร์สปริงและกำหนดค่าการกระทำในคอนเทนเนอร์สปริงโดยอัตโนมัติ-> <บริบท: ส่วนประกอบ-สแกนฐานแพคเกจ = "com.mvc.action"/> <! name = "MessageConverters"> <list> <bean> </ebean> </list> </property> </epean> <!-ดูตัวแก้ไข-> <!-แยกวิเคราะห์ JSP, การสนับสนุนเริ่มต้นสำหรับ jstl-> <bean> value = "/web-inf/jsp/"/> <property name = "คำต่อท้าย" value = ". jsp"/> </ebean> <!-ในการพัฒนาจริงคุณมักจะต้องกำหนดค่า MVC: แท็กที่ขับเคลื่อนด้วยคำอธิบายประกอบ แท็กนี้คือการเปิดใช้งานคำอธิบายประกอบ-> <MVC: คำอธิบายประกอบ-ไดรฟ์> </mvc: คำอธิบายประกอบ-ไดรฟ์> <!-interceptor-> <mvc: interceptors> <!-interceptors หลายตัวดำเนินการตามลำดับ-> <mvc: interceptor> </mvc: interceptors> </epeans>
อินเตอร์เฟสเข้าสู่ระบบ:
<%@ page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%> String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <title> jsp 'login.jsp' http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "Expires" content = "0"> <meta http-equiv = "คำหลัก" content = "keyword1, คำหลัก 2, คำหลัก type = "text/css" href = "styles.css"> -> </head> <body> <form action = "$ {pageContext.request.context.contextpath} /login.action" method = "โพสต์"> ชื่อผู้ใช้: value = "เข้าสู่ระบบ"/> </form> </body> </html> หลังจากเข้าสู่ระบบสำเร็จแล้วให้ข้ามไปที่อินเทอร์เฟซ
hello.jsp
<%@page language = "java" import = "java.util.*" pageencoding = "utf-8"%> <%@taglib uri = "http://www.springframework.org/tags" คำนำหน้า uri = "http://www.springframework.org/tags/form" คำนำหน้า = "ฟอร์ม" %> < %@taglib uri = "http://java.sun.com/jsp/jstl/core String basepath = request.getScheme ()+": //"+request.getServerName ()+":"+request.getServerport ()+path+"/"; %> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= basepath%>"> <title> jsp 'hello.jsp' http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "Expires" content = "0"> <meta http-equiv = "คำหลัก" content = "keyword1, คำหลัก 2, คำหลัก type = "text/css" href = "styles.css"> -> </head> <body> ผู้ใช้ปัจจุบัน: $ {ชื่อผู้ใช้} <c: ถ้า test = "$ {ชื่อผู้ใช้! </html> Hellocontrol.java ฉันเขียนมันในรูปแบบ HelloWorld และฉันจำเป็นต้องแก้ไขตามโครงการ
แพ็คเกจ com.mvc.action; นำเข้า org.springframework.stereotype.controller; นำเข้า org.springframework.ui.model; นำเข้า org.springframework.web.bind.annotation.requestmapping; // แท็กคลาสนี้เป็นตัวประมวลผลตัวจัดการ @controller คลาสสาธารณะ helloaction {@requestmapping ("/hello") // พัฒนา URL ที่สอดคล้องกับสตริงสาธารณะคลาสควบคุมนี้สวัสดี (รุ่นโมเดล) {String message = "SpringMvc"; // เพิ่มแอตทริบิวต์สำหรับโมเดล model.addattribute ("ข้อความ", ข้อความ); กลับ "สวัสดี"; } // public modelandview handlerequest (คำขอ httpservletrequest, // httpservletResponse การตอบกลับ) โยนข้อยกเว้น {// // // แจ้งบรรทัดข้อมูลในหน้า // ข้อความสตริง = "Hello World!"; // // // แสดงข้อมูลบนหน้าผ่านวัตถุคำขอ // //request.setAttribute("Message ", ข้อความ); // // modelandView modelandView = new ModelAndView (); // // เทียบเท่ากับ request.setAttribute (), ส่งข้อมูลไปยังหน้าเพื่อแสดง // // model data // modelandview.addobject ("ข้อความ", ข้อความ); // // set view // modelandview.setViewName ("hello"); // // return modelandview; - ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น