Spring MVC 学习笔记一 HelloWorld
Spring MVC 的使用可以按照以下步骤进行(使用Eclipse):
- 加入JAR包
- 在web.xml中配置DispatcherServlet
- 加入Spring MVC的配置文件
- 编写处理请求的处理器,并添加对应注解
- 编写视图
下面按照国际惯例先来一个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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://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的应用,能成功完成就算是有个好的开始了。
最后贴一张整个项目的目录结构
Spring MVC 学习笔记一 HelloWorld的更多相关文章
-
Spring MVC 学习笔记1 - First Helloworld by Eclipse【&; - java web 开发Tips集锦】
Spring MVC 学习笔记1 - First Helloworld by Eclipse reference:http://www.gontu.org 1. 下载 Spring freamwork ...
-
Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
-
Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
-
Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息
</pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...
-
Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息
Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...
-
Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录
Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...
-
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
-
Spring MVC 学习笔记(整理)
SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...
-
spring MVC学习笔记
为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...
随机推荐
-
js-DOM,DOM扩展
DOM: 1. 了解节点的信息:nodeName(属性的标签名),nodeValue两个属性 在取得信息之前要进行判断是不是节点,节点类型由12个数值常量进行表示 2.每个节点都有一个childNod ...
-
maven加载spring包
<dependencies> <dependency> <groupId>org.springframework</groupId> <artif ...
-
.NET 下各种Resource的读取方式
1) Embedded Resource (Build Action 设置为 Embedded Resource) 在运行时使用GetManifestResourceStream读取 Image.Fr ...
-
201521123030《Java程序设计》第3周学习总结
1. 本周学习总结 2. 书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; p ...
-
Spark基本架构
Spark基本架构图如下: Client:客户端进程,负责提交作业. Driver:一个Spark作业有一个spark context,一个Spark Context对应一个Driver进程,作业的 ...
-
Unity ECS 初探
1.安装 安装两个包 2.初探 实例化 注:实例化的实体并不会在Hierarchy视图里面显示,可在EntityDebugger窗口里面显示,因此需要显示的话需要添加Rendermeshcompone ...
-
WinForm之中BindingNavigator控件的使用
WinForm之中BindingNavigator控件的使用在微软WinForm中,BindingNavigator控件主要用来绑定数据.可以将一个数据集合与该控件绑定,以进行数据 联动的显示效果.如 ...
-
Javascript中类的实现机制(四)
一: 理解类的实现机制 在JavaScript中可以使用function关键字来定义一个“类”,如何为类添加成员.在函数内通过this指针引用的变量或者方法都会成为类的成员,例如:function ...
-
Oracle如何把数据库表迁移到指定表空间
问题描述: 将测试数据库中的表结果导入到正式数据库.需要在正式库中建立独立的表空间存放新导入的表,以避免和正式库中原来的表混淆. 处理步骤: 1. 在命令行中用exp指令导出测试库中指定表到指定 ...
-
Unity3d的lodgroup调节
才发现,假设不惬意LodGroup的百分比调节,能够在通过质量->中的Lod Bias值进行调节. 值为0-1之间 ,表示靠近精细与粗糙Lod的比率. 这样能解决用百分比调节不给力的问题.