36.springMVC之入门

  1.springMVC简介

  Spring MVC是基于MVC模式的一个Web框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),而且使用简单,与spring无缝集成。
目前很多公司都采用Spring MVC,招聘要求需要熟悉Spring MVC。

  2.简单入门

  基于MVC模式的一个Web框架,JavaWeb中所有Mvc框架都有一个特点,都具有一个核心控制器;
所有请求都经过核心控制器,然后由这个核心控制器完成公共功能(参数接收,类型转换,文件上传,文件下载);
Struts2   StrutsPrepareAndExecuteFilter (Filter)(之后会讲)
SpringMvc DispatcherServlet             (Servlet)

  具体完成步骤:

1.加入springmvc相关jar包
      spring核心包;
            com.springsource.org.apache.commons.logging-1.1.1.jar
            spring-beans-3.2.0.RELEASE.jar
            spring-context-3.2.0.RELEASE.jar
            spring-core-3.2.0.RELEASE.jar
            spring-expression-3.2.0.RELEASE.jar
      springmvc核心包;
            spring-web-3.2.0.RELEASE.jar      spring 对web项目的支持。
            spring-webmvc-3.2.0.RELEASE.jar   spring mvc核心包。

2.编写springmvc中控制器(controller,handler请求处理器)
      控制器实现方式:  
            实现Controller接口        xml配置
            普通POJO;                 注解配置

  1. package com.day03.ssm.springMVC.controller;
  2.  
  3. import org.springframework.web.servlet.ModelAndView;
  4. import org.springframework.web.servlet.mvc.Controller;
  5.  
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8.  
  9. /**
  10. * 课程笔记:http://www.cnblogs.com/newAndHui/category/1153640.html
  11. * 疑问咨询wx:851298348
  12. */
  13. public class HelloController implements Controller {
  14.  
  15. @Override
  16. public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
  17.  
  18. ModelAndView modelAndView = new ModelAndView();
  19. modelAndView.setViewName("/WEB-INF/views/Hi.jsp");
  20. modelAndView.addObject("msg","wuji");
  21. return modelAndView;
  22. }
  23. }

HelloController

3.加入springmvc的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context.xsd">
  9.  
  10. <bean id="/hi.do" class="com.day03.ssm.springMVC.controller.HelloController">
  11.  
  12. </bean>
  13. </beans>

4.web.xml配置springmvc的核心控制器

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. version="3.1">
  6. <servlet>
  7. <servlet-name>dispatcherServlet</servlet-name>
  8. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  9. <init-param>
  10. <param-name>contextConfigLocation</param-name>
  11. <param-value>classpath:spring-config.xml</param-value>
  12. </init-param>
  13. </servlet>
  14. <servlet-mapping>
  15. <servlet-name>dispatcherServlet</servlet-name>
  16. <url-pattern>*.do</url-pattern>
  17. </servlet-mapping>
  18. </web-app>

web.xml

5.启动web项目并访问

37.springMVC注解使用

1.在那需要被spring容器管理的bean上添加标签
//spring对不同bean,定义了不同注解;
//注解名不同,但是功能都一样,都让spring容器管理这些bean;
//如果使用了springmvc那么@Controller对应bean就是一个控制器;
//@Repository("beanName")  持久层 Dao;
//@Service("beanName")     业务层 Service;
//@Controller("beanName")  表现层 Controller
//@Component("beanName")   其他组件 otherClass
2.<!-- 配置需要管理bean对应的包(本包,子包下面都扫描),spring会扫描那些有Repository,Service,Controller,Component标签,进行管理 -->
        <context:component-scan base-package="com.spring.day01.controller" />
3.使用注解方式配置控制器
  @Controller(类身上)  //spring需要管理这个bean,并且这个bean是一个控制器
  @RequestMapping("/path") //如果在方法,执行控制器方法的请求路径;
  @RequestMapping("/path") //如果写在类上面,那么就代表访问该控制器方法时,需要加的前缀;

springmvc中常用注解:
   @Controller       位置:类   解释:控制器
   @RequestMapping   位置:类   解释:访问该控制器中的方法,需要添加前缀, 以"/"打头;
   @RequestMapping   位置:方法 解释:访问该控制器中的方法的地址, 以"/"打头;
    *  value : 请求路径 ;
        *  produces : 返回数据内容类型与@ResponseBody配合使用;
        *  method : 该方法值只能某些接受请求方式 ,不写就是支持所有(GET,POST);
        *  params : 请求该方法必须要传入参数;
   @ResponseBody     位置:方法 解释:响应内容为方法的返回值;
                                      如果返回只为void,就是没有响应内容;
                                      如果返回是一个对象,并且加入jackson.jar,那么会自动把对象转换为json数据,进行响应

注解使用步骤:

  1.必须在配置文件中开启注解

  

  2.在控制层贴标签

  

  完成!

05_ssm基础(六)之SpringMVC的更多相关文章

  1. Bootstrap<基础六> 表单

    Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式的表单. 表单布局 Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 垂直或基本表单 ...

  2. C#_02.15_基础六_.NET类

    C#_02.15_基础六_.NET类 一.类继承是一个类在另一个类的基础上进行的扩展. 继承的子类拥有父类的全部成员.索引子类拥有本身的全部成员以及父类的全部成员. 可以对基类成员进行隐藏,如果必须的 ...

  3. {Django基础六之ORM中的锁和事务}一 锁 二 事务

    Django基础六之ORM中的锁和事务 本节目录 一 锁 二 事务 一 锁 行级锁 select_for_update(nowait=False, skip_locked=False) #注意必须用在 ...

  4. day 71 Django基础六之ORM中的锁和事务

    Django基础六之ORM中的锁和事务   本节目录 一 锁 二 事务 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 锁 行级锁 select_for_update(no ...

  5. day 58 Django基础六之ORM中的锁和事务

      Django基础六之ORM中的锁和事务   本节目录 一 锁 二 事务 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 锁 行级锁 select_for_update( ...

  6. Django基础六之cookie和session

    Django基础六之cookie和session 目录 Django基础六之cookie和session 1. cookie和session介绍 1.1 cookie 简介 1.2 cookie的缺陷 ...

  7. Springmvc入门基础(六) ---拦截器应用demo

    1.拦截器定义 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 2.拦截器demo demo需求: 拦截用户请求,判断用 ...

  8. SSM框架开发web项目系列(六) SpringMVC入门

    前言 我们最初的javaSE部分学习后,基本算是入门了,也熟悉了Java的语法和一些常用API,然后再深入到数据库操作.WEB程序开发,渐渐会接触到JDBC.Servlet/Jsp之类的知识,期间可能 ...

  9. <Android基础> (六) 数据存储 Part 1 文件存储方式

    第六章 数据存储 6.1 持久化技术 持久化技术指将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失. 主要有三种方式用于简单地实现数据持久化功能:文件存储.S ...

随机推荐

  1. 认识下java注解的实现原理

    1,什么是注解 注解也叫元数据,例如常见的@Override和@Deprecated,注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包.类.接口.字段.方法参数.局部变量等进行注 ...

  2. 【Git使用】SourceTree+Git简单使用(Windows)(转)

    导读: 本人过去Git的可视化工具用的是TortoiseGit,虽然Android Studio也能进行版本管理,但是用下来,感觉SoureTree这款工具是最舒服的(免费的),下面就给大家介绍下我的 ...

  3. Java SPI机制简介

    SPI 简介 SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制. 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现 ...

  4. 【HQL】常用函数

    CONCAT_WS(separator, str1, str2,...) 多列转1列,以分割符分割 使用场景: 1.多列在一列显示: 2.多列转多行作为辅助,结合split和explode使用 SEL ...

  5. Linux:常用命令【转载】

    转载于:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架 ...

  6. es 高级

    事务处理 _settings _refresh _flush 慢查询 存储模块 mmap local simplefs 缓存 IO 调节 热点线程 suggesters _suggest 端点 插件 ...

  7. 页面适应电脑和手机屏幕initial-scale 1:0 user-scalable=yes

    2017年09月25日 11:30:27 Goddess_liangyanli 阅读数:7324 标签: 手机   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  8. javascrpt基础入门

    JavaScript 是一门脚本语言,同HTML语言一样,需要浏览器或者JavaScript解释器,解释执行. 1. 第一个JavaScript程序: <html> <body> ...

  9. 机器学习进阶-图像金字塔与轮廓检测-模板匹配(单目标匹配和多目标匹配)1.cv2.matchTemplate(进行模板匹配) 2.cv2.minMaxLoc(找出矩阵最大值和最小值的位置(x,y)) 3.cv2.rectangle(在图像上画矩形)

    1. cv2.matchTemplate(src, template, method)  # 用于进行模板匹配 参数说明: src目标图像, template模板,method使用什么指标做模板的匹配 ...

  10. VB-串口通信详解

    转载:https://blog.csdn.net/dongyue786/article/details/8177047 MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能.MSC ...