首页 > 编程语言 > 详细

SpringMVC笔记

时间:2020-02-25 20:46:29      阅读:78      评论:0      收藏:0      [点我收藏+]

SpringMVC

.SpringMVC简介

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

.MVC架构模式

Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

MVC模式最早由Trygve Reenskaug在1974年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能

  1. 控制器Controller- 负责转发请求,对请求进行处理。
  2. 视图View - 界面设计人员进行图形界面设计。
  3. 模型Model - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。

.SpringMVC优点

 技术分享图片

.SpringMVC执行流程

 技术分享图片

技术分享图片

技术分享图片

 

 

 

.SpringMVC基础案例(基于XML

5.1添加SpringMVC依赖支持

省略Spring框架支持jar

 

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.1.5.RELEASE</version>
</dependency>


<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.1.5.RELEASE</version>
</dependency>

 

<dependency>
  <groupId>javaee</groupId>
  <artifactId>javaee-api</artifactId>
  <version>5</version>
</dependency>

5.2新建一个控制器

public class FirstController implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView mv=new ModelAndView();
        //携带数据
        mv.addObject("user","123");
        //指定跳转的视图
        mv.setViewName("/jsp/index.jsp");
        return mv;
    }
}

 

5.3将控制器注入到Spring容器当中

<!--注入控制器 id为访问地址-->
<bean id="/firstController" class="com.springmvc.controller.FirstController"/>

5.4配置web.xml

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--配置中央调度器-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
    <!--加载时机-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!--Servlet映射-->
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

六. SpringMVC基础案例(注解版)

6.1新建一个控制器

@Controller
@RequestMapping("/second")
public class SecondController {
    @RequestMapping("/firstRequest")
    public ModelAndView firstRequest(){
        ModelAndView mv=new ModelAndView();
        //携带数据
        mv.addObject("user","123");
        //指定跳转的视图
        mv.setViewName("/jsp/index.jsp");
        return mv;
    }

    @RequestMapping("/secondRequest")
    public ModelAndView secondRequest(){
        ModelAndView mv=new ModelAndView();
        //携带数据
        mv.addObject("user","456");
        //指定跳转的视图
        mv.setViewName("/jsp/index.jsp");
        return mv;
    }
}

6.2开启注解扫描以及MVC注解支持(applicationContext.xml

<!--包扫描器-->
<context:component-scan base-package="com.springmvc"/>
<!--开启SpringMVC注解支持-->
<mvc:annotation-driven/>

 

七. SpringMVC登录案例实现:

7.1 login.jsp页面构建

<form method="post" action="/user/login">
    用户名:<input type="text" name="username"/>
    密码:<input type="text" name="password"/>
    <input type="submit" value="提交"/>
</form>

7.2创建控制器和控制方法处理用户请求

@Controller
@RequestMapping("/user")
public class UserController {
    /**
     * 登录
     * @param username
     * @param password
     * @param session
     * @return
     */
    @RequestMapping("/login")
    public ModelAndView login(String username, String password, HttpSession session){
        ModelAndView mv=new ModelAndView();
        if(username.equals("admin")&&password.equals("admin")){
            session.setAttribute("user",username);
            mv.setViewName("/jsp/welcome.jsp");
        }else{
            mv.setViewName("/jsp/login.jsp");
        }
        return mv;
    }
    /**
     * 退出
     * @param session
     * @return
     */
    @RequestMapping("/logOut")
    public ModelAndView logout(HttpSession session){
        ModelAndView mv=new ModelAndView();
        session.removeAttribute("user");
        mv.setViewName("/jsp/login.jsp");
        return mv;
    }
}

7.3开启注解扫描以及MVC注解支持(applicationContext.xml

<!--包扫描器-->
<context:component-scan base-package="com.springmvc"/>
<!--开启SpringMVC注解支持-->
<mvc:annotation-driven/>

7.4配置web.xml

 

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--配置中央调度器-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化配置文件-->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </init-param>
    <!--加载时机-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!--Servlet映射-->
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

SpringMVC笔记

原文:https://www.cnblogs.com/zhaoyun01/p/12363066.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!