SpringMVC (a): springMVC entry

First, the three-tier architecture and MVC model

1, three-tier architecture

1.1, layered reasons

In order to facilitate maintenance of the code, the need to ensure its single class (class split into a plurality of classes, call relationship between classes is formed).

1.2, three-tier structure

  • Presentation Layer (UI layer): data presentation and user interface, responsible for requesting distribution;
  • Business layer (server layer): encapsulate business logic processing operations;
  • Persistence Layer (Data Access Layer): encapsulate data access logic and database interaction responsible.

1.3, layered advantage

  • Facilitate standardization facilitates multiplexing logical layers;
  • It can be easily implemented to replace with a new original level implementation, reduce the dependence between the layers;
  • Avoid direct access to the presentation layer data access layer, presentation layer and business logic linked only to improve data security.
  • Project structure is more clear, more clear division of labor, help maintain and upgrade the late, greatly reducing maintenance costs and maintenance time.
  • Facilitate dispersion development system, each of the layers may be developed by different individuals, as long as the interface standard to follow, with the same object class can be a model entity, which can greatly increase the development speed of the system.
  • Easily ported system, if we want a C / S system becomes B / S system, as long as the modification of the presentation layer can be a three-tier architecture. Business logic layer and data access layer almost without modification of the system can be easily ported to the network.

2, MVC model

  • Model, the data model, JavaBean class for data encapsulation.
  • View, refers to a JSP, HTML data for display to the user
  • Controller, for receiving a user's request, the whole process controller. For data checking.

Two, springMVC entry

1, based on xml entry

1.1, create a maven web project, the completed project structure, coordinate and import jar package

1.2 disposed on the front end of the controller DispathcherServlet webapp below in web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <!-- SpringMVC的核心控制器 -->
  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置Servlet的初始化参数,读取springmvc的配置文件,创建spring容器 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!-- 配置servlet启动时加载对象 -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

1.3, add a profile springmvc.xml in the resources directory, and configure the mapping processor and processor Controller HandlerMapping

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       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
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置映射处理器HandlerMapping -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

    <!-- 配置处理器Controller-->
    <bean name="/hello" class="com.wedu.springmvc.web.HelloController"/>

</beans>

1.4, write controller HelloController 

package com.wedu.springmvc.web;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * springmvc入门示例
 */
public class HelloController implements Controller {

    public HelloController() {

    }

    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("HelloController");
        return new ModelAndView("success");
    }
}

1.5, add view resolver ViewResolver in springmvc.xml file

    <!-- 配置视图解析器 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

1.6, write pages package in view success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h3>入门成功</h3>
    </body>
</html>

1.7、将项目部署到服务器中,并启动服务器进行测试

 

2、基于注解的入门

2.1、创建maven的web项目,并导入jar包坐标和配置前端控制器DispathcherServlet与xml方式一致

2.2、添加配置文件springmvc.xml,并添加spring注解扫描

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       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
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置spring创建容器时要扫描的包 -->
    <context:component-scan base-package="com.wedu.springmvc.web"/>

</beans>

2.3、编写控制器Controller

package com.wedu.springmvc.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * springmvc入门示例
 */
@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String sayHello() {
        System.out.println("Hello SpringMVC...");
        return "success";
    }
}

2.4、在springmvc.xml文件中添加视图解析器ViewResolver和编写视图jsp与xml方式一致,并配置开启springmvc注解

    <!-- 配置视图解析器 -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 配置开启SpringMVC注解的支持 -->
    <mvc:annotation-driven/>

三、SpringMVC组件的介绍

1、SpringMVC组件

  • 前端控制器(核心):DsipatcherServlet,负责接收并处理所有的web请求,根据handlerMapping找到具体的Controller,由controller完成具体的处理逻辑。
  • 映射处理器:HandlerMapping,负责处理web请求和具体的Controller之间的映射关系匹配。
  • 处理器:Controller,DispatherServlet的次级控制器,web请求的具体处理者。
  • 视图解析器:ViewResolver,用来处理视图名与具体的view实例之间的映射对应关系。

2、SpringMVC的执行过程

                                  

 DispatcherServlet收到请求之后(比如xxx.do),会依据HandlerMapping的配置,去调用相应的Controller来处理。 Controller将处理结果封装成ModelAndView对象,然后将该对象返回给DispatcherServlet。DispatcherServlet依据ViewResolver的解析,调用相应的jsp来展现。

发布了134 篇原创文章 · 获赞 10 · 访问量 7346

Guess you like

Origin blog.csdn.net/yu1755128147/article/details/103894643