【SpringMVC-02】第一个SpringMVC

配置版

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

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

3、配置web.xml  , 注册DispatcherServlet

 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 
 7    <!--1.注册DispatcherServlet-->
 8    <servlet>
 9        <servlet-name>springmvc</servlet-name>
10        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
11        <!--关联一个springmvc的配置文件:【servlet-name】-servlet.xml-->
12        <init-param>
13            <param-name>contextConfigLocation</param-name>
14            <param-value>classpath:springmvc-servlet.xml</param-value>
15        </init-param>
16        <!--启动级别-1-->
17        <load-on-startup>1</load-on-startup>
18    </servlet>
19 
20    <!--/ 匹配所有的请求;(不包括.jsp)-->
21    <!--/* 匹配所有的请求;(包括.jsp)-->
22    <servlet-mapping>
23        <servlet-name>springmvc</servlet-name>
24        <url-pattern>/</url-pattern>
25    </servlet-mapping>
26 
27 </web-app>

4、编写SpringMVC 的 配置文件!名称:springmvc-servlet.xml  : [servletname]-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       xsi:schemaLocation="http://www.springframework.org/schema/beans
5        http://www.springframework.org/schema/beans/spring-beans.xsd">
6 
7 </beans>

5、添加 处理映射器

 1 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> 

6、添加 处理器适配器

 1 <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

7、添加 视图解析器

1 <!--视图解析器:DispatcherServlet给他的ModelAndView-->
2 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
3    <!--前缀-->
4    <property name="prefix" value="/WEB-INF/jsp/"/>
5    <!--后缀-->
6    <property name="suffix" value=".jsp"/>
7 </bean>

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

 1 package com.kuang.controller;
 2 
 3 import org.springframework.web.servlet.ModelAndView;
 4 import org.springframework.web.servlet.mvc.Controller;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 //注意:这里我们先导入Controller接口
10 public class HelloController implements Controller {
11 
12    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
13        //ModelAndView 模型和视图
14        ModelAndView mv = new ModelAndView();
15 
16        //封装对象,放在ModelAndView中。Model
17        mv.addObject("msg","HelloSpringMVC!");
18        //封装要跳转的视图,放在ModelAndView中
19        mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
20        return mv;
21   }
22    
23 }

9、将自己的类交给SpringIOC容器,注册bean

1 <!--Handler-->
2 <bean id="/hello" class="com.kuang.controller.HelloController"/>

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

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <html>
3 <head>
4    <title>Kuangshen</title>
5 </head>
6 <body>
7 ${msg}
8 </body>
9 </html>

11、配置Tomcat 启动测试!

 

 

注解版

1.同样新建一个Moudle , springmvc-03-hello , 添加web的支持,在项目模块管理的Artifacts中添加lib包的依赖!

2.为了防止资源过滤问题现在maven中添加如下代码

 

 1   <build>
 2         <resources>
 3             <resource>
 4                 <directory>src/main/java</directory>
 5                 <includes>
 6                     <include>**/*.properties</include>
 7                     <include>**/*.xml</include>
 8                 </includes>
 9                 <filtering>false</filtering>
10             </resource>
11             <resource>
12                 <directory>src/main/resources</directory>
13                 <includes>
14                     <include>**/*.properties</include>
15                     <include>**/*.xml</include>
16                 </includes>
17                 <filtering>false</filtering>
18             </resource>
19         </resources>
20     </build>

 

 

3.在web.xml中添加如下配置

  注:<url-pattern>/</url-pattern>中的 /  和 /*。前者不包含.jsp,后者包含(一般用前者,因为包含jsp的话会造成一个循环解析问题)

 1 <!--1.注册servlet-->
 2 <servlet>
 3     <servlet-name>SpringMVC</servlet-name>
 4     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 5     <!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
 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 <!--所有请求都会被springmvc拦截 -->
15 <servlet-mapping>
16     <servlet-name>SpringMVC</servlet-name>
17     <url-pattern>/</url-pattern>
18 </servlet-mapping>

 

4.在resources下新建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     <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
14     <context:component-scan base-package="com.yqp.controller"/>
15     <!-- 让Spring MVC不处理静态资源 -->
16     <mvc:default-servlet-handler />
17     <!--
18     支持mvc注解驱动
19         在spring中一般采用@RequestMapping注解来完成映射关系
20         要想使@RequestMapping注解生效
21         必须向上下文中注册DefaultAnnotationHandlerMapping
22         和一个AnnotationMethodHandlerAdapter实例
23         这两个实例分别在类级别和方法级别处理。
24         而annotation-driven配置帮助我们自动完成上述两个实例的注入。
25      -->
26     <mvc:annotation-driven />
27 
28     <!-- 视图解析器 -->
29     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
30           id="internalResourceViewResolver">
31         <!-- 前缀 -->
32         <property name="prefix" value="/WEB-INF/jsp/" />
33         <!-- 后缀 -->
34         <property name="suffix" value=".jsp" />
35     </bean>
36 
37 </beans>

 

5.在WEB-INF下新建跳转页面/jsp/hello.jsp

6.创建一个Controller并用注解配置

 1 @Controller
 2 public class HelloController {
 3 
 4     @RequestMapping("/hello")
 5     public String sayHello(Model model){
 6         model.addAttribute("msg","你好,余大本事你好厉害!!");
 7 
 8         return "hello";
 9     }
10 
11 }

 

7.在jsp/hello.jsp中获取信息并输出

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <html>
3 <head>
4     <title>Title</title>
5 </head>
6 <body>
7     ${msg}
8 </body>
9 </html>

 

8.配置Tomcat并启动测试!

 

 

posted @ 2020-11-03 20:13  rich-yqp  阅读(79)  评论(0)    收藏  举报