如何搭建一个简单的SpringMVC框架呢?
1.安装sts插件
首先安装需要的工具插件是必不可少的,就不详细讲了。
下载地址:http://spring.io/tools/sts/all
2.创建项目
新建一个Dynamic Web Project项目,下面的Dynamic web module cersion要选择2.5,项目创建完成。
3.引入相关的jar包
插件安装好后,引入相关的jar包(下图)。
下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
4.建立source folder
原本的java文件存储的地方src不太规范,因此,我们要删除这个,然后新建四个source folder,
src/test/java src/test/resource src/main/java src/main/resource ,他们依此存放测试java代码,测试资源,项目java代码,项目资源。
5.创建application.xml文件
在src/main/resource中新建一个文件
命名为application.xml
然后点击next,勾选第二项 beans,点击finish即完成。
6.配置web.xml文件
为了进行web编程,需对web.xml文件进行配置,打开web.xml文件
在标签内写入如下代码
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application.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>
配置完成
7.配置application.xml文件
接下来我们想要享受到框架带来的好处,就需要对application.xml文件进行配置,打开文件,点击下方的Namespaces,勾选中 beans ,context 和 mvc 。
接着再点击下方的source,在< beans>< /beans>标签最下方写上:
<!-- 1 -->
<context:component-scan base-package="com.jd"></context:component-scan>
<!-- 2 -->
<mvc:default-servlet-handler/>
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 3 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
代码1是为了扫描某个包里的所有类,这里用的包名是com.jd,讲它改成你的包名,为它们创建对象,但是这些类要加上@Controller,@Service等注解才能成功。
代码2是为了在对服务器进行访问时若在框架中没有找不到这个servlet,使用服务器默认的servlet去响应。
代码3是之后还会用到,先不说。
8.简单使用框架
到这里,我们框架的搭建基本就已经完成了,接下来,我们要进行实验,检验是否搭建完成。
我们知道,一般网页打开的第一个页面都是index.html或者index.jsp,而项目中最安全的地方是在WEB-INF目录,因此我们要把比较重要的登陆界面放在这个目录下面,那么,我们怎么能从index.jsp页面跳转到在安全目录WEB-INF中的登陆页面login.jsp呢,这就是我们想要实现的功能。
首先新建一个index.jsp,在WEB-INF目录中新建一个view文件夹,这里面放的都是需要安全性的web页面,在文件夹中新建login.jsp,为了区分页面,在页面body标签中分别写上index,login。
接着我们需要写一个class,这个文件能够处理从index界面发来的请求,从而跳转到login页面。
新建一个class,包名要在你刚才扫描的那个包里面,这么才能够扫描到并创建对象,我的项目扫描的包名是 com.jd ,因此包名就叫 com.jd.index,类名叫 Index 。
<context:component-scan base-package="com.jd"></context:component-scan>
打开 Index 类,写上如下代码:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class Index {
@RequestMapping("/index/index.do")
String index() {
return "login";
}
}
类注解@Controller是为了被扫描到创建对象,而方法注解@RequestMapping是为了在接收到一个请求时运行,也就是说,当请求名字与这个字符串一样时,这个方法才会被调用,而为什么return内容要这么写,则要用到前面的配置内容了。
<!-- 3 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
发现没有,代码中共有两个value,我们把我们的返回值字符串放中间,是不是恰好能够拼接成一个完整的地址呢,而这个地址,恰好就是我们要跳转的地址:/WEB-INF/view/login.jsp
这种跳转方式使用的是请求转发,因为可以访问安全目录中的页面,那么这个方法返回值的意思就是直接跳转到这个页面。
之后我们在index.jsp中写入如下js代码,作用是能够请求这个servlet,服务器如果匹配到,即执行上面的index函数,最后跳转到login页面。
<script type="text/javascript">
location.href="./index/index.do";
</script>
做完后我们再来捋一捋大致的思路:
首先服务器运行后,已经扫描了com.jd内的所有类,为加有特点注解的类创建了对象,我们所写的Index类也是如此。
接着当我们访问网页时,会跳转到默认页面index.jsp,而后,立刻执行里面的js代码,向服务器发送请求。
服务器寻找是否有匹配的,找到了Index类中的index方法,开始执行index方法。
方法返回字符串形式,由于前面的配置代码3,为其加上前缀及后缀,组成一个地址,以重定向的方式跳转到login页面。
功能实现。
最后我们就可以运行servers来检验我们是否搭建成功了呢~~~