SpringMVC概念和第一个程序 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 技术分享 >

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>
  1. load-on-startup 元素标记容器是否应当在web应用法度榜样启动的时刻就加载这个servlet,(实例化并调用其init()办法)。
  2. 它的值必须是一个整数,表示servlet被加载的先后次序。
  3. 如不雅该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载
  4. 如不雅值为正整数或者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";
    }

相关案例查看更多