zoukankan      html  css  js  c++  java
  • 基于xml配置springmvc案例

    基于xml配置springmvc案例

    1、方式一

    通过配置BeanNameUrlHandlerMapping(处理器映射器)和SimpleControllerHandlerAdapter(处理器适配器)实现

    1.1、配置web.xml

    <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>
        <!--加载springmvc配置文件-->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <!--指定控制器创建时间-->
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <!--配置编码过滤器-->
      <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <!--设置编码-->
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    </web-app>
    
    

    1.2、登录jsp

    webapp下

    <a href="${pageContext.servletContext.contextPath}/login">登录</a>
    

    1.3、主页jsp

    web-inf下的pages里面

    ${requestScope.statu}
    

    1.4、控制器

    package com.yl.controller;
    
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 登录控制器
     */
    public class LoginController implements Controller {
    
        @Override
        public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            ModelAndView modelAndView=new ModelAndView();
            modelAndView.addObject("statu","登录成功");
            modelAndView.setViewName("/WEB-INF/pages/index.jsp");
            return modelAndView;
        }
    }
    
    

    1.5、配置文件

    <?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">
    
        <!--配置登录控制器uri-->
        <bean name="/login" class="com.yl.controller.LoginController"></bean>
        <!-- 配置处理器映射器:找目标handler BeanNameUrlHandlerMapping:
        找目标handler的规则:根据beanName作为url地址来找 -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
        <!--配置处理器适配器:handler是否适配适合运行 SimpleControllerHandlerAdapter:
        判断是否适合运行此handler的条件:此目标handler必须实现Controller接口-->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
        <!--视图解释器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    </beans>
    

    2、方式二

    通过配置SimpleUrlHandlerMapping(处理器映射器)和HttpRequestHandlerAdapter(处理器适配器)实现

    2.1、配置web.xml

    同上

    2.2、登录jsp

    同上

    2.3、主页jsp

    同上

    2.4、控制器

    package com.yl.controller;
    
    
    import org.springframework.web.HttpRequestHandler;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.Controller;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * 登录控制器
     */
    public class LoginController implements HttpRequestHandler {
    
    
        @Override
        public void handleRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
           request.setAttribute("statu","登录成功");
           request.getRequestDispatcher("WEB-INF/pages/index.jsp").forward(request,response);
        }
    }
    

    2.5、配置文件

    <?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">
    
        <!--登录控制器-->
        <bean id="login" class="com.yl.controller.LoginController"></bean>
        <!--直接映射:路径与bean对象 -->
        <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
            <property name="mappings">
                <props>
                    <prop key="/login">login</prop>
                </props>
            </property>
        </bean>
        <!--配置handler,必须实现HttpRequestHandler接口-->
        <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter" />
        <!--视图解释器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
    </beans>
    
    记得快乐
  • 相关阅读:
    post和get区别
    https
    tcp/ip协议
    webpack与gulp的不同
    什么是webpack
    spring boot 输入参数统一校验
    spring boot++jpa+ mysql +maven
    Intellij IDEA 2018.2.2 SpringBoot热启动 (Maven)
    git 从远程仓克隆到本地新分支
    ASP.NET MVC 自动模型验证
  • 原文地址:https://www.cnblogs.com/Y-wee/p/13842164.html
Copyright © 2011-2022 走看看