zoukankan      html  css  js  c++  java
  • 1.SpringMvc--初识springmvc

             引自@精品唯居

             springMvc是什么

             springmvc是表现层的框架,是一个spring的表现层组件。是整个spring框架的一部分,但是也可以不使用springmvc。跟struts2框架功能类似。其中的mvc指的是,表现层的Model、View、controller。

             springMvc可以做什么

             springmvc可以接收用户的数据以及将数据显示给用户。

             springMvc的工作原理

             

             springMvc的入门程序

             下面,我们一起来创建一个基于springmvc框架的小demo。

             第一步:创建一个dynamic web project 项目,取名为springmvc。

             第二步:将我们的程序用到的jar包导入webContent目录下的WEB-INF目录下的lib文件夹中,具体如下图所示:

             

             第三步:创建springmvc.xml文件

             这是springmvc的核心配置文件,可以在该文件中配置一些springmvc的设置,如开启注解、注解驱动、试图解析器等。如果没有配置该文件,框架默认会去找/WEB-INF/springMvc0917-servlet.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:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://code.alibabatech.com/schema/dubbo 
            http://code.alibabatech.com/schema/dubbo/dubbo.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context-4.0.xsd">
    
        <!-- 开启注解扫描, 这样@Controller, @Service等注解才会生效 -->
        <context:component-scan base-package="cn.itcast.controller"></context:component-scan>
    </beans>

             第四步:配置前端控制器,在web.xml中添加DispatcherServlet的配置。将springmvc框架通过web.xml文件,配置到我们的系统中。并且将springMvc.xml中的配置注入到我们的框架中去。

             web.xml中的代码如下:

        
     1 <!-- 前端控制器 -->
     2 <servlet>
     3         <servlet-name>springmvc</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 </servlet>
    10 <servlet-mapping>
    11         <servlet-name>springmvc</servlet-name>
    12       <!-- 
    13       /*   在springMvc中不可以使用, 因为/* 所有的路径都会进入到DispatcherServlet中但是不放行
    14       /     所有的url路径都会进入DispatcherServlet, 放行.jsp的文件, 其他文件都不放行包括.js.css.png.jpg等
    15       *.action   url路径只有以.action结尾的才可以进入DispatcherServlet, 并放行
    16        -->
    17         <url-pattern>*.action</url-pattern>
    18 </servlet-mapping>
    View Code

             第五步:创建ItemsController
             ItemController是一个普通的java类,不需要实现任何接口,只需要在类上添加@Controller注解即可。@RequestMapping注解指定请求的url,其中“.action”可以加也可以不加。在itmesController中@RequestMapping("/list")指的是,我们在访问ModelAndView这个方法的时候,在url路径上需要写的地址是:主机名:端口号名/工程名称/list.action。modelAndView.addObject("itemList", itemList);则是将一个itemList对象存入request域中,存的名称则是前面第一参数中的itemList。modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");设置的是返回到哪个页面。

      
     1 package cn.itcast.controller;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import org.springframework.stereotype.Controller;
     7 import org.springframework.web.bind.annotation.RequestMapping;
     8 import org.springframework.web.servlet.ModelAndView;
     9 
    10 import cn.itcast.pojo.Items;
    11 
    12 @Controller
    13 public class ItemsController {
    14 
    15     //表示url到请求方法的映射, 其实就是通过浏览器中输入一个url, 这个url可以对应访问到一个controller中的方法
    16     @RequestMapping("/list")
    17     public ModelAndView list() throws Exception{
    18         List<Items> itemList = new ArrayList<>();
    19         
    20         //商品列表
    21         Items items_1 = new Items();
    22         items_1.setName("联想笔记本_3");
    23         items_1.setPrice(6000f);
    24         items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
    25         
    26         Items items_2 = new Items();
    27         items_2.setName("苹果手机");
    28         items_2.setPrice(5000f);
    29         items_2.setDetail("iphone6苹果手机!");
    30         
    31         itemList.add(items_1);
    32         itemList.add(items_2);
    33         
    34         //模型和视图
    35         //模型中可以放入返回给页面的数据,
    36         //视图中放了页面的路径
    37         ModelAndView modelAndView = new ModelAndView();
    38         //将返回给页面的数据放入其中
    39         modelAndView.addObject("itemList", itemList);
    40         //指定页面的逻辑路径
    41         //逻辑路径: 就是页面地址的字符串
    42         //物理路径: 物理路径就是页面的对象
    43         modelAndView.setViewName("/WEB-INF/jsp/itemList.jsp");
    44         return modelAndView;
    45     }
    46 }
    View Code
     
    天生我才必有用,千金散去还复来!
  • 相关阅读:
    2018.10.10python homework
    2018.10.10python学习第十六天part3
    2018.10.10python学习第十六天part2
    2018.10.10python学习第十六天part1
    2018.09.28python学习第十三天part3
    2018.09.28python学习第十三天part2
    2018.09.28python学习第十三天part1
    当不搞技术好几年后,又回来了,忽然很亲切
    福大软工 · BETA 版冲刺前准备(团队)
    事后诸葛亮
  • 原文地址:https://www.cnblogs.com/Jack-Lu/p/6402755.html
Copyright © 2011-2022 走看看