Spring MVC 入门 - 框架搭建
2015-02-09 22:47
253 查看
感觉网上从环境搭建讲起的教程不多,好多示例也比较复杂,而且也没个图啥的,所以就上一个简单易懂的版本。
有多简单捏?从eclipse建立工程开始,结束后作出一个可以响应请求的Servlet。
在这个文章里面,我们需要 -
建立一个eclipse工程;
编写两个xml;
编写两个jsp页面;
编写一个Java文件。
准备工作 -
Eclipse J2EE版本;
Tomcat 一只;
注:所有斜体字代表-文件名,类名,变量名等可替换内容。
第一步:
使用Eclipse建立动态网页工程。
输入项目名字,点击下一步。
点击下一步。
选上生成web.xml然后点击完成。
创建/WebContent/WEB-INF/Views目录,用于存放JSP网页
创建两个空页面,Index.jsp和hello.jsp。
在Java resources 中创建Java包 bob.sun.controller。
在包中创建一个空的IndexController类
在/WebContent/WEB-INF/中创建springtest-servlet.xml文件。
工程的源码树应该如下图所示:
第二步:
复制Jar包。
在Spring MVC 框架中,框架依赖的Jar包不能像其他Java工程那样在BuildPath里面添加。
添加Jar包需要直接拷贝jar文件到/WebContent/WEB-INF/lib。
Spring MVC依赖于以下的几个包包。
拷贝完了之后在工程树那边右键刷新下工程。
第三步:
打开/WebContent/WEB-INF/web.xml,参照下面的code编辑:
其中,
<welcome-file-list>指定了整个servlet的首页,这里我们定义为index.jsp。
<servlet>定义了servlet以及所使用的类。由于我们使用的是SpringMVC,所以servlet的类指定到spring的DispatcherServlet。
<servlet-mapping>中的<url-pattern>指定了所有“.do”的请求都由我们刚刚定义的springtest来处理。可以理解为把所有的".do"请求过滤出来交给springtest这个servlet。
第四步:
Spring MVC 框架需要一个上下文配置文件。如果在web.xml中没有定义的话,Spring MVC就会搜素 /WEB-INF这个路径下有木有名字是" [servlet名字]-servlet.xml" 这样的一个配置。我们这里servlet的名字是springtest,那么默认的配置文件名是springtest-servlet.xml。刚才在web.xml中我们并没有指定配置文件是哪个,所以Spring会去自动的找springtest-servlet.xml。
其中,
<context:component-scan> 告诉Spring去哪个包扫描带有它注释的Java code。Spring的注释是什么呢?在下文的Java 代码里我们会看到。
为了简单起见,这个xxx-servlet.xml只有一个bean,指定了MVC中的V(iew)由哪个类去解析。prefix和suffix两个property指定了View的前缀和后缀。这样如果我们想在Java返回一个View,只需要返回View的名字即可。比如我们想要返回一个/WEB-INF/Views/hello.jsp,由于指定了前缀为/WEB-INF/View,后缀为.jsp,在java中我们只需要返回一个"hello"。
第五步:
编写JSP
index.jsp长这样:
<a href="hello.do">,当用户点击这个链接时,会向servlet发送一个hello.do的动作。根据我们在web.xml中的定义,"*.do"会交给我们的springtest servlet 处理。
hello.jsp 长这个样子:
值得注意的是,这时在首页中点击hello.do的链接并不会直接跳转到这个页面,因为我们还没有编写Controller。
那么 -
第六步:
编写Java code。
bob.sun.controller.IndexController.java:
是的你没看错在这个例子中Java code 就是这么简单。
其中 -
@Controller 这是一个Spring框架的注释,出现在类前面。它表明整个类都是Spring中的C(ontroller)。Controller用于控制View,填充View的数据等。
@RequestMapping("xxx") 这也是一个Spring框架的注释,出现在方法前面,表明这个方法是响应xxx请求的。你也可以在后面加上Http的方法。有关这部分的详情会放在下一篇文章之中。
由于Controller用于控制View,所以这个方法的结尾我返回了一个ModelAndView对象。这个类的构造函数可以接受三个参数。
第一个参数的是一个字符串,表明返回的是哪一个View。你可以返回View的全路径(/WEB-INF/Views/xxx.jsp)。由于我们之前在servlet的配置文件中指定了View的前缀和后缀,所以这里我们只返回View的名字。
如果用两个参数构造这个对象,那么第二个参数为一个Map,包含了传给View的键值对,可以在JSP中调用。
如果用三个参数构造,那么第二个参数就是传给View的参数名称,第三个则是参数的值。
所有的代码就是这些。剩下的步骤是配置一个tomcat server。
第七步:
在Eclipse里面配置tomcat是很简单的。按照下面的图示一步一步来就可以。
首先选择将工程放在server 上 debug。
选择tomcat 7
选择tomcat的解压位置和jre。
配置工程,点击结束。
之后tomcat会启动,加载Servlet,显示我们的主页。点击主页上的链接,Controller会响应并返回View。
结束。
其实我也是刚入门,摸爬滚打两天总结出俩文档,又抽出来这么一个博客。
有好多东西没有说到。Spring的注释(@Component),参数传递(@RequestParam),Tiles,等,放到下次一并讲吧。
有多简单捏?从eclipse建立工程开始,结束后作出一个可以响应请求的Servlet。
在这个文章里面,我们需要 -
建立一个eclipse工程;
编写两个xml;
编写两个jsp页面;
编写一个Java文件。
准备工作 -
Eclipse J2EE版本;
Tomcat 一只;
注:所有斜体字代表-文件名,类名,变量名等可替换内容。
第一步:
使用Eclipse建立动态网页工程。
输入项目名字,点击下一步。
点击下一步。
选上生成web.xml然后点击完成。
创建/WebContent/WEB-INF/Views目录,用于存放JSP网页
创建两个空页面,Index.jsp和hello.jsp。
在Java resources 中创建Java包 bob.sun.controller。
在包中创建一个空的IndexController类
在/WebContent/WEB-INF/中创建springtest-servlet.xml文件。
工程的源码树应该如下图所示:
第二步:
复制Jar包。
在Spring MVC 框架中,框架依赖的Jar包不能像其他Java工程那样在BuildPath里面添加。
添加Jar包需要直接拷贝jar文件到/WebContent/WEB-INF/lib。
Spring MVC依赖于以下的几个包包。
拷贝完了之后在工程树那边右键刷新下工程。
第三步:
打开/WebContent/WEB-INF/web.xml,参照下面的code编辑:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>springtest</display-name> <welcome-file-list> <welcome-file>/WEB-INF/Views/index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>springtest</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springtest</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
其中,
<welcome-file-list>指定了整个servlet的首页,这里我们定义为index.jsp。
<servlet>定义了servlet以及所使用的类。由于我们使用的是SpringMVC,所以servlet的类指定到spring的DispatcherServlet。
<servlet-mapping>中的<url-pattern>指定了所有“.do”的请求都由我们刚刚定义的springtest来处理。可以理解为把所有的".do"请求过滤出来交给springtest这个servlet。
第四步:
Spring MVC 框架需要一个上下文配置文件。如果在web.xml中没有定义的话,Spring MVC就会搜素 /WEB-INF这个路径下有木有名字是" [servlet名字]-servlet.xml" 这样的一个配置。我们这里servlet的名字是springtest,那么默认的配置文件名是springtest-servlet.xml。刚才在web.xml中我们并没有指定配置文件是哪个,所以Spring会去自动的找springtest-servlet.xml。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:component-scan base-package="bob.sun.controller" /> <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/Views/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
其中,
<context:component-scan> 告诉Spring去哪个包扫描带有它注释的Java code。Spring的注释是什么呢?在下文的Java 代码里我们会看到。
为了简单起见,这个xxx-servlet.xml只有一个bean,指定了MVC中的V(iew)由哪个类去解析。prefix和suffix两个property指定了View的前缀和后缀。这样如果我们想在Java返回一个View,只需要返回View的名字即可。比如我们想要返回一个/WEB-INF/Views/hello.jsp,由于指定了前缀为/WEB-INF/View,后缀为.jsp,在java中我们只需要返回一个"hello"。
第五步:
编写JSP
index.jsp长这样:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Spring 3.0 MVC demo</title> </head> <body> <a href="hello.do">Say Hello</a> </body> </html>
<a href="hello.do">,当用户点击这个链接时,会向servlet发送一个hello.do的动作。根据我们在web.xml中的定义,"*.do"会交给我们的springtest servlet 处理。
hello.jsp 长这个样子:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>hello spring</h1> Just a simple printing. </body> </html>
值得注意的是,这时在首页中点击hello.do的链接并不会直接跳转到这个页面,因为我们还没有编写Controller。
那么 -
第六步:
编写Java code。
bob.sun.controller.IndexController.java:
package bob.sun.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class IndexController { @RequestMapping("/hello.do") public ModelAndView helloMethod(){ String ret = ".... you spring"; return new ModelAndView("hello","ret",ret); } }
是的你没看错在这个例子中Java code 就是这么简单。
其中 -
@Controller 这是一个Spring框架的注释,出现在类前面。它表明整个类都是Spring中的C(ontroller)。Controller用于控制View,填充View的数据等。
@RequestMapping("xxx") 这也是一个Spring框架的注释,出现在方法前面,表明这个方法是响应xxx请求的。你也可以在后面加上Http的方法。有关这部分的详情会放在下一篇文章之中。
由于Controller用于控制View,所以这个方法的结尾我返回了一个ModelAndView对象。这个类的构造函数可以接受三个参数。
第一个参数的是一个字符串,表明返回的是哪一个View。你可以返回View的全路径(/WEB-INF/Views/xxx.jsp)。由于我们之前在servlet的配置文件中指定了View的前缀和后缀,所以这里我们只返回View的名字。
如果用两个参数构造这个对象,那么第二个参数为一个Map,包含了传给View的键值对,可以在JSP中调用。
如果用三个参数构造,那么第二个参数就是传给View的参数名称,第三个则是参数的值。
所有的代码就是这些。剩下的步骤是配置一个tomcat server。
第七步:
在Eclipse里面配置tomcat是很简单的。按照下面的图示一步一步来就可以。
首先选择将工程放在server 上 debug。
选择tomcat 7
选择tomcat的解压位置和jre。
配置工程,点击结束。
之后tomcat会启动,加载Servlet,显示我们的主页。点击主页上的链接,Controller会响应并返回View。
结束。
其实我也是刚入门,摸爬滚打两天总结出俩文档,又抽出来这么一个博客。
有好多东西没有说到。Spring的注释(@Component),参数传递(@RequestParam),Tiles,等,放到下次一并讲吧。
相关文章推荐
- Direct3D入门之框架的搭建
- JSON超级快速入门 后续 搭建REST框架技巧
- spring mvc 框架搭建及详解
- 1、Spring MVC框架搭建——基于注解方式
- spring mvc 框架搭建及详解
- Direct3D入门之框架的搭建
- spring mvc 框架搭建及详解
- Hibernate3框架的入门搭建
- spring mvc 框架搭建及详解
- spring学习(1)Spring MVC框架搭建
- 搭建一个spring mvc框架(一)
- spring mvc 框架搭建及详解
- struct hibernate spring 经典框架 搭建 入门实例
- django入门笔记2- 网站框架搭建
- Spring MVC 框架搭建及详解
- JSON 超级快速入门 完 搭建一个超级不规范的REST框架
- struct hibernate spring 经典框架 搭建 入门实例
- Spring MVC 框架搭建及详解
- Spring MVC 框架搭建及详解
- spring mvc 框架搭建及详解