赞
踩
1、新建一个Moudle , springmvc-02-HelloSpringmvc , 添加web的支持!
2、确定导入了SpringMVC 的依赖!
3.配置xml文件,注册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>
4.配置所需要的springmvc-sevlet.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">
-
- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
- <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
-
- <!--视图解析器:DispatcherServlet给他的ModelAndView-->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
- <!--前缀-->
- <property name="prefix" value="/WEB-INF/jsp/"/>
- <!--后缀-->
- <property name="suffix" value=".jsp"/>
- </bean>
- <bean id="/hello" class="com.sqt.controller.HelloController"/>
- </beans>
5.编写我们要操作业务Controller ,要么实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;
- public class HelloController implements Controller {
-
- @Override
- public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
- //ModelAndView 模型和视图
- ModelAndView mv = new ModelAndView();
-
- //封装对象,放在ModelAndView中。Model
- mv.addObject("msg","HelloSpringMVC!");
- //封装要跳转的视图,放在ModelAndView中
- mv.setViewName("hello");
- //: /WEB-INF/jsp/hello.jsp
- return mv;
- }
- }
6.在springmvc-servlet.xml这个文件中再把controller的类交给ioc容器管理
<bean id="/hello" class="com.sqt.controller.HelloController"/>
7.写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面;
- <%--
- Created by IntelliJ IDEA.
- User: mypc
- Date: 2022/7/13
- Time: 10:44
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- ${msg}
- </body>
- </html>
8.进行测试结果404,原因不知
可能遇到的问题:访问出现404,排查步骤:
查看控制台输出,看一下是不是缺少了什么jar包。
如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!
重启Tomcat 即可解决!
1.新建议个model,springmvc-03-annotation,添加web支持
2、确定导入了SpringMVC 的依赖!
3配置web.xml文件,注册dispatcherservlet
- <!-- 注册一个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>
- <!-- 启动级别为一-->
- <load-on-startup>1</load-on-startup>
- </servlet>
- <!--
- /匹配所有请求,不包括jsp
- /*匹配所有请求包括jsp文件
- -->
- <servlet-mapping>
- <servlet-name>springmvc</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
4.配置web.xml文件所需要的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"
- 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">
-
-
- <!-- 开启扫描包-->
- <context:component-scan base-package="com.sqt.controller"/>
- <!-- 让springmvc不处理静态资源如.css,.html,.js,.mp3,.mp4-->
- <!-- 目的过滤资源,否则会出现问题-->
- <mvc:default-servlet-handler/>
- <!--
- 支持springmvc的注解驱动,
- 在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>
- <!-- 处理器映射器会去通过id找到对应的控制器-->
-
-
-
- </beans>
5.编写controller层服务,开始封装数据,选择视图
使用注解@RequestMapper和@Controller
@Controller是为了让Spring IOC容器初始化时自动扫描到;
@RequestMapping是为了映射请求路径,这里因为类与方法上都有映射所以访问时应该是/HelloController/hello;
方法中声明Model类型的参数是为了把Action中的数据带到视图中;
方法返回的结果是视图的名称hello,加上配置文件中的前后缀变成WEB-INF/jsp/hello.jsp。
- @RequestMapping("/HelloController")
- @Controller
- public class HelloController {
- //真实访问地址:项目名/HelloController/hello
- //但是我们一般不这样写,在大量代码的情况下,这样写会造成代码难以维护,不好查找错误
- //一般都是在方法的上面写上@RequestMapping("/HelloController/hello")
- @RequestMapping("/hello")
- public String sayHello(Model model){
- //向模型中添加属性msg与值,可以在JSP页面中取出并渲染
- model.addAttribute("msg","hello,springmvc");
- //web-inf/jsp/hello.jsp
- return "hello";
- }
- }
6.创建所需要的jsp页面
- <%--
- Created by IntelliJ IDEA.
- User: mypc
- Date: 2022/7/12
- Time: 16:43
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>$Title$</title>
- </head>
- <body>
- $END$
- </body>
- </html>
7.进行tomcat测试
实现步骤其实非常的简单:
新建一个web项目
导入相关jar包
编写web.xml , 注册DispatcherServlet
编写springmvc配置文件
接下来就是去创建对应的控制类 , controller
最后完善前端视图和controller之间的对应
测试运行调试.
使用springMVC必须配置的三大件:
处理器映射器、处理器适配器、视图解析器
通常,我们只需要手动配置视图解析器,而处理器映射器和处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置
再来回顾下原理吧~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。