Источник синтаксического анализа Spring MVC (а)

Во-первых, простое понимание использования Spring MVC

Во-первых, построить Maven веб-проекта, самый простой проект MVC будет просто

        <Зависимость> 
            <идентификатор_группы> org.springframework </ The идентификатор_группы> 
            <артефакта> Спринг-webmvc </ The артефакта> 
            <версия> 5.1.7.RELEASE </ Version> 
        </ зависимость> // область конфигурации Примечание, а также для предотвращения самостоятельного кота конфликт с банкой 
        <зависимость> 
            <идентификатор_группы> The javax.servlet </ The идентификатор_группы> 
            <артефакта> The javax.servlet-API </ The артефакта> 
            <версия> 4.0.1 </ Version> 
            <сфера> при условии </ сфера> 
        </ зависимостей > // если не применимо JSP, вы не можете настроить 
        <зависимость> 
            <идентификатор_группы> javax.servlet </ идентификатор_группы> 
            <артефакта> JSTL </ артефакт> 
            <версия> 1.2 </ версия> 
        </ зависимость>

web.xml простая конфигурация

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<веб-приложение XMLNS: XSI = "http://www.w3.org/2001/XMLSchema-instance" 
         XMLNS = "HTTP: // Java .sun.com / XML / нс / JavaEE "XMLNS: веб = "http://java.sun.com/xml/ns/javaee" 
         XSI: SchemaLocation =" http://java.sun.com/xml/ns / JavaEE http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd» 
         ID = "" версия = "3,0"> WebApp_ID 
    <! - корень МОК -> 
    <имя-дисплей> исследование MVC <дисплей имя /> пружина 
    <сервлет> 
        <сервлет-имя> DispatcherServlet <сервлет-имя /> 
        <servlet- класс > org.springframework.web.servlet.DispatcherServlet </ servlet- класс > 
        <INIT-пары>
            <пары имя-> contextConfigLocation </ пары-имя> 
            <пары-значение> путь к классам: /spring-mvc.xml </ пары-значение> 
        </ INIT-пары> 
    </ сервлет> 
    <сервлет-отображение> 
        <имя сервлет > DispatcherServlet <сервлет-имя /> 
        <URL-шаблон> / </ URL-шаблон> 
    </ сервлет-отображение> 

    <радушны-файл-список> 
        <радушны-файл> /index.html </ радушны-файл> 
    </ добро пожаловать-файл-список> 

</ веб-приложение>

Mvc ресурсы, созданные в файле конфигурации каталога XML, в соответствии с определенным именем параметров инициализации в web.xml, являются наиболее базовая конфигурация из используемых компонентов анализа исходного кода

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<бобы Xmlns = "http://www.springframework.org/schema/beans" 
    XMLNS: XSI = "http://www.w3.org / 2001 / XMLSchema-экземпляр " 
    XMLNS: контекст = "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 
       HTTP: // WWW .springframework.org / схема / контекст / весна-context.xsd 
       HTTP://www.springframework.org/schema/mvc 
       HTTP: // www.springframework.org/schema/mvc/spring-mvc.xsd ">
 
    < боб
         класс =" org.springframework.web.servlet.handler.SimpleUrlHandlerMapping "> 
        <недвижимость имя = "urlMap"> 
            <реквизит> 
                <проп ключ = "/ test.do"> simpleConrol </ проп> 
            </ реквизит> 
        </ свойство> 
        <свойство имя = "перехватчики" реф = "myHandlerInterceptor"> </ недвижимость> 
    </ фасоль> 

    <! -控制器-> 
    <боб ID = "simpleConrol" класс = "контроль.SimpleControl «/> 

    <! - Execute адаптер -> 
    <боб класс= "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> 

    <! -资源解析器-> 
    <боб класс => "org.springframework.web.servlet.view.InternalResourceViewResolver" 
        <имя = "префикс свойство "значение =" / WEB-INF / страница / "/> 
        <свойство имя = "суффикс" значение =". JSP "/> 
        имя = <свойство "viewClass" значение =" org.springframework.web.servlet.view.JstlView "/> 
    </ боб> 
    
    <боб ID =" "myHandlerInterceptor класс = "interceptor.MyHandlerInterceptor"> </ фасоль> 
    
    <фасоль класс =" exceptionResolver.SimpleHandlerExceptionResolver "> </ фасоль> 
</ бобы>

Ниже приведены компоненты класса     

контроллер

импорт javax.servlet.http.HttpServletRequest;
импорт javax.servlet.http.HttpServletResponse; 

импорт org.springframework.web.servlet.ModelAndView;
импорт org.springframework.web.servlet.mvc.Controller; 

общественный  класс SimpleControl реализует контроллер { 

    общественного ModelAndView handleRequest (HttpServletRequest запрос, HttpServletResponse ответ) бросает исключение {
         INT а = 1/0 ; 
        ModelAndView мв = новый ModelAndView ( "тест" ); 
        mv.addObject ( «слово», «это тест слово» );
        вернуться мв; 
    } 

}

HandlerExceptionResolver

импорт javax.servlet.http.HttpServletRequest;
импорт javax.servlet.http.HttpServletResponse; 

импорт org.springframework.web.servlet.HandlerExceptionResolver;
импорт org.springframework.web.servlet.ModelAndView; 

общественный  класс SimpleHandlerExceptionResolver реализует HandlerExceptionResolver { 

    общественных ModelAndView resolveException (HttpServletRequest запрос, HttpServletResponse ответ, обработчик объекта, исключение ех) { 
        ModelAndView мв = новый ModelAndView ( "ошибка" );
        вернуться мв; 
    } 

}

HandlerInterceptor

импорт javax.servlet.http.HttpServletRequest;
импорт javax.servlet.http.HttpServletResponse; 

импорт org.springframework.web.servlet.HandlerInterceptor;
импорт org.springframework.web.servlet.ModelAndView; 

общественный  класс MyHandlerInterceptor реализует HandlerInterceptor { 

    общественного  логический preHandle (HttpServletRequest запрос, HttpServletResponse ответ, обработчик объекта) бросает исключение { 
        System.out.println ( "это MyHandlerInterceptor preHandle" );
        вернуться  верно ; 
    } 

    Общественного  недействительнымиpostHandle (HttpServletRequest запрос, HttpServletResponse ответ, обработчик объекта, ModelAndView ModelAndView) бросает исключение { 
        System.out.println ( "это MyHandlerInterceptor postHandle" ); 
    } 

    Общественного  недействительными afterCompletion (HttpServletRequest запрос, HttpServletResponse ответ, обработчик объекта, исключение ех) бросает исключение { 
        System.out.println ( "это MyHandlerInterceptor afterCompletion" ); 
    } 

}

Может быть также специальное исключение, специальный код возврата возвращается, когда возвращенный Выборочная исключение

импорт org.springframework.http.HttpStatus;
импорт org.springframework.web.bind.annotation.ResponseStatus; 

@ResponseStatus (код = HttpStatus.INTERNAL_SERVER_ERROR, причина = "это MyException" )
 общественный  класс MyException распространяется исключение { 

    частный  статический  окончательный  длинный serialVersionUID = 1L ; 

}

 

 

 

 

Обычно конфигурируется, чтобы взять на себя

<? XML версия = "1,0" кодировка = "GBK"?> 
<бобы Xmlns = "http://www.springframework.org/schema/beans" 
       XMLNS: XSI = "http://www.w3.org/2001 / XMLSchema инстанции " 
       Xmlns: контекст = "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 
       HTTP: // www.springframework .org / схема / контекст / весна-контекст.XSD 
       HTTP: //www.springframework.org/schema/mvc 
       HTTP: // www.springframework.org/schema/mvc/spring-mvc.xsd ">
 
    <контекст: компонент-сканирования base- пакет =" com.tuling.mvc.control "/ > 

    <! -注解驱动-> 
    <MVC: аннотация привода /> 

    <! -视图仓库-> 
    <боб класс = "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <имя свойства =» приставка "значение = "/ WEB-INF / страница /"/> 
        имя = <свойство "" значение =" суффикс. JSP "/> 
        имя = <свойство" "viewClass 
                  значение =" org.springframework.web.servlet.view.JstlView "/> 
    </ фасоль> 

</ бобы>

 

рекомендация

отwww.cnblogs.com/codefeng/p/10988737.html