springmvc入门基础

  • 三层架构

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构 包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以我们课程中的案例也都是基于三层架构设计的。
三层架构中,每一层各司其职,接下来我们就说说每层都负责哪些方面: 表现层: 也就是我们常说的web层。它负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web 层,web 需要接收 http 请求,完成 http 响应。 表现层包括展示层控制层:控制层负责接收请求,展示层负责结果的展示。 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。 表现层的设计一般都使用 MVC 模型。(MVC 是表现层的设计模型,和其他层没有关系) 业务层: 也就是我们常说的 service 层。它负责业务逻辑处理,和我们开发项目的需求息息相关。web 层依赖业务层,但是业务层不依赖 web 层。 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(也就是我们说的, 事务应该放到业务层来控制持久层: 也就是我们是常说的 dao 层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到数据库中。通俗的讲,持久层就是和数据库交互,对数据库表进行增删改查的。
简而言之:

  • 表现层:WEB层,用来和客户端进行数据交互的。表现层一般会采用MVC的设计模型;
  • 业务层:处理公司具体的业务逻辑的 ;
    3.持久层:用来操作数据库的 ;
  • MVC模型
    MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。
    Model(模型): 通常指的就是我们的数据模型。作用一般情况下用于封装数据。
    View(视图): 通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。 通常视图是依据模型数据创建的。
    Controller(控制器): 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。
  • Springmvc入门程序及步骤

1.创建WEB工程,引入开发的jar包

 <!-- 版本锁定 -->   
  <properties>        
  <spring.version>5.0.2.RELEASE</spring.version>   
  </properties>

   <dependencies>       
   	 <dependency>            
     <groupId>org.springframework</groupId>            
   	 <artifactId>spring-context</artifactId>            
   	 <version>${spring.version}</version>       
   	 </dependency>

       <dependency>            
       <groupId>org.springframework</groupId>            
       <artifactId>spring-web</artifactId>            
       <version>${spring.version}</version>       
        </dependency>

       <dependency>            
       <groupId>org.springframework</groupId>            
       <artifactId>spring-webmvc</artifactId>            
       <version>${spring.version}</version>        
       </dependency>

       <dependency>            
       <groupId>javax.servlet</groupId>            
       <artifactId>servlet-api</artifactId>            
       <version>2.5</version>           
        <scope>provided</scope>        
        </dependency>

       <dependency>            
       <groupId>javax.servlet.jsp</groupId>            
       <artifactId>jsp-api</artifactId>            
       <version>2.0</version>            
       <scope>provided</scope>        
       </dependency> 
</dependencies>

2.配置核心的控制器(配置DispatcherServlet)
在web.xml配置文件中核心控制器DispatcherServlet

  <!-- SpringMVC的核心控制器 -->   
 <web-app>
<display-name>Archetype Created Web Application</display-name>

<!--配置前端控制器-->
<servlet>
 <servlet-name>dispatcherServlet</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:springmvc.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>dispatcherServlet</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>

<!--配置解决中文乱码的过滤器-->
<filter>
 <filter-name>characterEncodingFilter</filter-name>
 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
 </init-param>
</filter>
<filter-mapping>
 <filter-name>characterEncodingFilter</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

  1. 编写springmvc.xml的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 开启注解扫描 -->
    <context:component-scan base-package="cn.itcast"/>

    <!-- 视图解析器对象 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--配置自定义类型转换器-->
    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="cn.itcast.utils.StringToDateConverter"/>
            </set>
        </property>
    </bean>


    <!-- 开启SpringMVC框架注解的支持 -->
    <mvc:annotation-driven conversion-service="conversionService"/>

</beans>
  1. 编写index.jsp和HelloController控制器类
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/4/29
  Time: 0:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>入门程序</h3>
        <a href="hello">入门程序</a>
</body>
</html>
  1. HelloController
package cn.itcast.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

// 控制器类
@Controller
@RequestMapping(path="/user")
public class HelloController {

    /**
     * 入门案例
     * @return
     */
    @RequestMapping(path="/hello")
    public String sayHello(){
        System.out.println("Hello StringMVC");
        return "success";
    }

    /**
     * RequestMapping注解
     * @return
     */
    @RequestMapping(value="/testRequestMapping",params = {"username=heihei"},headers = {"Accept"})
    public String testRequestMapping(){
        System.out.println("测试RequestMapping注解...");
        return "success";
    }

}

  • 在WEB-INF目录下创建pages文件夹,编写success.jsp的成功页面
<%--
 Created by IntelliJ IDEA.
 User: Administrator
 Date: 2018/4/29
 Time: 1:02
 To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
   <title>Title</title>
</head>
<body>
   <h3>入门成功</h3>
</body>
</html>

6.启动Tomcat服务器,进行测试

  • 入门案例的执行流程
    1 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象, 就会加载springmvc.xml配置文件 ;
    2开启了注解扫描,那么HelloController对象就会被创建;
    3从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解找到执行的具体方法 ;
    4 根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定名称的JSP文件;
    5 Tomcat服务器渲染页面,做出响应 .

  • MVC的组件
    在这里插入图片描述

  • DispatcherServlet
    用户请求到达前端控制器,它就相当于 mvc 模式中的 c,dispatcherServlet 是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet 的存在降低了组件之间的耦合性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Springboot是基于Spring框架的一种应用开发架构,它提供了一种便捷的方式来创建可扩展的Spring应用程序,而SpringMVC是一种基于Servlet的Web框架,它专注于模型视图控制器(MVC)架构的实现。总的来说,Springboot提供了更多的功能,而SpringMVC专注于Web应用程序的开发。 ### 回答2: Spring Boot是Spring框架的一部分,它是一种快速构建独立的、基于Spring框架的应用程序的工具。Spring MVC是Spring框架中的一部分,它是一种基于MVC(Model-View-Controller)模式的Web框架。 Spring Boot与Spring MVC的区别主要体现在以下几个方面: 1. 容易入门:Spring Boot采用约定大于配置的策略,利用自动配置来简化开发过程,减少了开发人员的配置工作量,降低了学习门槛;而Spring MVC需要手动配置各种组件,相对来说更复杂一些。 2. 集成度:Spring Boot提供了很多常用组件的自动配置,例如数据库、消息队列、缓存等,使开发人员可以轻松集成这些组件而不用手动配置,大大提高了开发效率;而Spring MVC需要手动配置各种组件。 3. 依赖管理:Spring Boot使用了Spring Boot Starter依赖来简化依赖管理,通过引入不同的Starter依赖,可以快速集成所需的依赖库;而Spring MVC需要手动管理各个依赖库的版本兼容性。 4. 监控和管理:Spring Boot提供了丰富的监控和管理功能,可以通过Spring Boot Actuator监控应用程序的运行情况,并提供了多种监控和管理端点;而Spring MVC没有这些内置的监控和管理功能。 总的来说,Spring Boot是一种快速构建独立应用程序的工具,它简化了开发过程,提高了开发效率;而Spring MVC是一种Web框架,需要手动进行配置,相对来说更加灵活。两者可以结合使用,Spring Boot可以作为快速构建独立应用程序的基础,而Spring MVC可以用来开发Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值