设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:
为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。
设计模式使代码编写真正工程化;
设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式就是一种模子,经过多年实践锤炼形成一套行之有效的完成某个特定任务的步骤和方式。
===================================================================================
例如:
西凤酒的酿造过程,酿造工序,前后不能变,温差不能变,这样做就是好喝,稍微改动就变味道了。
再如,北京烤鸭,就是那样做,就是那些调料腌制,变量配比,味道口感就是不如人家。
MVC设计模式是一种通用的软件编程思想
在MVC设计模式中认为, 任何软件都可以分为三部分组成:
并且在MVC设计思想中要求一个符合MVC设计思想的软件应该保证上面这三部分相互独立,互不干扰,每一个部分只负责自己擅长的部分。
如果某一个模块发生变化,应该尽量做到不影响其他两个模块。
这样做的好处是,软件的结构会变得更加的清晰,可读性强。
有利于后期的扩展和维护,并且代码可以实现复用。
view jsp
controller 接收请求
pojo 封装模型
service 检查、调用
dao 查数据、传pojo
request.getParameter();
request.getParameterValues()
Springmvc
是spring
框架的一个模块,spring
和springmvc
无需中间整合层整合Springmvc
是一个基于mvc
的web
框架DispatcherServlet
);DispatcherServlet
的作用:相当于转发器、中央处理器,是整个流程控制的中心
DispatcherServlet
)收到请求后调用处理器映射器(HandlerMapping
)HandlerMapping
)找到具体的Controller
Controller
返回给DispatcherServlet
;DispatcherServlet
)调用处理器适配器(HandlerAdapter
)。Controller
;Controller
⇒ service
⇒ Dao
⇒ 数据库)Controller
执行完成后返回ModelAndView
,HandlerAdapter
)将controller执行的结果(ModelAndView
)返回给前端控制器(DispatcherServlet
);DispatcherServlet
)将执行的结果(ModelAndView
)传给视图解析器(ViewReslover
)ViewReslover
)根据View
(逻辑视图名)解析后返回具体JSP
页面DispatcherServlet
)根据Model对View进行渲染DispatcherServlet
)将填充了数据的网页响应给用户。其中整个过程中需要开发人员编写的部分有
需求:
http://localhost/项目名称/hello
地址,在控制台输出 “hello springmvc”/WEB-INF/pages/home.jsp
页面步骤:
1、通过Maven创建javaweb工程
2、在pom.xml中引入springmvc所需jar包:将下面的配置直接拷贝到pom.xml中的根标签内
<properties>
<junit.version>4.10junit.version>
<spring.version>4.1.3.RELEASEspring.version>
properties>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>${junit.version}version>
<scope>testscope>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>${spring.version}version>
dependency>
<dependency>
<groupId>javax.servletgroupId>
<artifactId>servlet-apiartifactId>
<version>2.4version>
<scope>providedscope>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
<version>2.5.1version>
dependency>
dependencies>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<servlet>
<servlet-name>springmvcservlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
<init-param>
<param-name>contextConfigLocationparam-name>
<param-value>classpath:springmvc-config.xmlparam-value>
init-param>
servlet>
<servlet-mapping>
<servlet-name>springmvcservlet-name>
<url-pattern>/url-pattern>
servlet-mapping>
web-app>
若不拦截全路径,而要要拦截指定路径 ****
写成 : / ∗ ∗ ∗ ∗ / /****/ /∗∗∗∗/
url 写成: ∗ ∗ ∗ / 类 名 ( 有 设 置 的 话 ) / 方 法 名 / ***/类名(有设置的话)/方法名/ ∗∗∗/类名(有设置的话)/方法名/
直接复制下面配置文件的内容即可!
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<mvc:default-servlet-handler/>
<mvc:annotation-driven>mvc:annotation-driven>
<context:component-scan base-package="com.tedu.controller">
context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
bean>
beans>
1、创建com.tedu.controller.HelloController类
2、实现HelloController类
package com.tedu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller /* 这个注解表示当前类是属于控制层 */
public class HelloController {
/* http://localhost/项目名称/hello */
@RequestMapping("/hello")
/* 这个注解用于:映射请求的资源路径(/hello)和当前方法(hello)的对应关系
* 当浏览器请求 /hello 路径时, 将会访问(执行)当前这个方法 */
public String hello() {
System.out.println("hello springmvc...");
return "home";
}
}
在WEB-INF/pages/目录下,创建home.jsp页面。
WEB-INF/pages/home.jsp
<%@ page pageEncoding="utf-8"%>
<html>
<head>
<meta charset="utf-8"/>
head>
<body>
<h1>hello springmvc~~~h1>
body>
html>