感觉非注解方式不好用,但是还是得掌握,面试的时候可能会问到相关的
1. 新建web项目
2. 导入核心jar包
spring-beans.jar
spring-context.jar
spring-core.jar
spring-expression.jar
spring-aop.jar
【spring-web.jar
spring-webmvc.jar】
需导入依赖包:
commons-logging.jar
aopalliance.jar
aspectjweaver.jar
3.在src路径下新建springMVC核心配置文档spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
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-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd">
</beans>
4.在web.xml中配置前端控制器DispatcherServlet
<!-- spring前端控制器DispatcherServlet:负责接收所有的请求与响应 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 第一发起请求时,解析spring-mvc.xml配置文件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern><!-- 匹配所有以.action 结尾的请求,该类型请求才交给spingMVC来处理 -->
</servlet-mapping>
5.在src的spring-mvc.xml中配置springMVC的处理器映射器、处理器适配器、视图解析器
这里是非注解方式配置处理器映射器、处理器适配器
<!-- 1.【非注解】处理器映射器:根据url请求查找处理器(方法),xxxHandlerMapping -->
<!-- 方式①:BeanNameUrlHandlerMapping 根据bean的name属性值匹配url请求路径 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 3.【非注解】处理器适配器:根据指定规则执行处理器(调用方法),xxxHandlerAdapter -->
<!-- 方式①: SimpleControllerHandlerAdapter 适配执行所有实现了Controller接口的类 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
这里是注解方式处理处理器映射器和处理器适配器
<!-- 1.可替换步骤1、3中的处理器映射器、适配器配置步骤 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 4.视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
6.自定义处理器,实现Controller接口,并提供具体实现
public class HelloController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView mav = new ModelAndView();
//相当于request.setAttribute("name","value");
mav.addObject("message", "恭喜你,创建springmvc的环境成功!!!");
//指定跳转的页面路径:相当于request.getRequestDispatcher("/main.jsp").forward(request,response);
mav.setViewName("/main.jsp");
return mav;
}
}
7.在src的spring-mvc.xml中配置springMVC的处理器
首先是非注解方式,就是说你加一个处理器就要配一个bean,不方便
<!-- 2.处理器 -->
<bean name="/hello.action" class="com.neuedu.controller.HelloController"></bean>
这里是注解方式,把所有的组件都扫描
<!-- 组件批量扫描,替换步骤2: 专门负责自动扫描@Component, @Repository, @Service, and @Controller注解修饰的类-->
<context:component-scan base-package="com.neuedu.controller"></context:component-scan>
8.定义main.jsp视图
${message}
9.测试
<!--http://localhost:8080/springMVC_00_noannotation/hello.action-->
<a href="hello.action">点击测试springMVC环境搭建</a><br/><br/>