• Spring MVC


    表现层框架 是Spring框架的一部分,Spring 3.0版本发布之后发布的,可以与Spring框架无缝集成,提供了很多的类和方法。

    第一个SpringMVC项目

    step 1: 新建一个maven项目 --> ✔ Create a single project -->  Group id 有公司的写公司域名 eg com.alibaba -->Artifact id 写项目名 --> finish

    step 2: 解决报错:新建一个Dynamic Web Project --> ✔generate web.xml  -->将WEB-INF 及其下的web.xml 一并拷到 src/main/webapp下

    step 3:使用maven导入spring-webmvc相关的包 在pom.xml配置如下信息:

    <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.0.4.RELEASE</version>
            </dependency>
        </dependencies>

    step 4:指定JDK 版本 在pom.xml配置如下信息:

    <build>
        <finalName>”你的项目名“</finalName>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                      <source>1.8</source>
                      <target>1.8</target>
                      <encoding>UTF-8</encoding>
                  </configuration>
              </plugin>
          </plugins>
      </build>

    然后检查 Java Resources/Libraries/JRE System Library 是否显示[JavaSE -1.8] 是的话 则配置生效 不是的话 则Update Maven Project 后继续查看JDK版本 版本改完后 下边Maven Dependencies 下会出现相关jar包

    step 5:在 web.xml 中配置一个 servlet 如下:

     <!-- 注册Spring MVC的中央控制器 -->
      <servlet>
          <servlet-name>springMVC</servlet-name>
          <!-- spring MVC最核心的中央控制器 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      </servlet>
      <servlet-mapping>
              <servlet-name>springMVC</servlet-name>
              <url-pattern>*.do</url-pattern>
      </servlet-mapping>

    长按 Ctrl 将光标移至<servlet-class>上 出现超链接 可查看源码 说明配置正确

    url-pattern        配置成*.do:不成文的框架规范 还可配成 *.action 或者 / --可能会有问题(静态资源也会被拦截到)

    DispatcherServlet回去配置文件xx.xml中去读取<bean>标签内容 把id对应请求 交给class对应Dispatcher去处理

    step 6: 在Java Resources /src/main/resoures下面创建spingmvc配置文件 xxx.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:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        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
            http://www.springframework.org/schema/mvc/spring-mvc.xsd">
        <bean id="/hello.do" class="com.xxx.controller.HelloSpringMVC"/>
    </beans>

    step 7:在web.xml 中在servelt标签里 告诉springmvc 它的配置文件是什么 :

        <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:springmvc.xml</param-value>
          </init-param>

    param-name 固定写法    因为 DispatcherServlet继承了FrameworkServlet,FrameworkServlet有一成员变量名字就是contextConfigLocation

    param-value指定配置文件路径

    step 8 :在Java Resources /src/main/java 下创建一个Controller 类实现接口 Controller-org.springframework.web.servlet.mvc

    创建ModelAndView 对象--> 调用其addObject()方法-->调用其setViewName()方法   ( 指定跳转路径)

    step 9 :在springmvc的配置文件xxx.xml 中添加如下代码:

    <bean id="/hello.do" class="com.xxx.controller.HelloSpringMVC"/>

    id-->指定对应请求

    step 10:在src/main/webapp/WEB-INF下创建jsp文件夹,在其下创建jsp文件

    然后就可以部署运行第一个Spring MVC项目了! 

      note:在有多个servlet的配置文件中,无法控制中央控制器DispatcherServlet的加载顺序,在使用springmvc时就可能出现问题,为了保证其最先加载需要在web.xml的servlet标签添加:

        <!-- 保证中央控制器被加载的级别是最高的 -->
          <load-on-startup>1</load-on-startup>

     为了避免多个Controller配置问题 可以使用视图解析器来解决 在xxx.xml中添加如下代码:

    <!-- 视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>

     程序执行流程:

    用户发送浏览器请求-->浏览器根据请求url 读取web.xml配置文件找到对应DispactherServlet-->DispactherServle去xxx.xml中找到与其对应的Controller-->Controller对其进行处理:调用handleRequest方法,方法返回结果会返回给DispactherServle-->DispactherServle拿到跳转到的jsp-->DispactherServle根据视图解析器拿到路径名及后缀名-并将其返回给浏览器

  • 相关阅读:
    随机验证码实验报告
    输出验证
    原码,反码,补码!
    枚举验证结论
    Java第一次考试有感
    暑假第七周学习进度报告
    暑假第六周学习进度报告
    MySQL学习笔记(22)——常用的日期时间函数
    execute()返回值——true or false
    ORM
  • 原文地址:https://www.cnblogs.com/liupengjuan/p/10460310.html
Copyright © 2020-2023  润新知