SpringMVC(一)

SpringMVC(一)

MVC

  • 模型(DAO,service)、视图(jsp)、控制器(Servlet)

  • MVC是一种软件设计规范,将业务逻辑、数据、显式分离的方法来组织代码

  • 降低了视图与业务逻辑之间的双向耦合

MVC框架要做的事情

  • 将url映射到java类或java类的方法
  • 封装用户提交的数据
  • 处理请求,调用相关的业务处理,封装响应数据
  • 将响应的数据进行渲染,jsp/html等表示层数据

初识SpringMVC

SpringMVC的特点

  • 轻量级,简单易学
  • 高效,基于请求响应的MVC框架
  • 与Spring兼容性好,无缝结合
  • 约定优于配置
  • 功能强大:RESTful、数据验证、格式化、本地化、主题等
  • 简洁灵活

中心控制器

  • Spring的web框架围绕DispatcherServlet设计
  • 将请求分发到不同的处理器
  • 从Spring2.5开始,使用Java5以上版本,可以采用基于注解的controller声明方式
  • SpringMVC以请求为驱动,围绕一个中心Servlet分派请求及提供其他功能

HelloSpringMVC

  • 在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">

    <!--注册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>

</web-app>
  • 在Spring配置文件springmvc-servlet.xml中配置bean
<?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>

</beans>
  • 实现Controller接口
public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        //ModelAndVie 模型和视图
        ModelAndView mv = new ModelAndView();
        //封装对象,放在ModelAndView中
        mv.addObject("msg", "HelloSpringMVC");
        //封装要跳转的视图
        mv.setViewName("hello");//WEB-INF/jsp/hello.jsp
        return mv;
    }
}
  • 在Spring中绑定bean
<!--Handler-->
<bean id="/hello" class="com.yhr.controller.HelloController"/>
  • 编写jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
${msg}
</body>
</html>
  • IDEA中配置项目结构

    • Project Structure -> Project Settings -> Artifacts -> 当前模块
    • WEB-INF下新建lib目录,添加所有的Library Files
  • 运行请求/hello测试

posted @ 2021-02-04 21:48  一天到晚睡觉的鱼  阅读(60)  评论(0)    收藏  举报