欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC及其入门小案例

程序员文章站 2022-05-19 13:18:18
...

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,是一个表现层框架,是基于组件方式去执行流程的。SpringMVC处理请求的机制是一个核心控制器(DispatcherServlet),它是SpringMVC的一个servlet,就相当于 mvc 模式中的 c,DispatcherServlet 是整个流程控制的中心,用户所有请求都会经过这个servlet,由它调用其它组件处理用户的请求。
SpringMVC 简单使用步骤:
1、在pom文件中导入spring-web和spring-webmvc两个jar包的坐标;
2、在web.xml文件中配置核心控制器,并在其中同时加载spring的xml配置文件,代码:

<!--配置前端控制器servlet-->
<servlet>
  <servlet-name>DispatcherServlet</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!--加载配置文件-->
  <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:springmvc.xml</param-value>
  </init-param>
  <!--该servlet对象在服务器启动时就会创建-->
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>DispatcherServlet</servlet-name>
  <!--只写/表示任何请求都会经过该servlet-->
  <url-pattern>/</url-pattern>
</servlet-mapping>

3、在上面加载的spring的xml配置文件中开启MVC注解框架的支持、开启注解扫描以及配置视图解析器对象,代码:

<!--开启MVC注解框架的支持-->
<mvc:annotation-driven enable-matrix-variables="true"/>

<!--开启注解扫描-->
<context:component-scan base-package="com.itmao"></context:component-scan>

<!--配置视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

4、创建一些案例用到的文件:
4.1、创建一个用户访问的入口jsp,里面只有一个超链接:

<a href="controller" >hello maven!</a>

href属性的值为控制器类中对这条请求做处理的方法的相对路径。
4.2、创建一个控制器类:

//控制器类
@Controller
public class HelloController {

    @RequestMapping(path = "/controller")
    public String sayHello(){
        System.out.println("Hello StringMVC");
        return "success";
    }
}

在类名上加上将其作为控制器类的注解@Controller,并为其中的方法加上映射注解@RequestMapping(path = “/controller”)。输出表示控制器对请求做的操作,返回值表示转发到success.jsp页面。
4.3、在/WEB-INF/pages/下面创建一个success.jsp页面,因为在配置视图解析器时已经将该目录下的所有jsp页面做了配置,所以在控制器中返回jsp的文件名就可达到转发的目的。
RequestMapping注解:
作用:用于建立请求 URL 和处理请求方法之间的对应关系。 可以写在类和方法上,控制器也可以分模块,例如account模块、user模块等,而每个方法中可能都有增删改查的处理,这时就可以在控制器类上加上RequestMapping注解,例如@RequestMapping(path = “account”)或@RequestMapping(path = “user”),这时调用处理请求的方法时就可以写

<a href="account/findAll" >hello maven!</a>

<a href="user/findAll" >hello maven!</a>

这样也可以使我们的 URL 更加精细。
属性:
value:和 path 属性的作用是一样的。
method:用于指定请求的方式。 可以有多个值,写法:method={RequestMethod.POST,RequestMethod.GET}。
params:用于指定请求参数,它支持简单的表达式。要求请求参数的key和value 必须和配置的一模一样。例如:params = {“accountName”},表示请求参数必须有 accountName,又如params = {“moeny!100”},表示请求参数中 money 不能是100。
headers:用于指定限制请求消息头的条件。 例如:headers = {“Accept”},表示请求消息头中必须有Accept请求头。

相关标签: spring mvc