SpringMVC概念和第一个程序
发表时间:2020-10-19
发布人:葵宇科技
浏览次数:66
根据B站视泼魅整顿:https://www.bilibili.com/video/BV1Mt411G7A8?p=1
文┞仿目次
- 1、SringMVC 概念
- 1.1、三层架构
- 1.2、MVC模型
- 1.3、第一个SpringMVC法度榜样
- 1.4、第一个SpringMVC法度榜样履行流程
- 1.5、RequestMapping注解
1、SringMVC 概念
1.1、三层架构
1、我们开辟架构一般都是基于两种情势:
一种是 Client/Server 架构(C/S架构),也就是客户端/办事器;
另一种是 Browser/Server 架构(B/S架构),也就是浏览器/办事器。
2、在JavaEE开辟种,几乎全都是基于B/S架构的开辟。在B/S架构中,又分成了三层架构。
3、三层架构
表示层:web层,用来和客户端进行数据交互的,表示层一般采取MVC设计模型。
营业层:写营业逻辑代码
持久层:用来操作数据库的
1.2、MVC模型
1、MVC是模型(model)-视图(view)-控制器(controller)的缩写,模型视图控制器。
2、Model
:数据模型,JavaBean的类,用来进行数据封装。
3、View
:指用JSP、HTML来站视数据给用户
4、Controller
:用来接收用户的请求,全部流程的┞菲握器。
5、角色:
前端控制器(DispatcherServlet)
处理映射器(HandlerMapping)
处理适配器(HandlerAdapter)
视图解析器(ViewResolver)
处理器或页面控制器(Controller)
验证器(Validator)
敕令对象(Command)
表单对象(From Object)
1.3、第一个SpringMVC法度榜样
步调:
1、建立一个maven项目,勾选web框架,创建java包和resource包,右击,把它们作为source root和resource root。
2、导入pom依附坐标,在resources目次下,新建设备文件springmvc.xml。
3、编写index.jsp,在web.xml中添加拦截器。
4、编写controller类,导入tomcat办事器。
5、运行测试
- 全部项目构造
具体步调:
1、建立一个maven项目,勾选web框架,创建java包和resource包,右击,把它们作为source root和resource root,如下图。
2、导入pom依附坐标,在resources目次下,新建设备文件springmvc.xml。
pom依附
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.9.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
springmvc.xml设备文件。因为要开启注解扫描和用mvc,所以要加上mvc和context,添加如下图。
完全springmvc.xml。
<?xml version="1.0" encoding="UTF-8"?>
<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/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="com.lu"></context:component-scan>
<!--视图解析器-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!--开启SpringMVC框架注解的支撑-->
<mvc:annotation-driven/>
</beans>
3、编写index.jsp,在web.xml中添加拦截器。
index.jsp中在第一行添加,防止乱码;在body标签中添加a标签。
<%--防止中文乱码--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门法度榜样</h3>
<a href="hello">入门法度榜样</a>
</body>
</html>
在web.xml中,添加拦截器和加载设备文件
<servlet>
<servlet-name>dispatcherServlet</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>
<load-on-startup>1</load-on-startup>
</servlet>
<!--拦截器-->
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
load-on-startup
元素标记容器是否应当在web应用法度榜样启动的时刻就加载这个servlet
,(实例化并调用其init()办法)。- 它的值必须是一个整数,表示servlet被加载的先后次序。
- 如不雅该元素的
值为负数或者没有设置
,则容器会当Servlet被请求时再加载
。- 如不雅值为
正整数或者0时
,表示容器在应用启动时就加载并初始化这个servlet,值袈浣小,servlet的优先级越高,就越先被加载
。值雷同时,容器就会本身选择次序来加载。
4、编写controller类,导入tomcat办事器。
编写类HelloController
//控制器
@Controller
public class HelloController {
@RequestMapping(path = "/hello")
public String syaHello(){
System.out.println("Hello SpringMVC!");
return "success";
}
}
返回的是一个success界面。在WEB-INF包下边建一个pages包,在包琅绫擎建一个success.jsp,作为一个点击后的结不雅,在springmvc.xml中也加了视图解析器,为的是可以找到这个文件。
编写success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>入门成功</h3>
</body>
</html>
怎么导入tomcat,具体看这篇文┞仿:https://blog.csdn.net/qq_42524288/article/details/103304138
5、运行测试
运行后界面:
点击入门法度榜样后跳转到hello界面:
1.4、第一个SpringMVC法度榜样履行流程
1.5、RequestMapping注解
RequestMapping是一个用来处理请求地址映射的注解。
可以感化在类上和办法上。感化在类上,类中的办法都是以该路径作为父类路径。
RequestMapping注解有六个属性
-
value
:指定请求的url。它和path属性的感化一样。 -
method
:指定请求的方法。例如GET、POST、PUT、DELETE等。 -
params
:指定请求中必须包含某些参数值是,才让该办法处理。 -
headers
:用于指定限制请求消息头的前提。
在index.jsp添加标签:
<a href="testRequestMapping">testRequestMapping</a>
在测试类HelloController中添加::
//请求方法为post
//@RequestMapping(value = "/testRequestMapping", method = {RequestMethod.POST})
//请求参数必须包含username=lu,不然请求掉败
//@RequestMapping(value = "/testRequestMapping",params = {"username=lu"})
//请求头必须包含Accept,不然请求掉败
@RequestMapping(value = "/testRequestMapping",headers = {"Accept"})
public String testRequestMapping(){
System.out.println("测试RequestMapping...");
return "success";
}