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的学习还远不止这些,之后的内容会更加深远,大家一起努力!同时也欢迎过路大牛指点批评。

  • 相关阅读:
    python list间的并集、差集与交集
    kafka常用命令,启动/停止/查看主题列表/消费/生产
    python json
    lrzsz
    HashMap实现原理,源码分析
    Java中try catch finally语句中含有return语句的执行情况
    Maven
    我的面试题
    JSON数据格式
    springMVC2
  • 原文地址:https://www.cnblogs.com/Mr-Dawei/p/7423959.html
Copyright © 2011-2022 走看看