第一章:springMVC概述

※ spring所用的jar包地址:https://repo.spring.io/release/org/springframework/spring/

  • springMVC概述

    • springmvc为展现层的基于mvc设计理念的优秀的web框架,是目前最流行的mvc框架之一
    • spring3.0后全面超越struts2,成为最优秀的mvc框架
    • springmvc通过一套mvc注解,让POJO(plain old java object)成为处理请求的控制器,而无须实现任何接口
    • 支持rest风格的url请求。Restful
    • 采用松耦合可插拔组件结构,比其他mvc框架更具扩展性和灵活性
  • springmvc是什么

    • 一种轻量级的,基于mvc的web层应用框架,偏前端而不是基于业务逻辑层,spring框架的一个后续产品。
  • springmvc能干什么

    • 天生与spring框架集成,如:(IoC,AOP)
    • 支持Restful风格
    • 进行简洁的web层开发(与serverlet相比)
    • 支持灵活的URL到页面控制层的映射
    • 非常容易与其他试图技术集成,如:velocity,FreeMarker等等
    • 因为模型数据不存在特定的api里,而是放在一个Model里(MAP数据结构实现,因此很容易被其他框架使用)
    • 非常灵活的数据验证,格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API
    • 更加简单,强大的异常处理
    • 对静态资源的支持
    • 支持灵活的本地化,主题等解析
  • springMVC怎么玩

    • 将web层进行职责解耦
    • 主要常用插件
      • DispatcherServlet:前端控制器
      • Controller:处理器/页面控制器,做的是mvc中的c的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理
      • HandlerMapping:请求映射到处理器,找谁来处理,如果处理成功返回一个HandlerExcutionChain对象(包含一个Handler处理器(页面控制器)对象,多个HandlerInterceptor拦截器对象)
      • View Resolver:视图解析器。,找谁来处理返回的页面,把逻辑视图解析为具体的View,进行这种策略模式,很容易更换其他视图技术
      • Localresolver:本地化,国际化
      • MultipartResolver:文件上传解析器
  • 快速入门--helloworld
    • 新建文本工程,导入jar包(从※路径下载的文件寻找)
      • spring-aop
      • spring-context
      • spring-core
      • spring-expression
      • spring-beans
      • commons-logging
      • spring-web
      • spring-webmvc
    • 在web.xml中配置springMVC的核心控制器DispatcherServlet
      • 作用:加载springMVC的配置文件,在下方的配置方式下,DispatcherServlet自动加载配置文件,此时的配置文件有默认的位置和名称
      • 默认位置为WEB-INF,默认名称为<servlet-name>-servlet.xml,例如如下配置方式的文件名:dispatcher-servlet.xml
      • 1 <servlet>
        2         <servlet-name>dispatcher</servlet-name>
        3         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        4         <load-on-startup>1</load-on-startup>
        5     </servlet>
        6     <servlet-mapping>
        7         <servlet-name>dispatcher</servlet-name>
        8         <url-pattern>/</url-pattern>
        9     </servlet-mapping>

         

      • 当加载了配置文件,springMVC就会根据提供扫描组件找到控制层
    • 创建一个POJO,在此类上加上@Controller注解,springMVC就会将此类作为控制层加载,让其处理请求响应
    • 在控制层中,需要在方法上设置@RequestMapping(value="xxx"),springMVC就是通过此注解将请求路径与控制层中的方法进行匹配,此时请求路径为 localhost:8080/xxx
    • 如果请求的方法返回一个字符串,即视图名称,最终会通过配置文件中配置的视图解析器实现页面跳转。方式:prefix+视图名称+suffix,此为最终跳转的页面路径
  • 用IDEA搭建最简单的SpringMVC环境--永远的helloworld

1.打开Idea,选择create new project,勾选如下选项, 之后点击next,进入下一步

2.填写项目名称和项目存放的位置,之后点击finish。下载好之后,就得到了初始的一个springMVC项目结构,如下:

 

 3.在src下添加一个controller文件夹,用来存放我们的控制器相关文件

 4.对配置文件进行修改

applicationContext.xml

这个文件我们暂不做任何配置

web.xml(我们只将<url-pattern>*form</url-pattern>改为<url-pattern>/</url-pattern>)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 5          version="4.0">
 6     <context-param>
 7         <param-name>contextConfigLocation</param-name>
 8         <param-value>/WEB-INF/applicationContext.xml</param-value>
 9     </context-param>
10     <listener>
11         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     <servlet>
14         <servlet-name>dispatcher</servlet-name>
15         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
16         <load-on-startup>1</load-on-startup>
17     </servlet>
18     <servlet-mapping>
19         <servlet-name>dispatcher</servlet-name>
20         <url-pattern>/</url-pattern>
21     </servlet-mapping>
22 </web-app>

dispatcher-servlet.xml

 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        xsi:schemaLocation="
 6        http://www.springframework.org/schema/beans
 7        http://www.springframework.org/schema/beans/spring-beans.xsd
 8        http://www.springframework.org/schema/context
 9        http://www.springframework.org/schema/context/spring-context.xsd">
10 <!--扫描组件 ,将加上@Controller注解的类作为springMVC的控制层-->
11 <context:component-scan base-package="controller"/>
12 <!--配置视图解析器,作用:将prefix+视图名称+suffix 确定最终要跳转的页面-->
13 <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
14     <!-- 将jsp页面放置在web-info中可以保护这些页面不被浏览器直接访问 -->
15     <property name="prefix" value="/WEB-INF/view/"/>
16     <property name="suffix" value=".jsp"/>
17 </bean>
18 </beans>

5.在WEB-INF目录下创建view文件夹,并新建一个success.jsp文件

 

   6.配置Tomcat

  

   

   下面两个错误同样的解决办法

   ①控制台:启动项目时部署报错 Artifact xxx:war exploded: Error during artifact deployment.(翻译过来就是部署的时候报错了)

   ②页面:启动项目报错,原因是项目没有部署好(本人的是这样的)

  

   解决方法:

  

   1.先把原来的Artifact删掉

   

   2.重新添加

   

   

   

  

 

   再次启动项目,就成功了

  

 

   报下面的错误及解决办法:

  

 

   这个错误是因为少了Jstl.jar 和 standard.jar 两个Jar包,我们下载这两个Jar包,并且将他们放到WEB-INF下的lib文件夹中,并且添加进项目依赖。

  

 

   

 

 

   

 

posted @ 2020-10-03 16:19  违和感  阅读(1191)  评论(0)    收藏  举报