SpringMVC实现简单跳转
一个servlet拦截所有请求
原生方式开发web项目中,web.xml中一般会有多个servlet的配置。而使用SpringMVC,配置一个拦截所有请求的配置(霸道),接下来就我们在springMVC下干活就可以了。
在web.xml中配置
<!-- 配置SpringMVC的前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 关联我们的配置文件 -->
<param-name>contextConfigLocation</param-name>
<!-- src下的springmvc.xml服务于SpringMVC,作用见后文 -->
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
SpringMVC xml配置文件
页面跳转的控制权交给了SpringMVC,为它添加一个配置文件,让它知道control方法位置等等信息
springmvc.xml
<!-- 开启扫描 -->
<context:component-scan base-package="com.bb.controller"></context:component-scan>
<!-- 开启SpringMVC注解 -->
<mvc:annotation-driven></mvc:annotation-driven>
简单的control方法
@RequestMapping("/add")
public ModelAndView add(){
ModelAndView mm = new ModelAndView();
mm.addObject("msg", "添加用户");
mm.setViewName("/User.jsp");
return mm;
}
就ok啦
不使用注解方式配置springmvc.xml的写法
<!-- 注册 处理器映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 注册 处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- 注册 UserController -->
<bean class="com.bb.controller.UserController" name="/abc"></bean>
处理器映射器 ,处理器适配器 我也不是很清楚。
control类及方法的写法
public class UserController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
ModelAndView mm = new ModelAndView();
mm.setViewName("/User.jsp");
System.out.println("-------------");
return mm;
}
}
项目打包 提取码:nu18
项目打包 提取码:7a6a