SpringMVC MVC架构原理及实现方法详解

SpringMVC

ssm:Mybatis+Spring+SpringMVC MVC三层架构

JavaSE:认真学习,老师带,入门快

JavaWeb:认真学习,老师带,入门快

SSM框架:研究官方文档,锻炼自学能力,笔记能力,项目能力

SpringMVC+Vue+SpringBoot+SpringCloud+Linux

SSM = JavaWeb做项目;

Spring:IOC和AOP

SpringMVC:SpringMVC的执行流程!【重点】

SpringMVC:SSM框架整合!

1. 回顾MVC

什么是MVC?

  • Model+View+Controller=MVC
  • 将业务逻辑、数据、显示分离的方法来组织代码;
  • 降低了视图与业务逻辑间的双向耦合
  • 不是设计模式,是一种架构模式。

新建一个Maven工程当作父工程!pom依赖!

<!--依赖-->
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.9.RELEASE</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
  <dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.1</version>
  </dependency>
  <!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
  </dependency>

</dependencies>

建立一个Moudle:springmvc-01-servlet,添加web app的支持。
导入servlet和jsp依赖:已经包含在父依赖
编写一个Servlet类,用来处理用户的请求

public class HelloServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1.获取前端参数
    String method = req.getParameter("method");
    if(method.equals("add")){
      req.getSession().setAttribute("msg","执行了add方法");
    }
    if(method.equals("delete")){
      req.getSession().setAttribute("msg","执行了delete方法");
    }
    //2.调用业务层

    //3.页面跳转
    req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req,resp);
  }
}

编写Hello.jsp,在WEB-INF目录下新建一个jsp的文件夹,新建hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
  <title>Title</title>
</head>
<body>
#{msg}
</body>
</html>

在web.xml中注册servlet

<servlet>
  <servlet-name>hello</servlet-name>
  <servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/hello</url-pattern>
</servlet-mapping>

配置Tomcat,并启动测试!localhost:8080?hello/method=addlocalhost:8080?hello/method=delete

注意点:

每个模块需要配置到tomcat-deployment,必须部署到服务器上!!!

MVC框架要做哪些事情?

  • 将url映射到java类或类中的方法;
  • 封装用户提交的数据;
  • 处理请求---调用相关业务处理--封装响应数据;
  • 将响应数据进行渲染 .jsp/html等显示层数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringMVC架构的项目 js,css等静态文件导入有问题的解决方法

    发生原因 <servlet> <servlet-name>springmvc-mybaits</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> &l

  • thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】

    本文讲述了thinkPHP5.0框架整体架构.分享给大家供大家参考,具体如下: ThinkPHP5.0应用基于MVC(模型-视图-控制器)的方式来组织. MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作

  • PHP MVC模式在网站架构中的实现分析

    视图(View) "视图"主要指我们送到Web浏览器的最终结果??比如我们的脚本生成的HTML.当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的. 对视图来说,最重要的事情可能是它应该是"自我意识(self aware)"的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色. 以XML为例,可以说XML在被解析时,DOM API有着这样的认知??一个DOM树里的节点知道它在哪里和它包含了什么. (当一个XML文档中的

  • ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)

    业务逻辑层在Ninesky.Core中实现,主要功能封装一些方法通过调用数据存储层,向界面层提供服务. 一.业务逻辑层的架构 Ninesky.Core包含三个命名空间Ninesky.Core.Ninesky.Core.Types.Ninesky.Core.General. Ninesky.Core包含模型和功能实现,Ninesky.Core.Types是项目用到的一些类型的定义,Ninesky.Core.General是项目用到的一些方法的定义. 1.Ninesky.Core命名空间的结构 Ni

  • ssi框架学习总结(mvc三层架构)

    相信大家对于mvc的三层架构已经灰常熟悉了,在这就不细讲了,个人感觉ssi的框架结构还是比较典型的mvc三层架构,还是比较容易上手的.关于这块的入门我想特别感谢下FrankHui童鞋,在他的帮助下,我才能比较快滴熟悉了这个架构,对我学习ssi的框架还是很有帮助滴.ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功能实现与整合.Struts目前主要负责数据传递和控制方面,spring则依靠其强大的依赖注入技术实现了类似bea

  • mvc架构实现商品的购买(二)

    在上篇文章中 使用了mode1的模型来实现商品的浏览,这篇文章在上篇的基础上,使用mvc架构实现商品的购买. 运行结果: 相对与上篇文章  我们多了购物车类 由于我们在购买物品时,购物车需要的属性为购买的商品和数量   所以我们用map的键值来保存购买的商品. 当然还有一个总价格,购物车的方法有 添加商品  删除商品  计算总价格  其中总价格应该在每次添加商品和删除商品时 重新计算  购物车商品集合  只在初始化购物车的时候实例化一次即可 package entity; import java

  • SpringMVC互联网软件架构REST使用详解

    什么是REST REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用 ☐ 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息.它可以是一段文本.一张图片.一首歌曲.一种服务,总之就是一个具体的存在.可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI .要获取这个资源,访问它的URI就可以,因此 UR

  • MayFish PHP的MVC架构的开发框架

    框架工作流程: 加载框架文件>加载参数设置对象>进行初始化设置>加载项目设置参数>获取控制器及控制器方法>执行控制器事件 使用实例为: 复制代码 代码如下: <?php class DefaultController extends AppController { protected $components = array('smarty'); /** 默认事件(方法) */ public function index() { $db_test = M('members

  • java学生信息管理系统MVC架构详解

    本文实例为大家分享了java学生信息管理系统MVC架构,供大家参考,具体内容如下 一.项目结构 学生信息管理系统分三层进行实现.student.java主要提供数据,cotroller.java的功能是绑定试图和计算数据.Stuview.java用于单一的用来显示数据. 二.源码 1.1.Student 类 /* * @FileName: Student.class * @version:1.0 * @author:nazi * 描述:模型层 * */ import java.io.Serial

  • ASP.NET MVC5网站开发之展示层架构(五)

    展示层由Ninesky.Web项目实现,负责网站内容的显示,项目包含Member和Control两个区域. Member区域实现网站内容的管理,Control区域实现网站系统管理.结构.功能图如下:  一.Member区域 1.添加Member区域 Ninesky.Web[右键]-> 添加->区域 . 在弹出的添加区域对话框输入区域名称:Member,完成区域添加. 2.添加Home控制器 Ninesky.Web->Areas->Member->Controllers[右键]

随机推荐