SpringMVC第一课 SpringMVC框架环境搭建以及使用

Posted 笔触狂放

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC第一课 SpringMVC框架环境搭建以及使用相关的知识,希望对你有一定的参考价值。

概念

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。

通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、VelocityTilesiText和POI。Spring MVC 框架并不知道使用的视图,所以不会强迫开发者只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。

它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。

MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。

之前的项目比较简单,多是用JSP 、Servlet + JDBC 直接搞定,在项目中尝试用 Struts(Struts MVC)+Spring+Hibernate, 严格按照分层概念驱动项目开发,因项目需求一直不断变化,功能不断扩充、增强,技术构建也几经改变到有个稳定的应用,体会了很多感受,这次先对 Spring MVC 层进行一些个人总结。

项目环境的搭建以及访问流程

创建项目,在WEB-INF文件夹下新建lib文件夹,将jar包导入,并关联至项目

在项目中创建resources文件夹,将springMVC.xml文件导入其中,并转换成资源文件夹。

接在在项目的web.xml文件中配置一下代码,注册DispatcherServlet类,当浏览器访问服务器的时候,使用DispatcherServlet类设置的虚拟地址拦截监听所有访问请求地址。当DispatcherServlet类被访问后,通过生命周期的执行,首先创建对象,再执行init方法,加载init-param静态参数,执行springMVC.xml文件。

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

    <!--注册一个servlet,该servlet用于拦截浏览器访问的所有地址-->
    <!--第一部分是serlvet的注册-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--设置只要浏览器访问该servlet,该servlet开始转向Springmvc主配置文件-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springMVC.xml</param-value>
        </init-param>
    </servlet>
    <!--第二部分是为该servlet设置虚拟地址-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!--表示当浏览器需要访问该服务器的时候,让当前serlvet拦截所有地址-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 接着我们在src文件夹中创建com.springmvc.controller包,新建MyController类继承至AbstractController抽象类,实现未实现的抽象方法

package com.springmvc.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 控制层,用于替代Servlet
 */
public class MyController extends AbstractController 
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception 
        //获得请求
        System.out.println("控制层获得浏览器的访问请求");
        //请求转发
        //request.setAttribute("name","张三");
        //request.getRequestDispatcher("index.jsp").forward(request,response);
        //重定向
        request.getSession().setAttribute("name","李四");
        response.sendRedirect("index.jsp");
        return null;
    

接着将该类的对象创建在springMVC.xml文件中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">

     <!--MyController controller=new MyController()-->
     <bean name="/aaa" class="com.springmvc.controller.MyController"></bean>

 
 </beans>

通过name属性设置浏览器的访问地址,进行匹配,如果匹配正确,则开始执行MyController类,在MyController类的方法中,通过使用request或者response对象进行请求转发或者重定向的方式跳转页面至jsp页面,并且可以携带参数数据跳转,这里面的知识点是Jsp和Servlet的内容,本文中不再重复的赘述。

整个项目的访问流程如图所示:

总结

SpringMVC框架是Spring框架的一部分,因此读者发现该框架的用基本都是Spring框架的jar包,但该框架中封装了jsp和servlet的技术,该框架基本的作用是在MVC三层架构中用于操作在controller控制层中的 ,运行项目的同时需要配置tomcat服务器才能启动服务器,使用浏览器地址进行访问。

以上是关于SpringMVC第一课 SpringMVC框架环境搭建以及使用的主要内容,如果未能解决你的问题,请参考以下文章

推荐学java——SpringMVC第一课

推荐学java——SpringMVC第一课

推荐学java——SpringMVC第一课

推荐学java——SpringMVC第一课

推荐学java——SpringMVC第一课

springMVC第一课--配置文件