基于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>
记得快乐
原文地址:https://www.cnblogs.com/Y-wee/p/13842164.html