Eclipse+Spring从头学到脚之2-最基础篇

10 篇文章 0 订阅
5 篇文章 0 订阅

开始进入新的学习之前,先回顾一下“上堂课”,
之前主要学了eclipse的使用方法,以及做了一个最最简单的WEB项目,
并初步接触了WEB项目中的核心文件web.xml。

今天,我们开始新的旅程,并隆重推出另一个主角spring~~~

首先,下载spring,
地址是http://sourceforge.net/project/showfiles.php?group_id=73357&package_id=173644&release_id=608794
推荐下载spring-framework-2.5.5-with-dependencies.zip文件,解压缩到eclipse的同级目录,这是我的习惯,你也可以任意。
这样spring的全路径是D:/StudySpring/spring-framework-2.5.5。

讲到这里,再次说一下本教程的内容的来源,这些例子都是spring官方的,都在D:/StudySpring/spring-framework-2.5.5/docs/MVC-step-by-step文件夹下,这个文件夹下是最基本的spring讲解,大家嫌我罗嗦的话,也可以直接看原版的。

ok,接下来要学习的例子,是在我们第一个spring001项目的基础上修改的,所以不用新建项目,直接打开“上堂课”的spring001即可,这里强烈建议备份一下之前的成果物,免得没地方后悔,呵呵~~~,我也顺便说一下,eclipse的备份方法。
首先,在spring001上鼠标右键,在弹出菜单里选择Export->Export,如下图所示
2-1


在接下来的对话框里选择General->File System,选好后点击“Next”按钮
2-2

在接下来的对话框里,选择你要导出的spring001项目,以及选择好你要导出到的位置,
然后就可以点击“Finish”按钮来导出项目文件,我的选择如下图所示。
2-3

备份好以后,就可以开始我们新的旅程,这里多说一句,建议大家把每个阶段的成果物保留一份,
一来可以起到备份的作用,
二来可以起到对比的作用,体会一下每次变更的意义。

首先,修改web.xml,修改后的内容如下,大家可以参照对比一下修改前后的内容差别

     
     
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3.          xmlns="http://java.sun.com/xml/ns/j2ee"
  4.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6.          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
  7.   <servlet>
  8.     <servlet-name>springapp</servlet-name>
  9.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  10.     <load-on-startup>1</load-on-startup>
  11.   </servlet>
  12.   <servlet-mapping>
  13.     <servlet-name>springapp</servlet-name>
  14.     <url-pattern>*.htm</url-pattern>
  15.   </servlet-mapping>
  16.   <welcome-file-list>
  17.     <welcome-file>
  18.       index.jsp
  19.     </welcome-file>
  20.   </welcome-file-list>
  21. </web-app>

重点如下:
①define a DispatcherServlet (also known as a 'Front Controller').
It is going to control where all our requests are routed based on information we will enter at a later point.
②This servlet definition also has an attendant entry that maps to the URL patterns that we will be using. We have decided to let any URL with an '.htm' extension be routed to the 'springapp' servlet (the DispatcherServlet).

虽然我的english is very poor,但是为了稍微和国际接一点点轨,还是强迫自己看些英文,而且觉得看英文有时候比看中文能够理解的快些~~

接下来,再介绍一个重要文件给大家,也是一个xml的配置文件,叫springapp-servlet.xml,我们把这个文件创建在WebContent/WEB-INF下面,也就是和web.xml在一起。文件内容如下

     
     
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans
  5.        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  6.   <!-- the application context definition for the springapp DispatcherServlet -->
  7.   <bean name="/hello.htm" class="springapp.web.HelloController"/>
  8. </beans>

重点如下:
①This file contains the bean definitions (plain old Java objects) used by the DispatcherServlet. It is the WebApplicationContext where all web-related components go.
The name of this file is determined by the value of the element from the 'web.xml', with '-servlet' appended to it (hence 'springapp-servlet.xml'). This is the standard naming convention used with Spring's Web MVC framework.
③Now, add a bean entry named '/hello.htm' and specify the class as springapp.web.HelloController. This defines the controller that our application will be using to service a request with the corresponding URL mapping of '/hello.htm'.
④The Spring Web MVC framework uses an implementation class of the interface called HandlerMapping to define the mapping between a request URL and the object that is going to handle that request (the handler).

接下来,要拷贝一些即将用到的jar包,具体如下
①D:/StudySpring/spring-framework-2.5.5/dist下的spring.jar
②D:/StudySpring/spring-framework-2.5.5/dist/modules下的spring-webmvc.jar
③D:/StudySpring/spring-framework-2.5.5/lib/jakarta-commons下面的commons-logging.jar
⑤D:/StudySpring/apache-tomcat-6.0.18/lib下面的servlet-api.jar

把上述的jar包文件,拷贝到spring001项目下的WebContent/WEB-INF/lib下面。
如你的路径和我不一样,请对应到自己的路径

下面,要出场的更是一个重量级的宝贝—Controller(控制器),可以说这是spring的指挥中心,这个控制器体现在我们的项目中是一个java文件。
我们来新建一个
HelloController.java文件,
创建之前,我们要创建好package,名字是springapp.web,
创建package的方法如下,个人习惯是,先把eclips的视图切换到“java”模式下,切换的方法是选择菜单Window->Open Perspective->Java,如下图所示
2-4

切换好后,会发现在spring001下有一个“src”的节点,鼠标右键它,在弹出菜单里选择New->Package,如下图所示
2-5

在弹出窗口里,填入要创建的package名称,这里我填写springapp.web,意思是创建两个package,一个叫springapp,一个叫web,后者是前者的子package,如下图所示
2-6 

点击“Finish”按钮来结束创建package的工作。

接下来是,创建控制器---HelloController.java,
创建在刚才创建的springapp的web的下面,
创建方法是,鼠标右键springapp.web,在弹出菜单里选择New->Class,如下图所示
2-7

在弹出的窗口里,只需在name对应的文本框里输入HelloController,输好后点击“Finish”按钮。如下图所示
2-8 

HelloController.java的代码内容如下

     
     
  1. package springapp.web;
  2. import org.springframework.web.servlet.mvc.Controller;
  3. import org.springframework.web.servlet.ModelAndView;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import org.apache.commons.logging.Log;
  8. import org.apache.commons.logging.LogFactory;
  9. import java.io.IOException;
  10. public class HelloController implements Controller {
  11.     protected final Log logger = LogFactory.getLog(getClass());
  12.     public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
  13.             throws ServletException, IOException {
  14.         logger.info("Returning hello view");
  15.         return new ModelAndView("hello.jsp");
  16.     }
  17. }

接下来,我们还要创建一个view(视图),在WebContent下面创建一个hello.jsp文件,内容如下,创建方法就不说了,不会的,可以参考前面的章节。

     
     
  1. <html>
  2.   <head><title>Hello :: Spring Application</title></head>
  3.   <body>
  4.     <h1>Hello - Spring Application</h1>
  5.     <p>Greetings.</p>
  6.   </body>
  7. </html>

ok,到此为止,就完成了这个阶段的修改任务,接下来就可以启动这个项目,来验证我们的成果,在eclipse里,启动项目,启动方法参考前面的章节,如果没有问题的话,你会得到下面的画面
2-9
咦,这不是上个练习的页面吗~~~~¥%¥¥%,没错,这是因为eclipse启动后默认的页面,但不是我们要测试的页面,或者说本次练习没有使用到index.jsp,我们可以在地址栏里直接追加上hello.html,即为http://localhost:8080/spring001/hello.html,也可以在IE的地址栏里输入http://localhost:8080/spring001/hello.html,会得到下面的页面 
2-10

总结一下,重点

1:web.xml里增加的内容

2:springapp-servlet.xml(这个名字的来由和代码内容同样重要哦~~)

3;控制器-controller

4:视图-view


 
END
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【2021年,将Spring全家桶的课程进行Review,确保不再有课程的顺序错乱,从而导致学员看不懂。进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并开始加入高阶Spring Security等内容,一步步手把手教你从零开始学会应用Spring,课件将逐步进行上传,敬请期待!】 本课程是Spring全家桶系列课程的第三部分Spring Boot,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Spring Boot核心知识点:整合Web(如:JSP、Thymeleaf、freemarker等的整合)的开发、全局异常处理、配置文件的配置访问、多环境的配置文件设置、日志Logback及slf4j的使用、国际化设置及使用, 并在最后以一个贯穿前后台的Spring Boot整合Mybatis的案例为终奖,使大家快速掌握Spring的核心知识,快速上手,为面试、工作都做好充足的准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,建议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。 【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验  【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值