SpringMVC_day1

1.前言

来自小菜鸡的 心灵窗口,今天开始学习SpringMVC。
(好好学习,天天向上)

1.1三层架构

首先在知道Spring MVC 之前 先了解一下 三层架构的知识。

在开发架构中,一般分俩种架构:

c/s架构,客户端/服务器
b/s架构,浏览器/服务器

在javaEE开发当中,大部分都是以B/S架构为原型,而在B/S架构中,系统标准的三层架构包括:

  • 表现层
  • 业务层
  • 持久层

表现层中,负责接收客户端的请求,向服务端响应结果,通常客户端使用http协议,请求web层,web需要接收http请求,完成http响应。

表现层主要包括:
控制层(负责接收请求),展示层(负责结果的展示)。

表现层依赖于业务层具体实现,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。表现层设计一般都会使用mvc模型

MVC是表现层的设计模型,与其他模型没有关系
(而spring aop 和 ioc 是贯穿三层的)

业务层负责业务的逻辑处理,和项目需求的开发息息相关

持久层 负责数据的持久化
持久层又分俩层 数据层(即数据库)和数据访问层
数据库访问层是业务层和持久层交互的接口,业务层需要通过数据库访问层将数据持久化到数据库中。

通俗的讲,持久层就是和数据库交互,对数据库表进行增删改查的。

1.2MVC

再搞清楚 三层架构之后。我们来介绍 MVC

MVC 是一种设计模式

  • Model
  • View
  • Controller

Model: 数据模型,提供要展示的数据(一般用来在mvc结构中传输数据),用于封装数据。
View: 展示数据 用于用户的交互,用来显示数据,依据模型视图创建的。将模型展示给用户。
Controller 是model与View 之间的沟通的“调度员” 。
先收到请求,然后将model 从service层获取之后 传给 Controller 然后后者将 model 传给view 然后view 根model 进行界面的显示

2.SpringMVC

2.1 简介

SpringMVC是Spring提供的一个模块。是一个基于MVC的web应用的框架,SpringMVC框架提供了MVC模式在B/S架构中的应用。

2.2 快速入门

奥,对了,别忘记导包:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YVexvfge-1604404245692)(assets/image-20201102204437654.png)]

运行原理:
在这里插入图片描述

在动态web 服务器中,web-inf 底下web.xml 底下添加

  • 配置前端控制器
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
 <display-name>springmvc-hello</display-name>

<!--配置spring mvc的核心控制器 -->
<servlet>
   <servlet-name>SpringMVCDispatcherServlet</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <!-- 加载springmvc的配置文件 -->
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:SpringMVC.xml</param-value>
   </init-param>
   <!-- 启动的时候创建servlet对象 -->
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>SpringMVCDispatcherServlet</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>
  • 撰写控制器
package com.briup.mvc.web;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, 
					HttpServletResponse response) throws Exception {
	
		// 获取页面传递的参数,按照ServletAPI的操作
		String param = request.getParameter("param");
		System.out.println("页面获取的参数:" + param);
		
		// ModelAndView对象中包含要返回的业务逻辑视图,和要渲染的数据模型
		ModelAndView mv = new ModelAndView();
		// 设置视图名,可以是字符串,也可以是View对象
		mv.setViewName("index.jsp");
		
		// 要返回给页面的数据模型,Model,可以再页面直接使用el表达式取值。
		Map<String, String> map = new HashMap<String, String>();
		map.put("rsKey", "返回给页面的属性值");
		
		// 将数据模型添加到ModelAndView中,数据模型可以是任何javaBean对象。
		mv.addAllObjects(map);
		return mv;
	}
}


  • 配置控制器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
        
    <!-- 
         name:代表了将来用户访问时,浏览器地址url和bean配置的name值一样
         -->
    <bean name="/hello" class="com.briup.mvc.web.HelloController" />   
</beans>
  • WebContent目录下新建index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" %>
<%
	StringBuilder builder = new StringBuilder();
	builder.append(request.getScheme()).append("://")
		   .append(request.getServerName()).append(":")
		   .append(request.getServerPort())
		   .append(request.getContextPath())
		   .append("/");
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=builder.toString()%>">
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<h1>${rsKey}</h1>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值