1 Introdução
O que é estrutura MVC
O nome completo do MVC é o Model View Controller, que é a abreviação do controlador de visualização modelo. É um modelo de design de software. Ele organiza código usando um método de separação de lógica de negócios, dados e exibição de interface e reúne a lógica de negócios em um componente. Ao melhorar e personalizar a interface e a interação do usuário, não há necessidade de reescrever a lógica de negócios. O MVC foi desenvolvido de forma única para mapear as funções tradicionais de entrada, processamento e saída em uma estrutura de interface gráfica lógica do usuário.
Model-View-Controller (MVC) é um padrão de design bem conhecido com base em aplicativos de interface de design. Ele separa principalmente a lógica de negócios da interface, separando o papel dos modelos, visualizações e controladores em aplicativos. Normalmente, o modelo é responsável por encapsular os dados do aplicativo na camada de visualização. A visualização exibe apenas esses dados e não contém nenhuma lógica de negócios. O controlador é responsável por receber solicitações de usuários e chamar serviços de segundo plano (gerente ou DAO) para lidar com a lógica de negócios. Após o processamento, a camada de negócios em segundo plano pode retornar alguns dados a serem exibidos na camada de visualização. O controlador coleta esses dados e prepara o modelo a ser exibido na camada de visualização. A idéia principal do modelo MVC é separar a lógica de negócios da interface, permitindo que eles mudem individualmente sem se afetarem.
Nos aplicativos SpringMVC, o modelo geralmente é composto por objetos POJO, que são processados na camada de negócios e persistidos na camada de persistência. As visualizações geralmente são modelos JSP gravados na JSP Standard Tag Library (JSTL). A parte do controlador é gerenciada pelo DispatcheserServlet e aprenderemos mais sobre isso neste tutorial.
Alguns desenvolvedores acreditam que as classes da camada de negócios e da camada DAO fazem parte dos componentes do modelo MVC. Eu tenho opiniões diferentes sobre isso. Não acho que a camada de negócios e as classes da camada DAO façam parte da estrutura do MVC. Geralmente, um aplicativo da Web é uma arquitetura de três camadas, ou seja, a representação de serviço de dados. O MVC faz parte da camada de apresentação.
Dispatcher Servlet (controlador de mola)
No aplicativo MVC de primavera mais simples, o controlador é o único servlet que você precisa configurar no arquivo de descrição da implantação de web java (ou seja, o arquivo web.xml). Spring MVC Controller - comumente conhecido como servlet do Dispatcher, implementa o padrão de design do controlador front -end. E cada solicitação da Web deve passar por ela para que possa gerenciar todo o ciclo de vida da solicitação.
Quando uma solicitação da Web é enviada para um aplicativo MVC de primavera, o servlet do despachante recebe a solicitação primeiro. Em seguida, organiza componentes configurados no contexto do aplicativo da Web da primavera (como o controlador de processamento de solicitação real e o resolvedor de visualização) ou usando a configuração de anotação, todos os quais exigem o processamento da solicitação.
Defina uma classe de controlador na primavera 3.0, que deve ser marcada com a anotação @Controller. Quando um controlador com a anotação @Controller recebe uma solicitação, ele procurará um método de manipulador adequado para lidar com a solicitação. Isso exige que o controlador mapeie cada solicitação para o método do manipulador por meio de um ou mais mapeamentos de manipuladores. Para fazer isso, os métodos de uma classe de controlador precisam ser decorados com a anotação @RequestMapping para torná -los métodos de manipulador.
Depois que o método Handler processou a solicitação, ele delega o controle em uma visualização com o mesmo nome de exibição que o valor de retorno do método do manipulador. Para fornecer um método flexível, o valor de retorno de um método manipulador não representa a implementação de uma visualização, mas uma visualização lógica, ou seja, não há extensão de arquivo. Você pode mapear essas visualizações lógicas para a implementação correta e escrever essas implementações no arquivo de contexto, para que você possa alterar facilmente o código da camada de visualização sem modificar o código que solicita a classe Handler.
É de responsabilidade do resolvedor de visualização corresponder ao arquivo correto para um nome lógico. Uma vez que a classe controladora analise um nome de visualização para uma implementação de visualização. Ele renderiza o objeto correspondente de acordo com o design implementado pela visualização.
2 Importar pacote de jar
Pelo menos deveria haver isso.
3 arquivos de configuração
3.1 web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xmls/javaee/web-web-web-web-web--/java.sun.com/xmls/javaeeeee/web-web-web-web-web-web-web-web-web-web-web-web-web-web-web-/java.sun.com/ <lame-name> springmvc_helloworld </libe-name> <lorde-file-list> <lmed-File> index.html </limk-File> <lorde-File> index.htm </limk -file> <lmed-File> index.jsp </ld-File> <lmed-File> default.html </-file >-file >-file> <lorde-File> default.jsp </limk-File> </-Welcome-File-List> <!-servlet para mvc spring-> <!-Após a inicialização, o DispatcheserServlet procurará diretamente o arquivo springmvc-servlet.xml em/web-inf/. A definição de parâmetro da tag de servlet-name deve corresponder ao arquivo xml-> <Vertlet> <Verlet-name> springmvc </servlet-name> <Servlet-class> org.springframework.web.sertlet.dispatcherServlet </servlet> <arot-on-startup> 1 </starttup> <Verlet-name> springmvc </servlet-name> <url-tattern>/</url-tattern> </servlet-mapping> <xecutive-param> <amam-name> contextConfigLocation </param-name> </param-value> classpath: ApplicationContext.xml </param-value> </content-param> <listener-class> org.springframework.web.context.contextLoaderListener </lister-class> </ouvinte> </web-app>
3.2 Springmvc-servlet.xml
O nome deste arquivo é determinado pelo <Verlet-name> </servlet-name> do DispatcheserServlet configurado em web.xml. O caminho está no contexto/web-inf/, que configura principalmente a relação correspondente entre o nome da visualização lógica e a visualização física retornada pelo controlador.
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans.xsd http://wwwwwwwwwwwwwwww.a http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/Context http://www.springframework.org/schema/Context/spring-context-3.0.xsd "> <!-pacote automaticamente varrido-> <Contexto: componente-scrack- backsd"> <! id = "ViewResolver"> <propriedade name = "viewclass" value = "org.springframework.web.servlet.view.jstlview" /> <!-controlador retorna um nome de visualização lógico após o processamento pré-subsfixo para retornar à visualização física-> <propriedades = "prefix") </ Bean> </ Beans>
4 Escreva uma classe de domínio
Usado para encapsular alguns dados de envio
pacote com.lin.helloworld.Domain; public class {); {super ();} public helloworld (string data) {super (); this.data = data;} public string getData () {return data;} public void setDatA (string data) {data.d.d thatdata () {return data;} public void setDatA (string data) {Data.d.d thatdata (). "Helloworld [data =" + dados + "]";}} 5 Controlador de gravação
Este é o controlador no MVC. O que é diferente do Struts2 é que é uma interceptação no nível do método e o Struts2 é uma interceptação no nível da classe.
pacote com.lin.helloworld.controller; importar org.springframework.stereotype.controller; importar org.springframework.web.bind.annotation.modelattribute; importação.springframework.bind.annatation.requestMapping; com.lin.helloworld.domain.HelloWorld;@Controllerpublic class HelloWorldController {//Here /hello is equivalent to an action in struts2//Return a string to the view @RequestMapping("/hello") public ModelAndView saysHello() {//The first parameter of the modelAndView constructor is equivalent to a result in Struts2 nameModelAndView ModelAndView = new ModelAndView ("Helloworld", "Msg", "Helloworld !!!"); retornar modelandView;} // retornar um objeto à view //@@ModelAttribute ("obj") é equivalente a um campo na classe de ação e struts2:/Os dados usados para a forma de forma // name = "obj.data" // Os dados enviados são encapsulados nos dados do object obj // springmvc é: <input name = "dados" // Os dados enviados são encapsulados nos dados do objeto Obj (//, o premise é usar o @modelattration anotation @requestMapping ("/helloobj") Helloworld obj) {System.out.println (obj.toString ()); modelAndView ModelAndView = new ModelAndView ("Helloworld", "Obj", obj); retornar modelandView;}}}6 visualizações
<%@ página de página = "java" import = "java.util.*" PageEncoding = "utf-8"%> <%string path = request.getContextPath (); string basepath = request.getscheme ()+": //"+request.getSername ()+":"+request.g); "-// w3c // dtd html 4.01 transitório // pt"> <html> <ading> <base href = "<%= bashepath%>" rel = "Nofollow externo"> <title> meu jsp 'PRMA "PRMA" PRMA "PRMA" PRMA "PRMA" PRMA "PRMA" </title "> <TeAction> My Jsp' PRMA" PRMA "PRMA" " 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" rel = "Nofollow externo"> -> </head> <body> helloworld! Este é um exemplo de estrutura mvc de primavera. Name = "Data" corresponderá automaticamente ao arquivado do objeto -> <input type = "text" name = "dados" size = "30"/> <br/> <input type = "submit" value = "submit"/> </form> <hr/> $ {obj.data} </body> </html>7 Estrutura do diretório
Resumir
O exposto acima é sobre o exemplo de entrada do Springmvc neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
Implementação de programação Java de Springmvc Simple Login Exemplo
A programação Springmvc usa a interface do controlador para implementar o código da instância do controlador
Explicação detalhada sobre se o interceptador Springmvc implementa a sessão de monitoramento expira
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio a este site.