基于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>