zoukankan      html  css  js  c++  java
  • SpringMVC简单入门

    SpringMVC简单入门

    与大家分享一下最近对SpringMVC的学习,希望本文章能对大家有所帮助。

    首先什么是SpringMVC?

    Spring 为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC 框架之一,同时在本人看来在某些地方实现对servlet很好的封装,当然,SpringMC中最重要的还是其MVC部分以及Spring方面。

    SpringMVC框架也是一个较为方便实用较为简单的框架,学习框架从SpringMVC开始是不二之选。

    废话不多说,还是上代码。

     

    以下是实现的基本步骤:

    1、加入jar包

    2、配置web.xml

    3、配置SpringMVC配置文件

    4、编写处理请求的处理器

    5、编写相应的视图

     下面是详细步骤:

    1、首先是SpringMVC构建的架包(是用别人的东西,第一步就是得导jar包)

     以4.0版本的方式给大家演示。

    涉及jar包:

           –commons-logging-1.1.3.jar

           –spring-aop-4.0.0.RELEASE.jar

           –spring-beans-4.0.0.RELEASE.jar

           –spring-context-4.0.0.RELEASE.jar

           –spring-core-4.0.0.RELEASE.jar

           –spring-expression-4.0.0.RELEASE.jar

           –spring-web-4.0.0.RELEASE.jar

           –spring-webmvc-4.0.0.RELEASE.jar

    2、配置web.xml

     1 <!-- 前端控制器 -->
     2        <servlet>
     3               <servlet-name>springDispatcherServlet</servlet-name>
     4               <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     5               <init-param>
     6                      <param-name>contextConfigLocation</param-name>
     7                      <param-value>classpath:springmvc.xml</param-value>
     8               </init-param>
     9 
    10               <load-on-startup>1</load-on-startup>
    11        </servlet>
    12 
    13        <servlet-mapping>
    14               <servlet-name>springDispatcherServlet</servlet-name>
    15               <url-pattern>/</url-pattern>
    16        </servlet-mapping>

           通过“Alt+/”的方式可以直接找到 可以直接生成servlet的相关内容 。

    其中DispatcherServlet是处理器Handler,基本意思就是你的请求来了就先由他接收然后按照你的springmvc.xml配置决定如何去处理。

    下面的<url-pattern>/</url-pattern>表示拦截所有请求,放过jsp文件交由Handler处理。

     

    1 <init-param>
    2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:springmvc.xml</param-value> 4 </init-param>

    这里的配置表示的是我们给springmvc..xml指定位置已经名字,在开发中为了规范,基本都如此配置。其中的classpath指的是src的位置,表明之后编译器会在src下寻找对springmvc..xml的配置。

    若在此没有配置那么,系统将自动在WEB-INF按照servlet-name的属性值+"-servlet.xml"的信息寻找。

     1 <!-- 设置过滤器 处理POST请求乱码问题 -->
     2   <filter>
     3       <filter-name>CharacterEncodingFilter</filter-name>
     4       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
     5 
     6       <!-- 设置编码方式  -->
     7       <init-param>
     8              <param-name>encoding</param-name>
     9              <param-value>UTF-8</param-value>
    10       </init-param>
    11   </filter>
    12 
    13   <filter-mapping>
    14       <filter-name>CharacterEncodingFilter</filter-name>
    15       <url-pattern>/*</url-pattern>
    16   </filter-mapping>

    这里是使用过滤器进行对post请求乱码的处理,这个在使用中基本大家都会用到,配置是尽量加上。

    3、配置Springmvc.xml文件

     1 <!-- 加载mvc驱动   这个驱动在后续使用的很多位置都将使用到,类似自定义格式转换器,等等      -->
     2        <mvc:annotation-driven ></mvc:annotation-driven>
     3 
    4 <!-- 加载controller包 将包下使用@Controller注解的类加载到IOC容器中 --> 5 <context:component-scan base-package="xx.xxx.controller"></context:component-scan> 6 7 <!-- 配置视图解析器 InternalResourceViewResolver解析器是解析中顺序最后的 8 其中解析顺序按照order来判断 其order为 Integer.MAX_VALUE
    9     在使用其他解析器的情况下,可以通过配置order的方式空值解析顺序--> 10 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 11 <property name="prefix" value="/WEB-INF/Jsp/"></property> 12 <property name="suffix" value=".jsp"></property> 13 </bean>

    在其中属性的配置中,配置了视图解析结构拼接的前后缀,处理器Handler处理后的Model AndView将会处理配置成视图地址,也就是说后面的视图需要写在配置的地址中,即:/WEB-INF/Jsp/。

    4、编写handler 处理器在开发中也常被叫做controller,其中SpringMVC.xml的配置中扫描的包就是存Handler的包。

    下面是一个简单的Controller的类

     

     1 @Controller
     2 
     3 public class AContrller {
     4 
     5 @RequestMapping(value="/testSpringMVC",method=RequestMethod.GET)
     6 
     7        public ModelAndView testSpringMVC (){
     8 
     9               ModelAndView modelAndView = new ModelAndView();
    10 
    11               return modelAndView;
    12        }
    13 
    14 }

    首先@Controller注解,这个注解的标识,表示在本包若在springmvc扫描加载的目录下,那么编译器就将创建一个这个类的对象,放在IOC容器中。

    @RequestMapping注解是区别请求的,其中的参数有value表示请求路径,若@RequestMapping(“/地址”)只有一个响应地址参数,那么就默认为value的值,但是如果想写其他参数属性就需要加value=“”

    method 表示请求类型,有GET POST PUT DELETE(后两个用的不多)

     

    下面的函数基本以ModelAndView为返回值,同时也可以使用String作为返回值。

    其中使用ModelAndView 需要使用setViewName()来设置响应的视图地址。可使用add Object等方法将数据参数放到ModelAndView 中,之后在视图解析的时候就将,放入的数据(Model数据)添加到视图中,解析成视图。需要提的一点是,ModelAndView底层是执行的转发,使用他无法实现重定向

    使用String的方式在其底层也是转化成ModelAndView然后进行解析的,可是其可以实现重定性。使用 “redirect:/跳转地址” 实现重定向,当然默认情况下,也就是使用“/跳转地址”的情况就是使用“forward:/跳转地址的方式”。

    5、视图编写,注意的事项就是需要将视图写入视图解析器所指定拼接的地址。

    对于SpringMVC的学习还远不止这些,之后的内容会更加深远,大家一起努力!同时也欢迎过路大牛指点批评。

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/Mr-Dawei/p/7423959.html
Copyright © 2011-2022 走看看