O blog conta o uso de interceptores na forma de uma demonstração
A estrutura do projeto é mostrada na figura:
Jar Necessário: Existem potes necessários para a configuração Springmvc e frascos necessários para o JSTL
Descrição da função do pacote Springmvc:
AOPALLIANCE.JAR: Este pacote é um pacote API da AOP Alliance, que contém interfaces para facetas. Geralmente, outras estruturas como a primavera que têm funções dinâmicas de tecelagem dependem desse frasco
spring-core.jar: Este arquivo JAR contém as classes básicas de ferramentas principais da estrutura da mola. Todos os outros componentes da primavera precisam usar as classes neste pacote, que é o núcleo básico de outros componentes. Obviamente, você também pode usar essas classes de ferramentas em seu próprio sistema de aplicativos.
Registro de dependência externa Commons, (log4j).
spring-beans.jar: Este arquivo JAR é usado por todos os aplicativos. Inclui o acesso a arquivos de configuração, criação e gerenciamento de feijões e execução de inversão de controle /
As operações de injeção de dependência (IOC/DI) são todas as classes relacionadas. Se o aplicativo exigir apenas suporte básico do IOC/DI, apresente arquivos Spring-core.jar e spring-beans.jar.
Spring-AOP.JAR: Este arquivo JAR contém o suporte de metadados de classe e fonte necessário ao usar o recurso AOP da Spring em seu aplicativo. Use os recursos da mola com base na AOP, como gerenciamento de transações declarativas, e também inclua esse pacote JAR no aplicativo.
Dependências externas Spring-Core, (Spring-Beans, AOP Alliance, CGLIB, Commons Atributos).
Spring-Context.jar: Este arquivo JAR fornece muitas extensões ao núcleo da primavera. Todas as classes que você precisa para usar o recurso Spring ApplicationContext podem ser encontradas, JDNI
Todas as classes necessárias, componentes de instrumentação e classes relacionadas para validação de verificação.
Dependência externa Spring-Beans, (Spring-AOP).
Suporte de Spring-Context: Suporte de extensão de contexto de primavera, usado para MVC
Spring-web.jar : Este arquivo JAR contém as classes principais necessárias para o uso na estrutura de mola durante o desenvolvimento de aplicativos da web, incluindo classes que carregam automaticamente os recursos de contexto de aplicativos da Web, struts e JSF integração aulas, classes de suporte para uploads de arquivos, classes de filtro e um grande número de classes auxiliares da ferramenta.
Dependência externa Spring-Context, API do servlet, (JSP API, JSTL, Commons FileUpload, COS).
Spring-webmvc.jar: Este arquivo JAR contém todas as classes relacionadas à estrutura MVC da primavera. Inclui servlets, Web MVC Framework, Controller e View Support para a estrutura. Obviamente, se o seu aplicativo usar uma estrutura MVC independente, você não precisará de nenhuma aula neste arquivo JAR.
Dependência externa Spring web, (suporte de mola, telhas, Itext, POI).
Spring-aspect.Jar: fornece suporte ao AspectJ para que as funções orientadas a aspectos possam ser facilmente integradas ao IDES, como o Eclipse AJDT.
Dependências externas.
Spring-jdbc.jar: Este arquivo JAR contém todas as classes que encapsulam o acesso de dados JDBC da Spring.
Dependência externa Spring-Beans, primavera-dao.
Spring-test.Jar: encapsulamento simples de estruturas de teste como Junit
spring-tx.jar: jarra da primavera para processamento de transações TX
Spring-Expression.Jar: Spring Expression Language
Escreva um controlador:
pacote com.mvc.action; importar javax.servlet.http.httpSession; importar org.springframework.tereotype.controller; importar org.springframework.web.bind.annotation.requestmapping; / * * session.setAttribute ("nome de usuário", nome de usuário); // redirecionar o retorno "Redirecionar: hello.action"; }/** * Saia do sistema * @param session * sessão * @return * @throws Exception */@RequestMapping (value = "/logout") public String Logout (sessão httpSession) lança exceção {// Clear Session Session.Invalidate (); retornar "Redirecionar: Hello.action"; }} Escreva um interceptador:
pacote com.mvc.intercept; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpServletResponse; importar javax.servlet.http.httpSession; importar org.springframework.web.servlet.HandlerIntercept; importar org.springframework.web.servlet.modelandView; /*** Interceptor de autenticação de login* /public class LoginInterceptor implementa HandlerInterceptor { /*** Chame esse método depois que o manipulador for executado* /public void After compliction (httpServleTrequest Solicy, httpServletResponse Response, manipulador, Exceção), exceção da Exceção {} /** ** ** ** ** Após a resposta do manipulador, a exceção) da exceção {} /** ** ** ** ** ** ** ** ** ** ** *** Retorna*/public void pós -en (httpServletRequest Solicy, httpServletResponse Resposta, manipulador de objetos, modelAndView ModelAndView) lança a exceção {}/***Este método é chamado antes da execução do manipulador*/Public Boolean Prendle (HTTPSertleTrequest Pedido, HTPSTREXRESBONSPONSO (HTTRESTRESBONSOsPONSOs (HTTPSERTSOWSON)/HTPSONSPONSO (HTTSSONFSONSOsPOnsion (hTTPSerTleTrewSowsL) = request.getRequesturi (); //Url:login.jsp é acessível ao público; Esta demonstração é interceptada, exceto login.jsp, outros URLs são interceptados se (url.indexOF ("login.action")> = 0) {return true; } // Obtenha sessão de sessão httpSession = request.getSession (); String userName = (string) session.getAttribute ("nome de usuário"); if (nome de usuário! = null) {return true; } // Se as condições não atenderem às condições, pule para a interface de login request.getRequestDispatcher ("/web-inf/jsp/login.jsp"). Forward (solicitação, resposta); retornar falso; }} Arquivo de configuração Springmvc:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: aop = "http://www.springframework.orgog/schema 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://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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> <!-use o componente Scan-> <!-Digitalize a ação, registre-a no contêiner de mola e configure automaticamente a ação no contêiner da mola-> <Contexto: componente-Scan Base-Package = "com.mvc.action"/> <!-Maniplador de projetos <nome do bean = "/helloaction"> </bEan> <! name="messageConverters"> <list> <bean></bean> </list> </property> </bean> <!-- View Resolver --> <!-- Parse jsp, default support for jstl --> <bean> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <property name="prefix" value = "/web-inf/jsp/"/> <propriedade name = "sufix" 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: interceptores> </ Beans>
Interface de login:
<%@ Page Language = "java" import = "java.util. String basalepath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitório // pt"> <html> <head> <base href = "<%= Basepath%>"> <title> meu jsp 'login.jsp' starting </title> <meta-http-mequiv "> meu jsp 'login.jsp' ' http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expire" content = "0"> <meta http-equiv = "palavras-chave" content = "keyword1, keyword2, palavra-chave"> <magle http-equiv = "descrição" "content1, keyword2, palavra-chave"> <magle http-ouquiv = "descrição" " type = "text/css" href = "styles.css"> -> </head> <body> <formulário action = "$ {PageContext.request.ContextPath} /Login.action" Method = "Post"> nome de usuário: <input type = "text =" username "/> <br> type = "submit" value = "login"/> </morm> </body> </html> Depois de fazer login com sucesso, pule para a interface
Olá.jsp
<%@página linguagem = "java" import = "java.util. prefix = "form" %> < %@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %> < %string path = request.getContextPath (); String basalepath = request.getScheme ()+": //"+request.getServername ()+":"+request.getServerport ()+path+"/"; %> <! Doctype html public "-// w3c // dtd html 4.01 transitório // pt"> <html> <head> <base href = "<%= Basepath%>"> <title> meu jsp 'hello.jsp' página </title> <meta-http-mequiv "> http-equiv = "cache-control" content = "no-cache"> <meta http-equiv = "expire" content = "0"> <meta http-equiv = "palavras-chave" content = "keyword1, keyword2, palavra-chave"> <magle http-equiv = "descrição" "content1, keyword2, palavra-chave"> <magle http-ouquiv = "descrição" " type = "text/css" href = "styles.css"> -> </head> <body> Usuário atual: $ {nome de usuário} <c: se test = "$ {userName! </body> </html> Hellocontrol.java, escrevo em forma de helloworld e preciso modificá -lo de acordo com o projeto.
pacote com.mvc.action; importar org.springframework.tereotype.controller; importar org.springframework.ui.model; importar org.springframework.web.bind.annotation.requestmapping; // Tag esta classe como um processador de manipulador @Controller Classe public helloAction {@RequestMapping ("/hello") // Desenvolva o URL correspondente a esta classe de controle public String hello (modelo modelo) {string message = "springmvc"; // Adicionar atributo para o modelo modelo.addattribute ("mensagem", mensagem); retornar "Olá"; } // public ModelAndView HandleRequest (solicitação httpServletRequest, // httpServletResponse) lança a exceção {// // // solicita uma linha de informações na página // string message = "Hello World!"; // // // Exibe as informações na página através do objeto de solicitação // //request.setattribute("Message ", mensagem); // // ModelAndView ModelAndView = new ModelAndView (); // // equivalente a request.setAttribute (), passa dados para a página para exibir // // model data // modelandview.addobject ("mensagem", mensagem); // // SET View // ModelAndView.SetViewName ("Hello"); // // retornar modelandView; //}} O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.