تروي المدونة استخدام المقاطعات في شكل عرض تجريبي
يظهر هيكل المشروع في الشكل:
جرة مطلوبة: هناك جرار مطلوبة لتكوين springMVC والجرار المطلوبة لـ JSTL
وصف وظيفة حزمة springMVC:
Aopalliance.jar: هذه الحزمة عبارة عن حزمة API AP API AOP ، والتي تحتوي على واجهات للوجهات. عادة ، تعتمد أطر أخرى مثل الربيع التي لها وظائف نسج ديناميكية على هذه الجرة
Spring-core.jar: يحتوي ملف الجرة هذا على فئات الأدوات الأساسية الأساسية في إطار الربيع. تحتاج جميع مكونات الربيع الأخرى إلى استخدام الفصول في هذه الحزمة ، والتي هي الأساسية الأساسية للمكونات الأخرى. بالطبع ، يمكنك أيضًا استخدام فئات الأدوات هذه في نظام التطبيق الخاص بك.
تسجيلات الاعتماد الخارجي ، (log4j).
الربيع beans.jar: يتم استخدام ملف الجرة هذا من قبل جميع التطبيقات. ويشمل الوصول إلى ملفات التكوين ، وإنشاء وإدارة الفاصوليا ، وإجراء انعكاس للتحكم /
عمليات حقن التبعية (IOC/DI) كلها فصول تتعلق بـ. إذا كان التطبيق يتطلب فقط دعم IOC/DI الأساسي ، فأعد ملفات spring-core.jar و spring-beans.jar.
Spring-Aop.jar: يحتوي ملف JAR هذا على دعم البيانات الوصفية على مستوى المصدر المطلوب عند استخدام ميزة AOP الخاصة بـ Spring في التطبيق الخاص بك. استخدم ميزات الربيع بناءً على AOP ، مثل إدارة المعاملات التعريفية ، وكذلك تضمين حزمة JAR هذه في التطبيق.
تبعيات خارجية نورس ، (BANS الربيع ، تحالف AOP ، CGLIB ، سمات العموم).
Spring-Context.jar: يوفر ملف الجرة هذا الكثير من الامتدادات إلى قلب الربيع. يمكن العثور على جميع الفئات التي تحتاجها لاستخدام ميزة Spring ApplicationContext ، JDNI
جميع الفئات المطلوبة ومكونات الأجهزة والفئات ذات الصلة للتحقق من صحة التحقق.
الفواصل الربيع التبعية الخارجية ، (ربيع AOP).
دعم الظهر النابض: دعم امتداد SPRING-Context ، يستخدم لـ MVC
Spring-Web.jar : يحتوي ملف JAR هذا على الفئات الأساسية المطلوبة للاستخدام في Spring Framework أثناء تطوير تطبيقات الويب ، بما في ذلك الفئات التي تقوم تلقائيًا بتحميل ميزات سياق تطبيق الويب ، والدعامات ، وفئات تكامل JSF ، وفئات الدعم لتحميلات الملفات ، وفئات التصفية ، وعدد كبير من فئات الأدوات Auxiliary.
التبعية الخارجية لسياق الربيع ، Servlet API ، (JSP API ، JSTL ، Commons FileUpload ، COS).
Spring-Webmvc.jar: يحتوي ملف JAR هذا على جميع الفئات المتعلقة بإطار Spring MVC. يتضمن servlets ، إطار عمل MVC ويب ، وحدة تحكم ودعم عرض للإطار. بالطبع ، إذا كان التطبيق الخاص بك يستخدم إطار عمل مستقل MVC ، فلن تحتاج إلى أي فئات في ملف الجرة هذا.
التبعية الخارجية الربيع web ، (الدعم الربيعي ، البلاط ، itext ، POI).
Spring-aspects.jar: يوفر الدعم لـ SideJ بحيث يمكن دمج الوظائف الموجهة نحو الجانب بسهولة في IDEs ، مثل Eclipse AJDT.
التبعيات الخارجية.
Spring-JDBC.JAR: يحتوي ملف الجرة هذا على جميع الفئات التي تغلف وصول بيانات JDBC في Spring.
الفعل الربيعي التبعية الخارجية ، ربيع داو.
spring-test.jar: تغليف بسيط لأطر الاختبار مثل Junit
Spring-TX.JAR: جرة الربيع لمعالجة معاملات TX
Spring-Expression.jar: لغة التعبير الربيعي
اكتب وحدة تحكم:
حزمة com.mvc.Action ؛ استيراد javax.servlet.http.httpsession ؛ استيراد org.springframework.stereotype.controller ؛ استيراد org.springframework.web.bind.annotation.requestmapping ؛ /** * تسجيل الدخول إلى وحدة التحكم المصادقة على تسجيل الدخول */controller فئة عامة logincontrol {/** * login * param الجلسة * httpsession * param username * username * param password * password * usern */ @reghing) Session.setAttribute ("اسم المستخدم" ، اسم المستخدم) ؛ // Redirect Return "Redirect: Hello.action" ؛ }/** * الخروج من النظام * @Param Session * Session * RETURN * Throws استثناء */REQUESTMAPPE (value = "/logout") سلسلة تسجيل الدخول العامة (جلسة httpsession) استثناء {// clear session.invalidate () ؛ إرجاع "Redirect: Hello.action" ؛ }} اكتب اعتراضًا:
حزمة 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 ؛ /**** اعتراض مصادقة تسجيل الدخول* /مفتاح تسجيل الدخول إلى فئة عامة ، ينفذ مفهوم المعالج { /*** استدعاء هذه الطريقة بعد تنفيذ المعالج* /public void aftercompletion (httpservletrequest request ، httpservletspons إرجاع ModelandView*/public void postthandle (httpservletrequest request ، httpservletresponse ، معالج الكائنات ، modelandview modelandview) يلقي استثناء {}/***هذه الطريقة تسمى قبل تنفيذ المعالج*/public boolean pre -handle (httpserdrequest request ، url string url = request.getRequesturi () ؛ //url:login.jsp يمكن الوصول إليها من القطاع العام ؛ يتم اعتراض هذا العرض التوضيحي باستثناء login.jsp ، يتم اعتراض عناوين URL الأخرى إذا (url.indexof ("login.action")> = 0) {return true ؛ } // الحصول على جلسة httpsession session = request.getSession () ؛ username username = (string) session.getAttribute ("اسم المستخدم") ؛ if (اسم المستخدم! = null) {return true ؛ } // إذا كانت الشروط لا تفي بالشروط ، فانتقل إلى request.getRequestDispatcher (/web-inf/jsp/login.jsp "). العودة كاذبة }} ملف تكوين springMVC:
<؟ Xmlns: XSI = "http://www.w3.org/2001/xmlschema-instance" Xmlns: mvc = "http://www.springframework.org/schema/mvc" http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/Aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/context/spring-context-4.0.xsd <!-استخدم المسح الضوئي للمكون-> <!-مسح الإجراء ، وقم بتسجيله في حاوية الربيع ، وتكوين الإجراء تلقائيًا في حاوية الربيع-> <السياق: مكون مسكّل package = "com.mvc.action"/> <!-معالج المشروع <bean name = "/hello.action"> </bean> <! <list> <bean> </bean> </list> </property> </bean> <!-عرض resolver-> <!-parse jsp ، الدعم الافتراضي لـ jstl-> <bean> <property name = "viewClass" value = "org.springframewok. <property name = "FASEIX" value = ". هذه العلامة هي تمكين التعليق التوضيحي-> <mvc: تعتمد على التعليقات التوضيحية> </mvc: تحركه التعليقات التوضيحية> <!-اعتراض-> <mvc: اعتراضات> <!-معترضات متعددة ، تم تنفيذها بالتتابع-> <mvc: interceptor> </mvc: Interceptors> </bans>
واجهة تسجيل الدخول:
<٪@ 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> meta jsp 'login.jsp' page </title> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "Expires" content = "0"> <meta http-equiv = "keywords" content = "keyword1 ، keyword2 ، keyword3"> <meta http-equiv = "description" content = type = "text/css" href = "styles.css"> -> </head> <body> <form action = "$ {pagecontext.request.contextpath} /login.action.action value = "login"/> </pong> </body> </html> بعد تسجيل الدخول بنجاح ، القفز إلى الواجهة
مرحبا jsp
<٪@page language = "java" import = "java.util.*" pageencoding = "utf-8" ٪> <٪@taglib uri = "http://www.springframework.org/tags prefix = "form" ٪> <٪@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" ٪> <٪ string path = request.getContextPath () ؛ 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> meta my jsp 'hello.jsp' page page </title> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "Expires" content = "0"> <meta http-equiv = "keywords" content = "keyword1 ، keyword2 ، keyword3"> <meta http-equiv = "description" content = type = "text/css" href = "styles.css"> -> </head> <body> المستخدم الحالي: $ {username} <c: if test = "$ {username! = null}"> <a href = "$ {pagecontext </body> </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 المقابل لسلسلة التحكم العامة هذه Hello (نموذج النموذج) {String message = "springmvc" ؛ // إضافة سمة لنموذج model.addattribute ("رسالة" ، رسالة) ؛ العودة "مرحبا" ؛ }. // // // عرض المعلومات الواردة في الصفحة من خلال كائن الطلب // //request.setattribute("message "، رسالة) ؛ // // modelandview modelandview = new ModelAndView () ؛ // // مكافئ لـ request.setattribute () ، تمرير البيانات إلى الصفحة لعرض // // Data // modelandview.addobject ("message" ، message) ؛ // // set view // modelandview.setViewName ("hello") ؛ // // return modelandview ؛ //}} ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.