IT评测·应用市场-qidao123.com技术社区

标题: SpringMVC从入门到上手-全面讲解SpringMVC的使用. [打印本页]

作者: 卖不甜枣    时间: 3 天前
标题: SpringMVC从入门到上手-全面讲解SpringMVC的使用.
一、springmvc先容

          MVC全称Model View Controller,是一种设计创建Web应用步调的模式。这三个单词分别代表Web应用步调的三个部分:
          Model(模子):指数据模子。用于存储数据以及处理用户哀求的业务逻辑。在Web应用中,JavaBean对象,业务模子等都属于Model。
          View(视图):用于展示模子中的数据的,一样平常为jsp或html文件。
          Controller(控制器):是应用步调中处理用户交互的部分。接受视图提出的哀求,将数据交给模子处理,并将处理后的结果交给视图表现。
  二、springmvc使用

  2.1、创建maven项目

  创建maven工程,catalog选择Internal.Archetype选择webapp.
  Catalog 选择 Internal:表现你在使用当地仓库或当地配置的 Archetype。
  Archetype 选择 webapp:表现你正在创建一个基于 Servlet/JSP 的 Web 应用项目。
  

  2.2、引入依靠

  1. <!-- 处理 Web 请求、展示数据、以及管理页面的核心模块。 -->
  2. <dependency>
  3.     <groupId>org.springframework</groupId>
  4.     <artifactId>spring-webmvc</artifactId>
  5.     <version>5.3.16</version>
  6. </dependency>
  7. <!-- 构建 Web 应用和服务所需的核心功能,主要用于与 Servlet 容器的交互。 -->
  8. <dependency>
  9.     <groupId>javax.servlet</groupId>
  10.     <artifactId>javax.servlet-api</artifactId>
  11.     <version>4.0.1</version>
  12.     <scope>provided</scope>
  13. </dependency>
  14. <!-- 处理 JSON 数据和 Java 对象之间转换的核心库 -->
  15. <dependency>
  16.     <groupId>com.fasterxml.jackson.core</groupId>
  17.     <artifactId>jackson-databind</artifactId>
  18.     <version>2.13.2</version>
  19. </dependency>
  20. <!-- JSP 支持 -->
  21. <dependency>
  22.     <groupId>javax.servlet.jsp</groupId>
  23.     <artifactId>javax.servlet.jsp-api</artifactId>
  24.     <version>2.3.3</version>
  25.     <scope>provided</scope>
  26. </dependency>
复制代码
2.3、配置前端控制器web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
  3.     <display-name>springmvc_demo</display-name>
  4.     <welcome-file-list>
  5.         <welcome-file>index.html</welcome-file>
  6.         <welcome-file>index.htm</welcome-file>
  7.         <welcome-file>index.jsp</welcome-file>
  8.         <welcome-file>default.html</welcome-file>
  9.         <welcome-file>default.htm</welcome-file>
  10.         <welcome-file>default.jsp</welcome-file>
  11.     </welcome-file-list>
  12.     <filter>
  13.         <filter-name>characterEncodingFilter</filter-name>
  14.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  15.         <init-param>
  16.             <param-name>encoding</param-name>
  17.             <param-value>UTF-8</param-value>
  18.         </init-param>
  19.         <init-param>
  20.             <param-name>forceEncoding</param-name>
  21.             <param-value>true</param-value>
  22.         </init-param>
  23.     </filter>
  24.     <filter-mapping>
  25.         <filter-name>characterEncodingFilter</filter-name>
  26.         <url-pattern>/*</url-pattern>
  27.     </filter-mapping>
  28.     <!--配置 SpringMVC 的前端控制器-->
  29.     <servlet>
  30.         <servlet-name>springMVC</servlet-name>
  31.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  32.         <init-param>
  33.             <param-name>contextConfigLocation</param-name>
  34.             <param-value>classpath:springmvc.xml</param-value>
  35.         </init-param>
  36.       <load-on-startup>1</load-on-startup>
  37.     </servlet>
  38.     <servlet-mapping>
  39.         <servlet-name>springMVC</servlet-name>
  40.         <url-pattern>/</url-pattern>
  41.     </servlet-mapping>
  42. </web-app>
复制代码
2.4、增加springmvc配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.        xmlns:context="http://www.springframework.org/schema/context"
  5.        xmlns:mvc="http://www.springframework.org/schema/mvc"
  6.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
  7.     <!--自动扫描包-->
  8.     <context:component-scan base-package="com.cn.springmvc.controller"/>
  9.     <!--开启 MVC 的注解驱动-->
  10.     <mvc:annotation-driven/>
  11.     <!-- 配置视图解析器 -->
  12.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  13.         <property name="prefix" value="/views/" />
  14.         <property name="suffix
复制代码
2.5、创建controller

  编写一个测试方法.
  

  2.6、启动

  idea配置tomcat作为应用服务器,来运行maven项目.
  

  三、哀求参数绑定

          springmvc是基于方法设计的框架,以是对应的哀求url中对应的参数在方法上举行接收.
  当哀求的参数名和处理器参数名称一致时会将哀求参数与处理方法参数举行绑定.
  

          通过欣赏器哀求接口/testDemo/login?username=root&password=123 完成参数绑定.
  创建jsp页面,通过jsp中的form表单提交参数.
  

  四、实体类参数绑定

  4.1、简单绑定

          当提交的参数过多或form表单内容许多时,可以使用实体类接收数据,要求form表单中的name属性与实体类中的属性名一致.
  

  

  4.2、嵌套绑定

          在实体类中将第二个对象当作属性举行嵌套.
  

  

          在欣赏器中通过毗连/testDemo/nestingQuery?username=张三&phone.name=iphone14ro完成参数传递.
  

  五、数据返回                                                                                 

  5.1、ModelAndView

  ModelAndView告急有两个作用,设置转向地址和传递控制方法处理结果数据到结果页面.
  

  

  5.2、Model/ModelMap

          Model本身不能设置页面跳转的url地址,可以通过控制器方法的返回值设置跳转url地址.
          ModelMap对象告急用于传递控制方法处理的数据到结果页面,类似request对象的setAttribute方法的作用.
  

  六、高级参数绑定

  6.1、ServletApi

          在controller方法形参上可以界说request和response.使用request或response指定响应结果.
  

  6.1.1、forward

  

  6.1.2、redirect

  

  6.2、数组


  

  6.3、List

  注意:接收List参数时不可以直接在Controller处理方法上举行接收,采用实体类中包装List的方式举行List参数接收。

  

  七、Springmvc对json的支持

  7.1、@RequestBody

          @RequestBod用于读取哀求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json、xml等格式的数据并绑定到controller方法的参数上。
  


  7.2、@ResponseBody

  @ResponseBody用于将conotroller的方法返回对象,通过HttpMessageConverter接口转换为指定格式的数据如:json、xml等,通过response相应给客户端。
  

  八、URL占位符

          @RequestMapping支持url占位符{xxx}传参方式,通过在方法中使用@PathVariabe(“xxx”)获取占位符的值。通过地址/json/getUrlPathVariable/2访问获取。
  

  注意:
    九、@RequestParam

  @RequestParam注解常用于处理简单数据范例的参数绑定。
  value:哀求参数名
  required:ture/fales是否必填,默认是true
  defaultValue:默认值
  

  注意:
    
  通过以上内容便可轻轻松松使用SpringMVC.是不是超等简单.有任何问题接待留言哦!!!
  重点!重点!重点!
  遇到问题不用怕不如来我的知识库找找看,也许故意想不到的收获!!!
  易网期间-易库资源-易库教程:.NET开发、Java开发、PHP开发、SqlServer技能、MySQL技能-开发资料大全-易网期间-易库资源-易库教程 (escdns.com)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4