配置一个简易的springMVC应用

我们知道,spring中有它自己的MVC框架,该框架是以注解的方式来配置控制器(Controller),它可以映射请求url、请求参数、请求头以及Cookie值。其中控制是通过@Controller注解来标识,@RequestMapping可以映射请求url,@RequestParams映射请求参数、@RequestHeader映射头、@CookieValue映射Cookie,还有就是@PathVariable,这个注解以REST的风格,把相关参数附加请求url中。下面看一个springMVC应用的helloworld工程。
首先我们要在web.xml配置文件中,配置一个DispatcherServlet,这个Servlet相当于一个大的拦截器,可以处理应用的所有请求,是springMVC应用的入口。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springfile.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

在上述的代码片段中,下面片段用于配置springMVC配置文件的位置。该处的配置文件名称为springfile.xml,处在类路径下。

<init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springfile.xml</param-value>
</init-param>

当然如果不写该片段,我们的springMVC配置文件就要放在在WEB-INF目录下了,并且命名规则必须为[servletName]-servlet.xml例如在本例中就是springDispatcherServlet-servlet.xml

<load-on-startup>1</load-on-startup>表示DispatcherServlet在应用加载时加载,而不是发出第一次请求后加载。

接下来,我们再写一个控制器。

package com.ev.helloworld;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorld {
    @RequestMapping("/helloworld")
    public String hello(){
        System.out.println("hello world!");
        return "success";
    }
}

在这里我们把HelloWorld类标识为控制器,该类中的helloworld()方法可以处理请求url为helloworld的请求,因为在该方法上已经映射了"/helloworld"url(即@RequestMapping("/helloworld")),相应的请求发送过来后,该方法就会被调用,在控制台上输出一句话,同时返回一个"success"字符串,要注意的是,该返回值视图解析器用于解析成相应的物理视图的,具体的视图解析器是在springMVC配置文件中配置的,在本例中是springfile.xml文件。下面是该视图解析器的配置方法。

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
</bean>

在这里我们引用了InternalResourceViewResolver作为视图解析器,prefix属性值为/WEB-INF/views/suffix属性值为.jsp,整体的意思是,将hello()方法接收到的请求转发到success.jsp页面进行处理,这个页面在/WEB-INF/views/目录下。
还需要注意的是,在springMVC配置文件中还要引用一个元素<context:component-scan base-package="com.ev"></context:component-scan>,这样在com.ev包下所有具有@Controller标识的类都能够被识别。
最后我们可以通过一个a标签调用这个请求url就可以了。

猜你喜欢

转载自blog.csdn.net/yangkaige111/article/details/80630350
今日推荐