zoukankan      html  css  js  c++  java
  • SpringMVC(1):SpringMVC入门

    一,MVC 概述

    MVC模型,视图,控制器,是一种软件设计规范,本质是将业务逻辑,数据,显示,分离的方式来编写代码;前后端分离

    Model:数据模型,提供要展示的数据,一般我们都会把这两个分离开来。数据Dao,服务层Service
    View:负责进行数据的渲染和展示,客户端想要看到的东西
    Controller接收用户请求,交给Model处理,从Model更新后的数据或者结果,返回给前端

    1,Model1

    在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理,我们称之为 Model1

    Model1的弊端

    • JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
    • 要求开发者不仅要掌握 Java ,还要有高超的前端水平
    • 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试
    • 代码难以复用

    2,Model2

    因为Model1的种种弊端,所以很快这种方式就被 Servlet + JSP + Java Bean 所替代了,首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式

    controller(控制器)

    • 取得表单的数据

    • 调用业务的逻辑方法

    • 转向指定的页面

    Model(模型)

    • Dao:操作数据库
    • Service:业务逻辑
    • 保存数据的更新状态

    View(视图)

    • 网页, JSP,用来展示模型中的数据

    二,SpringMVC 架构

    SpringMVC 是 Spring的一部分,是基于Java实现的MVC的轻量级Web框架

    SpringMVC优点

    • 趋势,使用的人多

    • 简单,易学,轻量级

    • 高效,基于请求和响应的MVC框架

    • 约定优于配置

    • 功能强大:RestFul,数据验证,格式化,主题,本地化,异常处理......

    三,Hello SpringMVC

    1,创建一个Maven项目

    2,导入相关架包

    复制代码
     1 <dependencies>
     2   <!--junit包单元测试-->
     3   <dependency>
     4     <groupId>junit</groupId>
     5     <artifactId>junit</artifactId>
     6     <version>4.11</version>
     7     <scope>test</scope>
     8   </dependency>
     9     
    10   <!-- Spring MVC 及 Spring系列包 -->
    11   <dependency>
    12     <groupId>org.springframework</groupId>
    13     <artifactId>spring-webmvc</artifactId>
    14     <version>4.3.24.RELEASE</version>
    15   </dependency>
    16  
    17   <!--Servlet核心-->
    18   <dependency>
    19     <groupId>javax.servlet</groupId>
    20     <artifactId>javax.servlet-api</artifactId>
    21     <version>4.0.1</version>
    22   </dependency>
    23     
    24   <!-- JSTL -->
    25   <dependency>
    26     <groupId>javax.servlet</groupId>
    27     <artifactId>jstl</artifactId>
    28     <version>1.2</version>
    29   </dependency>
    30 </dependencies>
    31 
    32 <build>
    33     <!--解决资源导出问题-->
    34     <resources>
    35       <resource>
    36         <directory>src/main/java</directory>
    37         <includes>
    38           <include>**/*.properties</include>
    39           <include>**/*.xml</include>
    40         </includes>
    41         <filtering>false</filtering>
    42       </resource>
    43       <resource>
    44         <directory>src/main/resources</directory>
    45         <includes>
    46           <include>**/*.properties</include>
    47           <include>**/*.xml</include>
    48         </includes>
    49         <filtering>false</filtering>
    50       </resource>
    51     </resources>
    52 </build>
    复制代码

    3,配置web.xml,注册DispatcherServlet

    映射路径为 /   【不要用/*,会404】

    复制代码
     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3          xmlns="http://java.sun.com/xml/ns/javaee"
     4          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     5          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     6          id="WebApp_ID" version="3.0">
     7 
     8   <!--1.注册DispatcherServlet-->
     9   <servlet>
    10     <servlet-name>SpringMVC</servlet-name>
    11     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    12 
    13     <!--2.关联SpringMVC配置文件-->
    14     <init-param>
    15       <param-name>contextConfigLocation</param-name>
    16       <param-value>classpath:springmvc-servlet.xml</param-value>
    17     </init-param>
    18     
    19     <!--3.这个东西要和服务器一起启动-->
    20     <load-on-startup>1</load-on-startup>
    21   </servlet>
    22   
    23   <servlet-mapping>
    24     <servlet-name>SpringMVC</servlet-name>
    25     <url-pattern>/</url-pattern>
    26   </servlet-mapping>
    27 
    28 </web-app>
    复制代码

    4,配置springMVC的配置文件

    在resources下创建springmvc-config.xml

    复制代码
     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:mvc="http://www.springframework.org/schema/mvc"
     5        xmlns:context="http://www.springframework.org/schema/context"
     6        xsi:schemaLocation="
     7         http://www.springframework.org/schema/beans
     8         https://www.springframework.org/schema/beans/spring-beans.xsd
     9         http://www.springframework.org/schema/context
    10         https://www.springframework.org/schema/context/spring-context.xsd
    11         http://www.springframework.org/schema/mvc
    12         https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    13 
    14     <!--扫描指定包下的注解,让指定的类能够被IOC容器管理-->
    15     <context:component-scan base-package="com.shandx.controller"/>
    16 
    17     <!--静态资源过滤-->
    18     <mvc:default-servlet-handler/>
    19 
    20     <!--MVC注解驱动-->
    21     <mvc:annotation-driven/>
    22 
    23     <!--视图解析器-->
    24     <bean id="InternalResourceViewResolver"
    25     class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    26         <!-- 前缀 -->
    27         <property name="prefix" value="/WEB-INF/"/>
    28         <!-- 后缀 -->
    29         <property name="suffix" value=".jsp"/>
    30     </bean>
    31 </beans>
    复制代码

    5,编写Controller类

    复制代码
     1 //@Controller是为了让Spring IOC容器初始化时自动扫描到
     2 @Controller
     3 public class HelloWorldController {
     4 
     5     //请求映射("路径")
     6     @RequestMapping("/hello")
     7     public String hi(Model model){
     8         model.addAttribute("msg","Hello,SpringMVC");
     9         
    10         //方法返回的结果是视图的名称hello
    11         // 加上配置文件中的前后缀变成WEB-INF/hello.jsp。
    12         return "hello"; //WEB-INF/jsp/hello.jsp
    13     }
    14 }
    复制代码

    6,编写视图层

    注意视图的位置,要和视图解析器对应 web-inf / jsp,可以通过EL表示取出Model中存放的值

    复制代码
     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>SpringMVC</title>
     5 </head>
     6 <body>
     7 
     8 ${msg}
     9 
    10 </body>
    11 </html>
    复制代码

     7,启动Tomcat进行测试

    配置Tomcat

    测试结果

    四, 项目结构

  • 相关阅读:
    SQL 游标示例
    在与SQL Server 建立 连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器
    Jquery 设置焦点
    MVC Hidden用法
    Jquery根据name取得所有选中的Checkbox值
    MVC程序部署后页面指向login.aspx
    ref 和out 关键字
    认识关系型数据库
    抽象类和接口详解
    1.穷举法
  • 原文地址:https://www.cnblogs.com/edda/p/13328651.html
Copyright © 2011-2022 走看看