Heim > Java > javaLernprogramm > SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung

SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung

黄舟
Freigeben: 2017-03-03 10:36:32
Original
1471 Leute haben es durchsucht

Im vorherigen Artikel wurden kurz einige Kenntnisse über Spring MVC vorgestellt. Als Nächstes lernen wir, wie man Spring MVC auf bestimmte Projekte anwendet.

Beginnen wir zunächst mit einem einfachen Hello World-Projekt:

Die Entwicklungsumgebung meiner Maschine ist:

UbuntuSpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-ImplementierungSpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung.04 ( Anders Betriebssysteme haben keinen Einfluss auf diese Projektreihe);

Entwicklungstool: Eclipse für JavaEE;

Laufumgebung: TomCat V7.0;

JDK: JDK SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.7.0_45;

Projektentwicklung für: Dynamisches Webprojekt;

SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung. Das JAR-Paket, von dem das Projekt abhängt:

SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung. Das JAR-Paket, von dem das Spring-Framework abhängt:

Protokollierung: commons-logging-SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.3.jar;

JSTL-Unterstützung: jstl.jar und standard.jar in jakarta-taglibs-standard-SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung; >

SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung. Spring-Jar-Paket:

spring-framework-3.SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung.5.jar-Paket in RELEASE/libs (ich habe der Einfachheit halber alles hier kopiert);

Kopieren Sie alle oben genannten JAR-Pakete in das Verzeichnis WebContent/WEB-INF/lib des Projekts.

SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung. Fügen Sie die Datei web.xml in /WEB-INF hinzu:

Konfigurieren Sie zunächst DispatcherServlet. Gemäß dem Spring MVC-Antwortflussdiagramm in Reihe (SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung) ist ersichtlich, dass DispatcherServlet hauptsächlich Anforderungen abfängt, dann den entsprechenden Controller und die entsprechende Aktion aufruft, die angegebene Ansicht analysiert und rendert und die Antwort zurückgibt.
<?xml  version="SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.0" encoding="UTF-8"?><web-app klassische helloworld-implementierung00springmvc-lernreihe helloworld-implementierung>
  <display-name>SpringMVCLesson</display-name> 
        
    <servlet>
        <servlet-name>SpringMVCLesson</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springservlet-config.xml</param-value>
        </init-param>
        <load-on-startup>SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung</load-on-startup><!-- load-on-startup必须放在最后 -->
    </servlet>
    <!-- Spring MVC配置文件结束 -->
    
    <servlet-mapping>
        <servlet-name>SpringMVCLesson</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    </web-app>
Nach dem Login kopieren

Wobei classpath:springservlet-config.xml die spezifische Konfigurationsdatei als springservlet-config.xml angibt.

load-on-startup>SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierungload-on-startup>是启动顺序,让这个Servlet随Servletp容器一起启动,必须放在servlet> 配置的最后。

servlet-mapping中的servlet-name>指定配置的是哪个servleturl-pattern>则指定拦截哪些请求到该servlet,这里配置的是拦截全部请求

 

三、springservlet-config.xml文件配置:

在项目中新建一个resources的Source Folder文件夹,并添加springservlet-config.xml文件。

<?xml  version="SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung.0" encoding="UTF-8"?><beans klassische helloworld-implementierung00springmvc-lernreihe helloworld-implementierung>
    
    <!-- 默认的注解映射的支持 -->  
    <annotation-driven></annotation-driven>
      
    <!-- 如果当前请求为“/”时,则转发到“/helloworld/index” -->
    <view-controller></view-controller> 
    <!-- 静态资源映射 -->
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <resources></resources>
    <!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 -->
    <default-servlet-handler></default-servlet-handler>

    <!-- 开启controller注解支持 -->
    <!-- use-default-filters="false" 只扫描指定的注解 -->
    <component-scan>
        <include-filter></include-filter>
    </component-scan>
      
    <!-- 视图解析器 -->
    <bean>
       <property></property>
       <property></property>        
       <property></property>
       <property></property>
    </bean>
    </beans>
Nach dem Login kopieren


mvc:annotation-driven/> 开启注解映射支持,它是为了简化配置的缩写形式,它相当于以下SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung个配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
Nach dem Login kopieren

由于我们在web.xml文件里面配置的是拦截所有的请求到该servlet,所以我们在这里要对静态资源文件映射作一下配置,否则请求这些资源文件会返回404

<!-- 静态资源映射 --><mvc:resources mapping="/js/**" location="/WEB-INF/js/" /><mvc:resources mapping="/css/**" location="/WEB-INF/css/" /><mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /><mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /><mvc:resources mapping="images/**" location="/WEB-INF/images/" /><!-- 当上面要访问的静态资源不包括在上面的配置中时,则根据此配置来访问 --><mvc:default-servlet-handler/>
Nach dem Login kopieren


开启Controller注解支持,并配置只扫描指定包下面的Controller:

<context:component-scan base-package="com.demo.web.controllers" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
Nach dem Login kopieren

配置视图解析器,并指定视图所在的文件夹:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
   <property name="contentType" value="text/html"/>        
   <property name="prefix" value="/WEB-INF/views/"/>
   <property name="suffix" value=".jsp"/></bean>
Nach dem Login kopieren

添加HelloWorldController,在项目中新建一个web的Source Folder文件夹,并在文件夹下面添加com.demo.web.controllers包,在包中添加一个HelloWorldController类,类中内容如下:


package com.demo.web.controllers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(value = "/helloworld")public class HelloWorldController {

    @RequestMapping(value="/index", method = {RequestMethod.GET})    public ModelAndView index(){
        
        ModelAndView modelAndView = new ModelAndView();  
        modelAndView.addObject("message", "Hello World!");  
        modelAndView.setViewName("index");  
        return modelAndView;
    }
    
}
Nach dem Login kopieren


其中@Controller 注解把该class指定为controller,controller 上的@RequestMapping 注解的 value值指定该controller所映射的请求。

方法上的@RequestMapping 注解指定该方法为一个action,value 值指定该action所映射的请求,method 中的RequestMethod.GET指定该action只接受get请求。

ModelAndView 中的setViewName指定了该action所对应的视图名称,解析视图时会在springservlet-config.xml文件指定的视图文件夹中寻找对应的视图。

添加视图,在项目/WEB-INF文件夹下新建一个views文件夹,并在views中添加index.jsp视图,视图内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>
    ${message}</body></html>
Nach dem Login kopieren


运行项目,由于我们之前配置了:mvc:view-controller path="/" view-name="forward:/helloworld/index"/> 所以直接可以看到结果:

SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierung

把请求的URL地址改为配置的地址:http://localhost:8080/SpringMVCLesson/helloworld/index,可以看到结果相同:

SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung

代码下载:http://pan.baidu.com/s/SpringMVC-Lernreihe (SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) Klassische HelloWorld-Implementierungo6LRw7o

 以上就是SpringMVC学习系列(SpringMVC-Lernreihe (2) Klassische HelloWorld-Implementierung) 之 经典的HelloWorld实现的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage