1.1 HelloWorld
1.1.1 添加jar包
学习SpringMVC,首先我们从一个HelloWorld入手,从宏观的角度了解springMVC的运行机制,把脉络理清了,然后我们再去看细节。下面我们就来写一个helloWorld,当然这种例子在百度一搜一大把,我的和他们的都差不多。首先,我们来看搭建一个springMVC的框架需要什么样的jar包,spring的jar比较多,但每个jar都有各自的功能,我简单总结了一下,分了分类:
目前我们讲解的是SpringMVC ,其他的像AOP方面的知识我们暂时不讲,所以我们没有将其他包加进来,只是加了springMVC相关的。
1.1.2 修改web.xml文件
当我们创建好一个web项目后,然后把jar包添加到了classpath目录,下面我们就要修改我们的web.xml文件,将springMVC用于处理请求转发的servlet给写上,这样才能帮助我们将我们的请求交给spring容器去管理,配置如下:
从配置文件中,我们可以看到除了配置了必要的DispatcherServlet以外,我们还配置了spring的配置文件的所在目录为WEB-INF下的applicationContext.xml,该servlet对所有以.html结尾的请求进行拦截。
1.1.3 添加applicationContext.xml文件
ApplicationContext.xml是spring的核心配置文件,现在我们在里面配置的主要是关于springMVC相关的定义。内容如下:
我们暂且不必知道具体的配置内容代表什么,在第二章中我们会细致讲解每一个类和接口的作用,在配置文件中,我们添加了组件扫描策略:
<context:component-scan base-package="com.itcast.spring"></context:component-scan>
表示spring容器启动后会自动的扫描com.itcast.spring包下的所有注解,并将相关配置信息加载到上下文中。我们定义了一个Bean对象 id为viewResolver,它是spring自带的,用于结果视图展示的解析类。其中属性prefix表示结果视图转向的路径而suffix代表以.jsp结尾的文件,至于什么文件是在具体的Controller类(控制器)中通过注解定义的。
1.1.4 编写控制器Controller
控制器代码也很简单,我们主要使用了注解,目前也不需要太深究,我们大概知道这个控制器中的helloworld方法,只有当请求url为hello时才会触发,因为有注解@RequestMapping起作用,而方法最后返回的ModelAndView中的第一个参数hello,代表了结果视图的名字,综合上述的配置文件我们可以得出结论是:当前端发送hello.html请求时,会跳转到此控制器中,控制器将跳转至hello.jsp页面中并携带参数message。
1.1.5 执行测试
下面我们将此web项目加载到tomcat中,访问springmvc的index.jsp页面,该页面中有一个index.html的超链接,当我们点击这个超级链接的时候,会被控制器处理,然后返回到我们的index.jsp页面,并输出message,我们通过断点跟一下:
点击进入,进入了helloController控制器,在控制器中处理逻辑,处理完成后,跳转到目标页面,将信息写入到页面中: