写博客的原因:
<1>Struts1和Struts2用起来比较麻烦,所以研究一下springMVC
<2>最近市场上用springMVC这个框架比较多
<3>学习心得,交流,共享
大纲:
<1>SpringMVC都做了些什么事情?
<2>SpringMVC的核心组件
<3>SpringMVC流程
<4>第一个SpringMVC应用程序:hello springmvc【配置文件的方式】
1、Spring MVC都做了写什么事情
<1>Controller为中心完成对系统流程的控制管理
<2>从请求中搜集数据
<3>对传入的参数进行验证
<4>将结果返回给视图
<5>针对不同的视图提供不同的解决方案
<6>针对jsp视图技术提供标签库
<7>拦截器
<8>文件上传
2、SpringMVC的核心组件
<1>DispatcherServlet--->类似Struts2中的dispatcherFilter,还有Struts1中的ActionServlet
<2>*Controller---->具体的action
<3>HandlerMapping---->映射处理器(负责映射中央处理器转发给controller时的映射策略)
<4>*ModelAndView:--->服务层返回的数据和视图层的封装类
<5>ViewResolver & View:--->视图解析器,解析具体的视图
<6>*interceptors:--->拦截器,负责拦截我们定义的请求,然后做处理工作
3、SpringMVC流程
<4>第一个SpringMVC应用程序:hello springmvc
工程的目录结构为:
步骤:
<1>创建web工程
<2>导包,如下图:
<3>配置中央处理器类DispatcherServlet(在web.xml文件中)
<span style="white-space:pre"> </span><servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>DispatcherServlet全限定名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<4>编写controller类:类似action【自定义类继承AbstractController】,eg:
//自定义类继承AbstractController
public class TestController extends AbstractController{
<span style="white-space:pre"> </span>//重写<span style="font-family: 'Microsoft YaHei';">handleRequestInternal方法</span>
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("hello springmvc");
return new ModelAndView("index");
}
}
<5>新建Springmvc的核心配置文件,配置文件默认的命名规则为:中央处理器(servlet的名称)+"-servlet.xml",eg:springmvc-servlet.xml;注意:默认位置是在WEB-INF下
配置文件的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
">
<!-- 配置controller:注意此处的name="/hello.do"将要为在页面上访问的地址 -->
<bean id="testControll" class="com.snail.controller.TestController" name="/hello.do"></bean>
</bean>
<!--配置ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置前缀 -->
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
<6>发布到Tomcat,在页面上输入http://localhost:8080/s3_springmvc_01/hello.do
将在后台打印:hello springmvc