Spring MVC入门——快速上手之环境搭建及简单使用

Spring MVC入门——快速上手之环境搭建及简单使用

Spring MVC概述

1.什么是MVC?

MVC是一种使用视图、模型、控制器设计创建Web应用程序的模式:
1.Model表示应用程序核心(比如数据库记录列表)
2.View显示数据(数据库记录)
3.Controller处理输入(写入数据库记录)。

MVC 模式:

  • M 代表 模型(Model)
    模型是什么呢? 模型就是数据,就是 dao,bean;
  • V 代表 视图(View)
    视图是什么呢? 就是网页, JSP,用来展示模型中的数据
  • C 代表 控制器(controller)
    控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。

2.Spring MVC简介

(1)和众多其他Web框架一样,它基于MVC设计理念,此外,它采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。

(2)Spring MVC在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现

(3)Spring MVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总导演、总策划,它负责截获请求并将其分派给相应的处理器处理。

搭建环境(快速上手)

先创建一个maven工程(我使用的是IntelliJ IDEA)
Spring MVC入门——快速上手之环境搭建及简单使用_第1张图片
接下来的创建步骤就不说了,很简单。
创建工程之后,可通过下面几个步骤搭建简单使用Spring MVC的环境:

1.引进依赖

在pom.xml中添加依赖

<dependency>
      <groupId>org.springframeworkgroupId>
      <artifactId>spring-webmvcartifactId>
      <version>${spring.version}version>
    dependency>
    <dependency>
      <groupId>javax.servletgroupId>
      <artifactId>javax.servlet-apiartifactId>
      <version>3.1.0version>
dependency>

2.注册DispatcherServlet

在web.xml中添加:

<servlet>
    <servlet-name>firstTestservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    
    
    <init-param>
      <param-name>contextConfigLocationparam-name>
      <param-value>/WEB-INF/first-servlet.xmlparam-value>
    init-param>
    
    <load-on-startup>1load-on-startup>
  servlet>
  <servlet-mapping>
    <servlet-name>firstTestservlet-name>
    <url-pattern>/url-pattern>
  servlet-mapping>

关于DispatcherServlet拦截路径:
1、拦截*.do,例如:/user/add.do,弊端:所有的url都要以.do结尾。不会影响访问静态文件。 2、拦截/app/,例如:/app/user/add,弊端:请求的url都要包含/app,@RequestMapping("/user/add")中不须要包含/app。
3、拦截/,例如:/user/add,弊端:对jpg,js,css静态文件的访问也被拦截不能正常显示。后面有解决办法。
4、拦截/
,可以走到Action中,但转发到jsp时再次被拦截,不能访问到jsp。

3.配置SpringMVC

在webapp/WEB-INF下创建first-servlet.xml文件编写代码


<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    
    <context:component-scan base-package="com.training.spring" />

    
    <mvc:view-resolvers>
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/" />
            <property name="suffix" value=".jsp" />
        bean>
    mvc:view-resolvers>
beans>

简单快速上手案例

上面的环境搭建好,我们就可以测试一个简单的入门案例。

1.先编写index.jsp

<%@page contentType="text/html;charset=UTF-8" language="java" %>


SpringMVC测试一
SpringMVC测试二
SpringMVC测试三

还有一个hello.jsp ,此jsp主要是为SpringMVC测试处理请求


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Hello



    <%
        String key = (String)request.getAttribute("key");
    %>

   这是测试,我成功了!

    
参数值: <%=key %>

2.在java目录下建包建一个HelloAction.java,此类通过@Controller标注会被SpringIOC容器扫描和管理。

/**
 * 通过@Controller标注的类会被SpringIOC容器扫描和管理
 */
@Controller
public class HelloAction {

    /**
     * 定义一个Handler, 可以处理http://localhost:8080/springmvc/test/hello这个请求
     * @return
     */
   @RequestMapping("/test/hello")
    public String firstHello(){
        System.out.println("进入HelloAction.firstHello()方法");
        return "hello";
    }

    /**
     * 处理请求,并携带数据跳转到页面
     * @param mv
     * @return
     */
    @RequestMapping("test2/hello")
    public ModelAndView test2(ModelAndView mv) {
        System.out.println("进入HelloAction.test2()方法");
        mv.setViewName("hello");
        mv.addObject("key", "apple");
        return mv;
    }
    /**
     * 通过@ResponseBody注解标注的方法, 不会被解析成视图, 而是直接将返回的内容本身输出给调用方(浏览器、其他服务、抓包工具)
     * @return
     */
    @ResponseBody
    @RequestMapping("/liu")
    public String test3() {
        return "liu";
    }
}

3.启动Tomcat,进行测试。

你可能感兴趣的:(java,Spring,MVC)