Version: Next

Hello SpringMVC

1. 基于配置

  • 新建Maven模块,springmvc-02-hello

  • 配置web.xml,注册DispatcherServlet

    <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 关联一个SprigMVC的泪痣文件 [serlvet-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>
  • 在resources目录下编写SpringMVC配置文件 [servletname]-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>
  • 添加 处理映射器

    <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>
  • 编写业务Controller

    • 方式一:实现Controller接口
    • 方式二:使用注解
    • 返回一个ModelAndView,装数据、封视图
    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中
    mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
    return mv;
    }
    }
  • 将类注册到SpringIOC容器

    <bean id="/hello" class="com.bsx.controller.HelloController"/>
  • 设置hello.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
    <title>Title</title>
    </head>
    <body>
    ${msg}
    </body>
    </html>

如果遇到404: (所以建模块的时候还是选maven的web-app模板吧 - . -)

  • Project Structure -> Artifacts -> 在WEB-INF下新建lib目录
  • 单机 "+" 添加所有maven依赖包