• Spring MVC入门讲解


       一、Springmvc是什么?

     Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,

    web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

              

        二、Spring MVC 架构图:

            

    1DispacherServlet前端控制器

    负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。

    2HandlerMapping处理器映射器

    负责查找Handler(常用action,通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置

    3HandlerAdapter处理器适配器

    Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行

    负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndViewModelAndViewModelview封装起来(模型数据和视图)

    4ViewResolver视图解析器

    负责进行视图解析,返回View,框架执行很多类型的ViewjstlViewpdfView。。。)

    三、案列

    我们来撰写第一个入门小案列:

    我们首先要准备jar包,然而jar包的地址我已经给你们准备好了:http://pan.baidu.com/s/1eRAaG2A

    接下来我们把项目搭建起来:

    然后我们编写web.xml文件,在这个文件的<web-app>节点下添加如下代码:

      <servlet>
          <servlet-name>spring</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
      </servlet>
      
      <servlet-mapping>
          <servlet-name>spring</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>

    这几行代码中,servlet节点的servlet-name是你springMVC配置文件的名字,而配置文件这样命名:servletName-servlet.xml

    <url-pattern>/</url-pattern>代表分发所有请求!
    然后我们在去配置SpringMVC的配置文件具体代码如下:

    <?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">
        <context:component-scan base-package="org.springframework.samples.petclinic.web"/>
    	<!-- 这行代码代表的是用哪个URL地址,访问哪个类! name就是URL class就是你输入这个URL地址后要访问的类  -->
    	<bean name="/first" class="cn.happy.controller.Login" /> -->
    	<!-- 视图解析器:负责进行视图解析,返回View -->
    	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<!--
    		 前缀(prefix)和后缀(suffix),和我们返回的View组合,进而找到一个屋里视图! 
    		组合后的形式:http://localhost:8080/项目名/WEB-INF/jsp/View名.jsp
    		-->
    		<property name="prefix" value="/WEB-INF/jsp/"  />
    		<property name="suffix" value=".jsp"  />
    	</bean>
    </beans>
    

     我们写完SpringMVC的配置文件之后,就该去编写类了:

    package cn.happy.controller;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;
    
    public class Login extends AbstractController {
    
    	@Override
    	protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
    			HttpServletResponse arg1) throws Exception {
    		//我们来打印一句话,然后返回一个视图名
    		System.out.println("Hello,Spring MVC!");
    		return new ModelAndView("success");
    	}
    }
    

    然后我们返回去编写WEB-INF->jsp->success.jsp页面

            

    成功页面:

     上面是我们的第一种方式,第二种方式是是用注解的方式来实现,我们接下来改一下我们的配置文件,在文件里
    添加两行代码:
    <context:component-scan base-package="cn.happy.controller" />
    <mvc:annotation-driven/>
    
    第一行代码的意思是类在哪个包下,第二行代码是扫描我这个包下的所有类,接下来我们编写我们Hellocontroller类:
    package cn.happy.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    
    
    //这个注解是让我们的类可以实现调度请求
    @Controller
    public class HelloController {
    	
    	//这个注解是我们访问时候的URL地址
    	@RequestMapping(value="/hello")
    	public String hello(String name){
    		//方法中的name参数是可以被SpringMVC自动装配的,
    		System.out.println("通过非注解模式");
    		return "success";
    	}
    }
    

     



    到这里我们的SpringMVC入门小案例已经写完了,各位大大看完记得点赞哦!
  • 相关阅读:
    【转】umount 的时候报错:device is busy
    【转】linux shell 的tr命令
    给bash的提示符设置不同的颜色
    备份系统时候出现错误
    [转]Xen 的漫漫人生路
    linux/screen的指令
    扩大centos镜像的硬盘空间
    ASP.NET Web API学习资源
    svn make a tag
    query多选下拉框插件 jquerymultiselect
  • 原文地址:https://www.cnblogs.com/xjdoconline/p/5333212.html
Copyright © 2020-2023  润新知