Spring MVC 学习笔记一 HelloWorld

Spring MVC 的使用可以按照以下步骤进行(使用Eclipse):

  1. 加入JAR包
  2. 在web.xml中配置DispatcherServlet
  3. 加入Spring MVC的配置文件
  4. 编写处理请求的处理器,并添加对应注解
  5. 编写视图

下面按照国际惯例先来一个HelloWorld,在新建项目前最好是在Eclipse中安装一个名叫Spring IDE的插件,它会在你以后进行Spring相关开发中提供诸多便捷功能。新建一个Dynamic Web Project。

点击两次Next,来到向导的第三个界面上,选中红框中的复选框。这个选项是用来生成web.xml文件的,也可以在第一个界面中直接点击Finish而不生成web.xml,在Eclipse将项目文件和目录生成以后自己手动添加(能生成还是直接生成吧!费那劲干啥!:) )

项目生成以后就是下面这个样子:

下面开始Spring MVC的使用:

1、加入JAR包,需要以下JAR包:

commons-logging-1.2.jar
spring-aop-4.3.2.RELEASE.jar
spring-beans-4.3.2.RELEASE.jar
spring-context-4.3.2.RELEASE.jar
spring-core-4.3.2.RELEASE.jar
spring-expression-4.3.2.RELEASE.jar
spring-web-4.3.2.RELEASE.jar
spring-webmvc-4.3.2.RELEASE.jar

Spring Framework我使用的是4.3.2的,也可以是其他4.x版本。其中commons-logging这个包不是Spring Framework中自带的,需要自己下载,这是Spring用来做日志的。

找到以上JAR包并复制(Ctrl+C),然后到Eclipse项目中WEB-INF下的lib目录上粘贴(Ctrl+V)就导入到项目中了,导入后就是下面这个样子。

2、配置web.xml

打开WEB-INF下的web.xml文件,自动生成的内容如下:

<?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"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>HelloWorld</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list>
</web-app>

我们把DispatcherServlet的配置写在<welcome-file-list>节点之后,如果你觉得这个<welcome-file-list>节点碍眼的话删了也可以。这里在配置DispatcherServlet的时候用到了Spring IDE的辅助功能:在XML文件的编辑区内按Alt + / 在弹出的列表中选择“dispatcherservlet - DispatcherServlet declaration”,会自动插入DispatcherServlet需要的配置信息,非常方便!

当你在列表中选择“dispatcherservlet - DispatcherServlet declaration”后生成的配置信息如下(未改动前):

<?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"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>HelloWorld</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- The front controller of this Spring Web application, responsible for handling all application requests --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>location</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!-- Map all requests to the DispatcherServlet for handling --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>url</url-pattern></servlet-mapping>
</web-app>

下面是修改后的实际配置

<?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"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>HelloWorld</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!-- 配置DispatcherServlet --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数:配置Spring MVC配置文件的位置和名称 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param><!-- load-on-startup 为 1,是指当Web App被加载时DispatcherServlet就会被创建,而不是在处理第一次请求时候 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><!-- / 表示响应所有请求 --><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

3、DispatcherServlet的配置写好了,但是我们还没有创建springmvc-config.xml这个配置文件,所以现在就创建它。在项目的src目录上点击右键,选择New--Other打开新建对话框,做如下选择:

生成的springmvc-config.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"></beans>

在继续配置之前我们先在src目录内创建一个包,这个包的名字就叫com.demo.controller(你可以取一个你认为合适的包名称!),然后继续配置springmvc-config.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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"><!-- 配置自动扫描的包 --><context:component-scan base-package="com.demo.controller"></context:component-scan><!-- 配置视图解析器 把Controller方法返回的视图解析为实际视图 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/views/"></property><!-- 后缀 --><property name="suffix" value=".jsp"></property></bean>
</beans>

4、编写处理请求的处理器,并添加对应注解

现在我们创建用于响应请求的Controller,在刚才新建的包内创建HelloWorld类,IDE会生成HelloWorld.java,这个就是我们的Controller的源码文件。我们在这个文件中添加响应请求的方法并添加注解。完成后如下:

package com.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;//使用Controller注解使之成为可以响应请求的控制器
@Controller
public class HelloWorld {/*** 使用RequestMapping注解映射要响应的URL* 该方法的返回值会被视图解析器解析为实际物理视图* 通过我们配置的视图解析器(InternalResourceViewResolver)解析后的实际视图为:前缀 + returnValue + 后缀* 结合我们的Spring MVC配置文件中配置的前缀和后缀组合起来就是:/WEB-INF/views/welcome.jsp*/@RequestMapping("/helloworld")public String hello() {//打印一句话我们将在控制台中看到,不会显示到页面上System.out.println("Hello World");return "welcome";}
}

有了Controller我们还需要一个视图,也就是我们在public String hello()这个方法中返回的welcome这个视图,在项目的WEB-INF目录上点右键选择New--Folder新建一个目录(我们配置的视图的前缀“/WEB-INF/views/”,是WEB-INF目录下的views目录),在这个新建的目录上点右键选择New--JSP File新建一个叫welcome的JSP文件,也就是我们的视图文件。

在这这个视图文件中添加点内容,让它看起来像那回事儿!

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>hello world</title>
</head>
<body><h2>Hello World</h2>
</body>
</html>

需要准备的东西都差不多,现在写一个页面来测试一下我们的Hello World是否可以正常工作。在WebContent目录下新建一个JSP文件,名字随便,我这里叫index.jsp,写个超链接来访问我们在HelloWorld这个Controller里映射的URL。

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body><!-- 访问我们映射的URL -->访问<a href="helloworld">helloworld</a>
</body>
</html>

好了,现在在这个index.jsp文件上点右键,选择Run As --- Run on Server(或者使用快捷键:Alt+Shift+X R),如果之前没有配置服务器则会出现下面第一个窗口让你先配置一个服务器,配置好以后第二次使用Run As --- Run on Server时就是下面第二个窗口的界面了,直接点Finish即可。

(我本机上安装的是Tomcat7,所以选择Tomcat v7.0 Server,如果你安装的是Tomcat6或Tomcat8请选择对应的版本)

如不出什么意外我们应该能看到下面的界面:

上面就是index.jsp页面,点击页面上的那个超链接就可以跳转到下面的页面(我们的welcome视图):

到这里我们的helloworld就完成了,这是最基础的Spring MVC的应用,能成功完成就算是有个好的开始了。

最后贴一张整个项目的目录结构

转载于:https://www.cnblogs.com/huixch/p/5854976.html

Spring MVC 学习笔记一 HelloWorld相关推荐

  1. Spring MVC 学习笔记 对locale和theme的支持

    Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...

  2. Spring MVC 学习笔记(整理)

    SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...

  3. Spring MVC 学习笔记 json格式的输入和输出

    Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --><depe ...

  4. Spring MVC学习笔记——SiteMesh的使用(转)

    转自 SiteMesh的使用 SiteMesh的介绍就不多说了,主要是用来统一页面风格,减少重复编码的. 它定义了一个过滤器,然后把页面都加上统一的头部和底部. 需要先在WEB-INF/lib下引入s ...

  5. Spring MVC学习笔记(七)

    2019独角兽企业重金招聘Python工程师标准>>> 配置Spring MVC <?xml version="1.0" encoding="UT ...

  6. Spring MVC学习笔记

    文章目录 创建一个servlet项目 导入依赖 添加Web框架 编写Servlet 注册这个servlet 编写跳转页面 配置Tomcat 第一个Spring MVC程序 1. web.xml的配置 ...

  7. 【Spring MVC学习笔记 六】SpringMVC框架整合AJAX完成局部刷新

    本篇Blog介绍另一个常用的技术Ajax.虽然Ajax可以脱离SpringMVC去使用,但是SpringMVC对AJax有更好的支持 AJAX概念概述 AJAX即Asynchronous Javasc ...

  8. Spring MVC学习笔记——POJO和DispatcherServlet

    POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称. 使用POJO名称是为了避免和EJB(Enter ...

  9. Spring Boot学习笔记-基础(2)

    Spring Boot学习笔记-基础(2) Spring Boot 优点: – 快速创建独立运行的Spring项目以及与主流框架集成 – 使用嵌入式的Servlet容器,应用无需打成WAR包 – st ...

最新文章

  1. mfc 如何判断excel软件是否打开_教你windows如何关闭假死窗口,了解自己使用的电脑。...
  2. Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)
  3. linux装nginx
  4. 添加功能与测试点总结
  5. Win7 Ubuntu13.04互通(win7下用vbox安装Ubuntu)
  6. linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
  7. 创业,“玩”的就是心态
  8. ios图片剪切之圆形头像
  9. 一键报警(IP对讲)
  10. 使用Alize等工具构建说话人识别平台
  11. RRT、RRTConnect、RRT*——Matlab算法
  12. 操作系统内核Hack:(二)底层编程基础
  13. http://localhost:8080打不开
  14. 哈希取模余的基底为什么要选择素数?
  15. Java医院管理系统(his)源码免费分享
  16. redis cluster C 客户端
  17. Linux warning
  18. MySQL从删库到跑路(三)——SQL语言
  19. VxWorks启动过程具体解释
  20. el-select 下拉框自定义背景颜色

热门文章

  1. c 语言栈,C语言栈
  2. 二阶自回归过程matlab,时间序列分析:二阶自回归过程
  3. 独占线程太多怎么办_电脑内存被占用太多怎么办?
  4. android开发 apk文件,android开发中,将数据库文件与APK一起发布?
  5. c语言volatile关键字的作用是什么?
  6. c语言万年历附加功能,万年历(c语言,多功能).doc
  7. python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...
  8. 【C】printf按8进制、10进制、16进制输出以及高位补0
  9. 【渝粤教育】 国家开放大学2020年春季 1167环境水利学 参考试题
  10. Latex中定理、引理、证明、假设、空白行