Blog memberi tahu penggunaan pencegat dalam bentuk demo
Struktur proyek ditunjukkan pada gambar:
Jar yang Diperlukan: Ada guci yang diperlukan untuk konfigurasi SpringMVC dan guci yang diperlukan untuk JSTL
Deskripsi Fungsi Paket SpringMVC:
AOPALLIANCE.JAR: Paket ini adalah paket API AOP Alliance, yang berisi antarmuka untuk segi. Biasanya, kerangka kerja lain seperti musim semi yang memiliki fungsi tenun dinamis bergantung pada toples ini
Spring-Core.jar: File jar ini berisi kelas-kelas alat inti dasar dari kerangka kerja musim semi. Semua komponen lain dari Spring perlu menggunakan kelas dalam paket ini, yang merupakan inti dasar dari komponen lain. Tentu saja, Anda juga dapat menggunakan kelas alat ini di sistem aplikasi Anda sendiri.
Ketergantungan Eksternal Commons Logging, (LOG4J).
Spring-beans.jar: File jar ini digunakan oleh semua aplikasi. Ini termasuk mengakses file konfigurasi, membuat dan mengelola kacang, dan melakukan inversi kontrol /
Operasi Injeksi Ketergantungan (IOC/DI) adalah semua kelas terkait. Jika aplikasi hanya membutuhkan dukungan IOC/DI dasar, perkenalkan file spring-core.jar dan spring-beans.jar.
Spring-aop.jar: File jar ini berisi kelas dan dukungan metadata tingkat sumber yang diperlukan saat menggunakan fitur AOP Spring di aplikasi Anda. Gunakan fitur musim semi berdasarkan AOP, seperti manajemen transaksi deklaratif, dan juga termasuk paket JAR ini dalam aplikasi.
Ketergantungan eksternal Spring-core, (Spring-Beans, AOP Alliance, CGLIB, Atribut Commons).
Spring-Context.jar: File JAR ini menyediakan banyak ekstensi ke Spring Core. Semua kelas yang Anda butuhkan untuk menggunakan fitur Spring ApplicationContext dapat ditemukan, JDNI
Semua kelas yang diperlukan, komponen instrumentasi, dan kelas terkait untuk validasi verifikasi.
Ketergantungan Eksternal Spring-Beans, (Spring-AOP).
Spring-Context-dukungan: Dukungan ekstensi Spring-Context, digunakan untuk MVC
Spring-Web.jar : File JAR ini berisi kelas-kelas inti yang diperlukan untuk digunakan dalam kerangka musim semi selama pengembangan aplikasi web, termasuk kelas yang secara otomatis memuat fitur konteks aplikasi web, struts dan kelas integrasi JSF, kelas dukungan untuk unggahan file, kelas filter dan sejumlah besar kelas tambahan alat.
Dependensi Eksternal Spring-Context, Servlet API, (JSP API, JSTL, Commons Fileupload, cos).
Spring-Webmvc.jar: File JAR ini berisi semua kelas yang terkait dengan kerangka MVC Spring. Termasuk Servlets, Web MVC Framework, Controller dan View Support for the Framework. Tentu saja, jika aplikasi Anda menggunakan kerangka kerja MVC mandiri, Anda tidak memerlukan kelas apa pun dalam file jar ini.
Ketergantungan eksternal Spring-WEB, (SPRING-SUPPORT, Ubin, ITEXT, POI).
Spring-aspects.jar: Memberikan dukungan untuk aspekj sehingga fungsi yang berorientasi aspek dapat dengan mudah diintegrasikan ke dalam IDE, seperti Eclipse AJDT.
Dependensi eksternal.
Spring-jdbc.jar: File JAR ini berisi semua kelas yang merangkum akses data JDBC Spring.
Ketergantungan Eksternal Spring-Beans, Spring-Dao.
Spring-test.jar: Enkapsulasi sederhana kerangka kerja uji seperti junit
Spring-tx.jar: Jar Spring untuk pemrosesan transaksi TX
Spring-Expression.jar: Bahasa ekspresi musim semi
Tulis pengontrol:
paket com.mvc.action; impor javax.servlet.http.httpsession; impor org.springframework.stereotype.controller; impor org.springframework.web.bind.annotation.requestmapping; /** * Login authenticated controller*/ @Controller public class LoginControl { /** * Login* @param session * HttpSession * @param username * Username * @param password * Password * @return */ @RequestMapping(value="/login") public String login(HttpSession session,String username,String password) throws Exception{ //Save information in the Session session.setAttribute ("nama pengguna", nama pengguna); // redirect return "Redirect: hello.action"; }/** * Keluar dari sistem * @param sesi * sesi * @return * @throws Exception */@RequestMapping (value = "/logout") Public String Logout (Httpsession Session) melempar Exception {// CLEAR SESSION.InValidate (); return "Redirect: Hello.action"; }} Tulis pencegat:
paket com.mvc.interceptor; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; impor javax.servlet.http.httpsession; impor org.springframework.web.servlet.handlerInterceptor; impor org.springframework.web.servlet.modelandview; /*** Interceptor Otentikasi Login* /Kelas Publik LoginInceptor mengimplementasikan HandlerInterceptor { /*** Panggil metode ini setelah pawang dieksekusi* /public void AfterCompletion (handler httpservletRequest, httpserponse response, handler objek, pengecualian pengecualian) LOBA EXCECTION {} {} {}}} the ModelAndView returns*/ public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } /** * This method is called before Handler execution*/ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // Dapatkan URL URL URL yang diminta = request.getRequesturi (); //Url:login.jsp dapat diakses secara publik; Demo ini dicegat kecuali login.jsp, URL lain dicegat jika (url.indexof ("login.action")> = 0) {return true; } // Dapatkan sesi httpsession sesi = request.getSession (); String username = (string) session.getAttribute ("username"); if (username! = null) {return true; } // Jika kondisinya tidak memenuhi syarat, lompat ke permintaan antarmuka login.getRequestDispatcher ("/web-inf/jsp/login.jsp"). Maju (permintaan, respons); mengembalikan false; }} File Konfigurasi SpringMVC:
<? Xml Version = "1.0" encoding = "UTF-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: aop = "http://www.springframework.org/orga/aPema/http://www.spramework.org/orga/aPema/sphema/www.spramework.org/orga/aPema/aPema/http" 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:/wwww.spramework.orgal/schema/beans http:/www.spramework.orga/schema/beans 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/schaMa/context/spring-context-4.0.xsd http:/spring-pfring http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd "> <!-Gunakan pemindaian komponen-> <!-pindai aksi, daftarkan dalam wadah musim semi, dan secara otomatis mengkonfigurasi tindakan dalam container musim semi-> <konteks: komponen-scan-pack-pack = Action" com. " name = "/hello.action"> </ bean>-> <!-prosesor mapper handlermapping-> <bean/> <bean> <name properti = "messageConVerters"> <cist> <bean> </tage> </list> </properts </bean> <!-lihat resolver-> </bean> </list '</propers> </bean> <!-lihat resolver-> </bean-parse jsp, parse = parse = parse = parse = parse = parse/parse/lean <! value = "org.springframework.web.servlet.view.jstlview"> </property> <properti name = "prefix" value = "/web-inf/jsp/"/> <name properti = "suffix" value = ". This tag is to enable annotation--> <mvc:annotation-driven></mvc:annotation-driven> <!-- Interceptor--> <mvc:interceptors> <!-- Multiple interceptors, executed sequentially --> <mvc:interceptor> <mvc:mapping path="/**"/> <bean></bean> </mvc:interceptor> </mvc: Interceptors> </boy>
Antarmuka login:
<%@ page language = "java" import = "java.util.*" pageEncoding = "utf-8"%> <%@ 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 transisi // en"> <html> <adep> <base href = "<%= basepath%>"> <title> login.jspe "meto" </title> </title </title> <MetA http-quiv = "metpAing =" no-conte "no-conte" no-conte = "no-conte" no-conte = "no-contpe =" no-conte- "no-conte> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css"> -> </head> <body> <form Action = "$ {pagecontext.Request.contextPath} /Login.action" Metode = "POST"> name = "input =" teks "Nama =" nama pengguna "/<br> <br> kata sandi: <" input = "teks" Nama = "username"/<br> <br> kata sandi: <"input =" TEXT "Nama =" username "/<br> Kata sandi: <" "input =" Text "name =" Username "/<br> Kata Sandi: <" Input = "TEXT" NAME = "Username"/<br> Kata Sandi: <"Input =" TEXT "NAME =" USERNAMEame "/<br> KOWREFRET: <BRAND" KOUSTREK = " type = "kirim" value = "login"/> </form> </body> </html> Setelah masuk dengan sukses, lompat ke antarmuka
Hello.jsp
<%@page language = "java" import = "java.util.*" pageCoding = "utf-8"%> <%@taglib uri = "http://www.springframework.org/tags" prefix = "spring"%> <%@taglib uri = "http:" http: "htform:" spring "%> <%@taglib uri =" http: "httpon" htform: 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 transisi // en"> <html> <head> <base href = "<%= Basepath%>"> <title> JSP 'hello.jsp' conten "</title> </title </title> <MetA http-equiv =" pRACMA = "no-conte =" no-conte "no-conte </title> <MetA http-equiv =" pRAf = "no-conte =" no-conte = "no-conte =" no-conte "no-conte =" no-conte = "no-conte =" no-conte = "no-conte> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "kedaluwarsa" konten = "0"> <meta http-equiv = "kata kunci" konten = "kata kunci1, kata kunci2, koki"> <meta http http-equiv = "koki" ini = "ini" type = "text/css" href = "styles.css"> -> </pead> <body> pengguna saat ini: $ {nama pengguna} <c: if test = "$ {username! = null}"> <a href = "$ {pageContext.request.contextpath} {{pageContext.a </context </body> </html> HelloControl.java, saya menulisnya dalam bentuk HelloWorld, dan saya perlu memodifikasinya sesuai dengan proyek.
paket com.mvc.action; impor org.springframework.stereotype.controller; impor org.springframework.ui.model; impor org.springframework.web.bind.annotation.requestmapping; // Tag kelas ini sebagai prosesor pawang @Controller kelas publik Helloaction {@RequestMapping ("/hello") // Kembangkan URL yang sesuai dengan kelas kontrol ini string publik hello (model model) {string message = "springmvc"; // Tambahkan atribut untuk model model.addattribute ("pesan", pesan); Kembalikan "Halo"; } // public ModelAndView handleRequest (permintaan httpservletRequest, // httpservletResponse response) melempar Exception {// /// Minta baris informasi pada halaman // string message = "Hello World!"; // // // Tampilkan informasi pada halaman melalui objek permintaan // //request.setAttribute("Message ", pesan); // // ModelAndView ModelAndView = new ModelAndView (); // // setara dengan request.setAttribute (), lulus data ke halaman untuk menampilkan // // model data // modelAndView.addObject ("pesan", pesan); // // atur tampilan // modelAndView.setViewName ("Hello"); // // return ModelAndView; //}} Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.