SpringMVC笔记(二)

作者: linzeliang
  1. 创建SpringMVC程序

    1.1 配置文件方式

  2. 创建web项目

  3. 配置pom.xml,导入依赖

  4. 配置web.xml,注册DispatcherServlet

    <?xml version="1.0" encoding="UTF-8"?>
    <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">
    
    
       <!--1.注册DispatcherServlet-->
       <servlet>
           <servlet-name>springmvc</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
           <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
           <init-param>
               <param-name>contextConfigLocation</param-name>
               <param-value>classpath:springmvc-servlet.xml</param-value>
           </init-param>
           <!--启动级别-1-->
           <load-on-startup>1</load-on-startup>
       </servlet>
    
       <!--/ 匹配所有的请求;(不包括.jsp)-->
       <!--/* 匹配所有的请求;(包括.jsp)-->
       <servlet-mapping>
           <servlet-name>springmvc</servlet-name>
           <url-pattern>/</url-pattern>
       </servlet-mapping>
    </web-app>
    
  5. 编写SpringMVC的配置文件,springmvc-servlet.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"
         xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    </beans>
    
  6. 添加处理映射器

    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    
  7. 添加处理适配器

    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    
  8. 添加视图解析器

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
       <!--前缀-->
    <property name="prefix" value="/WEB-INF/jsp/"/>
       <!--后缀-->
       <property name="suffix" value=".jsp"/>
    </bean>
    
  9. 编写Controller,要么实现Controller接口,要么使用注解,需要返回一个ModelAndView,装数据,封视图

    package top.linzeliang.controller;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    // 先导入Controller接口
    public class HelloController implements Controller {
    
       public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
           // ModelAndView 模型和视图
           ModelAndView mv = new ModelAndView();
    
           // 封装对象,放在ModelAndView中。Model
           mv.addObject("msg","HelloSpringMVC!");
           // 封装要跳转的视图,放在ModelAndView中
           // /WEB-INF/jsp/hello.jsp
           mv.setViewName("hello");
           return mv;
       }
    }
    
  10. 将类交给SpringIOC,注册Bean

    <!-- Handler -->
    <!-- id中要加斜杠 -->
    <bean id="/hello" class="top.linzeliang.controller.HelloController"/>
    
  11. 编写对应jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
        <head>
            <title>Kuangshen</title>
        </head>
        <body>
            $
        </body>
    </html>
    
  12. 启动Tomcat服务器,进行测试

    • 如果出现404错误,则检查lib包是否导入成功了

    1.2 注解方式

  13. 创建web项目

  14. 配置pom.xml,导入依赖

  15. Spring框架核心库

  16. SpringMVC

  17. Servlet

  18. JSTL

  19. 由于Maven可能存在资源过滤,所以要配置一下如下信息以防万一

     <build>   <resources>       <resource>           <directory>src/main/java</directory>           <includes>               <include>**/*.properties</include>               <include>**/*.xml</include>           </includes>           <filtering>false</filtering>       </resource>       <resource>           <directory>src/main/resources</directory>           <includes>               <include>**/*.properties</include>               <include>**/*.xml</include>           </includes>           <filtering>false</filtering>       </resource>   </resources></build>
    
  20. 配置web.xml,注册DispatcherServlet

    <?xml version="1.0" encoding="UTF-8"?><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">    <!--1.注册DispatcherServlet-->    <servlet>        <servlet-name>springmvc</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>        <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->        <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springmvc-servlet.xml</param-value>        </init-param>        <!--启动级别-1-->        <load-on-startup>1</load-on-startup>    </servlet>    <!--/ 匹配所有的请求;(不包括.jsp)-->    <!--/* 匹配所有的请求;(包括.jsp)-->    <servlet-mapping>        <servlet-name>springmvc</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping></web-app>
    
  21. 添加SpringMVC配置文件,springmvc-servlet.xml

  22. 再resource目录下添加springmvc-servlet.xml配置文件,配置文件的形式与Spring容器配置基本类似,为了支持基于注解的IOC,设置了自动扫描包的功能

     <beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       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                           https://www.springframework.org/schema/context/spring-context.xsd                           http://www.springframework.org/schema/mvc                           https://www.springframework.org/schema/mvc/spring-mvc.xsd">    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->    <context:component-scan base-package="top.linzeliang.controller"/>    <!-- 让Spring MVC不处理静态资源 -->    <mvc:default-servlet-handler />    <!--       启用注解驱动       在spring中一般采用@RequestMapping注解来完成映射关系       要想使@RequestMapping注解生效       必须向上下文中注册DefaultAnnotationHandlerMapping       和一个AnnotationMethodHandlerAdapter实例       这两个实例分别在类级别和方法级别处理。       而annotation-driven配置帮助们自动完成上述两个实例的注入。    -->    <mvc:annotation-driven />    <!-- 视图解析器 -->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"          id="internalResourceViewResolver">        <!-- 前缀 -->        <property name="prefix" value="/WEB-INF/jsp/" />        <!-- 后缀 -->        <property name="suffix" value=".jsp" />    </bean></beans>
    
  23. 创建Controller类

  24. @Controller是为了让SpringIOC容器初始化时自动扫描到

  25. @RequestMapping是为了映射请求路径

  26. 方法中的Model类型的参数是为了把Action中的数据带到视图中

  27. 方法返回的结果是视图的名称,加上配置文件中的前后缀变成/WEB-INF/jsp/hello.jsp

    package top.linzeliang.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/HelloController")public class HelloController {    //真实访问地址 : 项目名/HelloController/hello    @RequestMapping("/hello")    public String sayHello(Model model){        //向模型中添加属性msg与值,可以在JSP页面中取出并渲染        model.addAttribute("msg","hello,SpringMVC");        //web-inf/jsp/hello.jsp        return "hello";    }}
    
  28. 创建视图层(页面)

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html>    <head>        <title>SpringMVC</title>    </head>    <body>        ${msg}    </body></html>
    
  29. 进行测试

原文创作:linzeliang

原文链接:https://www.cnblogs.com/linzeliang1222/p/14716712.html

更多推荐

更多
  • 程序计数器 M78 程序计数器简述特点作用似之处,都是取下一次的指令地址。 * PC Register在JVM里可以翻译成program counter register 程序计数器,在JVM里只存储当前执行的操作码的地址。也算是对CPU里寄存器的一种模拟
  • Java EE 学习 83 上 - SpringMVC - 基本使用方法 【Java EE 学习 83 上】【SpringMVC】【基本使用方法】一、SpringMVC框架概述二、第一个SpringMVC程序三、三种不同的URL处理器映射四、三种不同的控制器五、项目练习源代码地址  1.环境准备  2.需要的
  • Java EE 学习 83 下 - SpringMVC - 使用注解替代已过时的API - SpringMVC、Hibernate整合 - Java EE 学习 83 下SpringMVC使用注解替代已过时的APISpringMVC、Hibernate整合一、SpringMVC中注解的使用二、使用注解接收参数的方法三、重定向的方法四、SpringMVC和Hibernate的
  • 魔改swagger:knife4j的另外一种打开方式 魔改swagger:knife4j的另外一种打开方式一、两种文档聚合模式二、swagger-ui的实现原理三、swagger-register-server四、swagger-spring-boot-starter五、实战六、其它问题原
  • spring mvc请求体偷梁换柱:HandlerMethodArgumentResolver spring mvc请求体偷梁换柱:HandlerMethodArgumentResolver1.切面方法:行不通2.自定义参数解析器:偷梁换柱3.自定义参数解析器遇到的问题第一步:实现HandlerMethodArgumentReso
    狂盗一枝梅

  • 二叉树题解方法 二叉树-题解-方法递归二叉树的递归遍历二叉树的迭代遍历二叉树的统一迭代法二叉树的层序遍历翻转二叉树对称二叉树二叉树的最大深度二叉树的最小深度慢就是快!递归法迭代法递归法迭代法迭代法n叉树的最大深度使用队列使用栈/15056076.htm
  • 字符串题解方法 字符串-题解-方法反转字符串反转字符串II替换空格翻转字符串左旋转字符串实现 strStr()重复的子字符串慢就是快!KMP算法KMP有什么用什么是前缀表时间复杂度分析代码,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题
  • Hash题解方法 Hash-题解-方法有效的字母异位词两个数组的交集快乐数两数之和四数相加II赎金信三数之和慢就是快!m", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false
  • 链表题解 链表-题解移除链表元素翻转指针两两交换链表中的节点删除链表的倒数第N个节点链表相交环形链表II慢就是快!双指针法递归实现判断链表是否有环bo/2020/2465789-20210910160233590-1213910246.png)
  • 双指针题解 双指针-题解移除元素慢就是快!数组空间,你必须仅使用 O(1) 额外空间并**原地**修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = \[3,2,2,3\], ​ va
  • 近期文章

    更多
    文章目录

      推荐作者

      更多