当前位置:   article > 正文

第一个springmvc程序

第一个springmvc程序

第一种配置版

1、新建一个Moudle , springmvc-02-HelloSpringmvc , 添加web的支持!

2、确定导入了SpringMVC 的依赖!

3.配置xml文件,注册dispatcherservlet

  1. <servlet>
  2. <servlet-name>springmvc</servlet-name>
  3. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  4. <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
  5. <init-param>
  6. <param-name>contextConfigLocation</param-name>
  7. <param-value>classpath:springmvc-servlet.xml</param-value>
  8. </init-param>
  9. <!--启动级别-1-->
  10. <load-on-startup>1</load-on-startup>
  11. </servlet>
  12. <!--/ 匹配所有的请求;(不包括.jsp)-->
  13. <!--/* 匹配所有的请求;(包括.jsp)-->
  14. <servlet-mapping>
  15. <servlet-name>springmvc</servlet-name>
  16. <url-pattern>/</url-pattern>
  17. </servlet-mapping>

4.配置所需要的springmvc-sevlet.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. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  7. <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
  8. <!--视图解析器:DispatcherServlet给他的ModelAndView-->
  9. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
  10. <!--前缀-->
  11. <property name="prefix" value="/WEB-INF/jsp/"/>
  12. <!--后缀-->
  13. <property name="suffix" value=".jsp"/>
  14. </bean>
  15. <bean id="/hello" class="com.sqt.controller.HelloController"/>
  16. </beans>

5.编写我们要操作业务Controller ,要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;

  1. public class HelloController implements Controller {
  2. @Override
  3. public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
  4. //ModelAndView 模型和视图
  5. ModelAndView mv = new ModelAndView();
  6. //封装对象,放在ModelAndView中。Model
  7. mv.addObject("msg","HelloSpringMVC!");
  8. //封装要跳转的视图,放在ModelAndView中
  9. mv.setViewName("hello");
  10. //: /WEB-INF/jsp/hello.jsp
  11. return mv;
  12. }
  13. }

6.在springmvc-servlet.xml这个文件中再把controller的类交给ioc容器管理

<bean id="/hello" class="com.sqt.controller.HelloController"/>

7.写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面;

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: mypc
  4. Date: 2022/7/13
  5. Time: 10:44
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>Title</title>
  12. </head>
  13. <body>
  14. ${msg}
  15. </body>
  16. </html>

8.进行测试结果404,原因不知

可能遇到的问题:访问出现404,排查步骤:

  1. 查看控制台输出,看一下是不是缺少了什么jar包。

  2. 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!

  3. 重启Tomcat 即可解决!

第二种注解版

1.新建议个model,springmvc-03-annotation,添加web支持

2、确定导入了SpringMVC 的依赖!

3配置web.xml文件,注册dispatcherservlet

  1. <!-- 注册一个DispatcherServlet-->
  2. <servlet>
  3. <servlet-name>springmvc</servlet-name>
  4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  5. <!-- 关联一个springmvc的配置文件,【servlet-name】-servlet.xml-->
  6. <init-param>
  7. <param-name>contextConfigLocation</param-name>
  8. <param-value>classpath:springmvc-servlet.xml</param-value>
  9. </init-param>
  10. <!-- 启动级别为一-->
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13. <!--
  14. /匹配所有请求,不包括jsp
  15. /*匹配所有请求包括jsp文件
  16. -->
  17. <servlet-mapping>
  18. <servlet-name>springmvc</servlet-name>
  19. <url-pattern>/</url-pattern>
  20. </servlet-mapping>

4.配置web.xml文件所需要的springmvc-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. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/context
  9. https://www.springframework.org/schema/context/spring-context.xsd
  10. http://www.springframework.org/schema/mvc
  11. https://www.springframework.org/schema/mvc/spring-mvc.xsd">
  12. <!-- 开启扫描包-->
  13. <context:component-scan base-package="com.sqt.controller"/>
  14. <!-- 让springmvc不处理静态资源如.css,.html,.js,.mp3,.mp4-->
  15. <!-- 目的过滤资源,否则会出现问题-->
  16. <mvc:default-servlet-handler/>
  17. <!--
  18. 支持springmvc的注解驱动,
  19. 在spring中@RequestMapping注解来完成映射关系
  20. 要想使@RequestMapping生效,
  21. 必须向上下文中注册DefaultAnnotationHandlerMapping
  22. 和一个AnnotationMethodHandlerAdapter实例
  23. 这两个实例分别在类级别和方法级别处理。
  24. 而annotation-driven配置帮助我们自动完成上述两个实例的注入。
  25. 自动开启处理器映射器和处理器适配器
  26. -->
  27. <mvc:annotation-driven/>
  28. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
  29. <!-- 前缀-->
  30. <property name="prefix" value="/WEB-INF/jsp/"/>
  31. <!-- 后缀-->
  32. <property name="suffix" value=".jsp"/>
  33. </bean>
  34. <!-- 处理器映射器会去通过id找到对应的控制器-->
  35. </beans>

5.编写controller层服务,开始封装数据,选择视图

使用注解@RequestMapper和@Controller

  • @Controller是为了让Spring IOC容器初始化时自动扫描到;

  • @RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所以访问时应该是/HelloController/hello;

  • 方法中声明Model类型的参数是为了把Action中的数据带到视图中;

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

  1. @RequestMapping("/HelloController")
  2. @Controller
  3. public class HelloController {
  4. //真实访问地址:项目名/HelloController/hello
  5. //但是我们一般不这样写,在大量代码的情况下,这样写会造成代码难以维护,不好查找错误
  6. //一般都是在方法的上面写上@RequestMapping("/HelloController/hello")
  7. @RequestMapping("/hello")
  8. public String sayHello(Model model){
  9. //向模型中添加属性msg与值,可以在JSP页面中取出并渲染
  10. model.addAttribute("msg","hello,springmvc");
  11. //web-inf/jsp/hello.jsp
  12. return "hello";
  13. }
  14. }

6.创建所需要的jsp页面

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: mypc
  4. Date: 2022/7/12
  5. Time: 16:43
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <title>$Title$</title>
  12. </head>
  13. <body>
  14. $END$
  15. </body>
  16. </html>

7.进行tomcat测试

 

小结

实现步骤其实非常的简单:

  1. 新建一个web项目

  2. 导入相关jar包

  3. 编写web.xml , 注册DispatcherServlet

  4. 编写springmvc配置文件

  5. 接下来就是去创建对应的控制类 , controller

  6. 最后完善前端视图和controller之间的对应

  7. 测试运行调试.

使用springMVC必须配置的三大件:

处理器映射器、处理器适配器、视图解析器

通常,我们只需要手动配置视图解析器,而处理器映射器处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置

再来回顾下原理吧~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/467812
推荐阅读
相关标签
  

闽ICP备14008679号