spring MVC入门示例(hello world demo)

1. Spring MVC介绍

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。

2. Spring MVC的优点

  • 让我们能非常简单的设计出干净的Web层和薄薄的Web层;
  • 进行更简洁的Web层的开发;
  • 天生与Spring框架集成(如IoC容器、AOP等);
  • 提供强大的约定大于配置的契约式编程支持;
  • 能简单的进行Web层的单元测试;
  • 支持灵活的URL到页面控制器的映射;
  • 非常容易与其他视图技术集成,如Velocity、FreeMarker等等,因为模型数据不放在特定的API里,而是放在一个Model里(Map数据结构实现,因此很容易被其他框架使用);
  • 非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API;
  • 提供一套强大的JSP标签库,简化JSP开发;
  • 支持灵活的本地化、主题等解析;
  • 更加简单的异常处理;
  • 对静态资源的支持;
  • 支持Restful风格。

2. 环境配置

新建一个web工程,file->new->web project,取名为SpringMVC。将spring中的jar中复制到SpringMVC/WEB-INF/lib下。spring中有些与 struts相关的包可以不复制,因为这里用不到。除此之外,还需要

commons-logging.jar/jstl.jar/standard.jar这三个依赖包。配置完后,lib下的jar包如下所示:

3. 入门示例

3.1 我们首先从web.xml开始配置。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22


<?xml version=
   
"1.0"
   
encoding=
   
"UTF-8"
   
?>

<web-app version=
   
"2.5"

    
   
xmlns=
   
"http://java.sun.com/xml/ns/javaee"

    
   
xmlns:xsi=
   
"http://www.w3.org/2001/XMLSchema-instance"

    
   
xsi:schemaLocation="http:
   
//java.sun.com/xml/ns/javaee

    
   
http:
   
//java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  
   
<display-name>SpringMVC</display-name>   

  

    
   
<servlet> 

        
   
<servlet-name>SpringMVC</servlet-name> 

        
   
<servlet-
   
class
   
>org.springframework.web.servlet.DispatcherServlet</servlet-
   
class
   

        
   
<load-on-startup>
   
1
   
</load-on-startup> 

        
   
</servlet> 

    
   
<servlet-mapping> 

        
   
<servlet-name>SpringMVC</servlet-name> 

        
   
<url-pattern>/</url-pattern> 

    
   
</servlet-mapping>

    

    
   
<welcome-file-list>

        
   
<welcome-file>MyJsp.jsp</welcome-file>

    
   
</welcome-file-list>

</web-app>

load-on-startup表示启动容器时初始化该Servlet;

url-pattern表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

自此请求已交给Spring Web MVC框架处理,因此我们需要配置Spring的配置文件,默认DispatcherServlet会加载WEB- INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。本示例为WEB-INF/ SpringMVC-servlet.xml。

3.2 再来配置SpringMVC-servlet.xml


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23


<?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"

    
   
xmlns:mvc=
   
"http://www.springframework.org/schema/mvc"

    
   
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    

           
   
http:
   
//www.springframework.org/schema/mvc     

           
   
http:
   
//www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> 

    

    
   
<bean name=
   
"/test1/helloWorld"
   
class
   
=
   
"com.SpringMVC.web.controller.HelloWorldController"
   
/> 

    

    
   
<!-- ViewResolver --> 

    
   
<bean id=
   
"viewResolver"
   
class
   
=
   
"org.springframework.web.servlet.view.InternalResourceViewResolver"
   
>

        
   
<property name=
   
"prefix"
   
value=
   
"/WEB-INF"
   
/> 

        
   
<property name=
   
"suffix"
   
value=
   
".jsp"
   
/> 

    
   
</bean>

    

</beans>

InternalResourceViewResolver:用于支持Servlet、JSP视图解析;

prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello,则该jsp视图页面应该存放在“WEB-INF/hello.jsp”;

<bean name="test1/helloWorld" ... />这里表示传来的url与代码中的controller的对应关系。

3.3 下面我们来写controller类代码


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18


package
   
com.SpringMVC.web.controller;

import
   
javax.servlet.http.HttpServletRequest;

import
   
javax.servlet.http.HttpServletResponse;

import
   
org.springframework.web.servlet.ModelAndView;

import
   
org.springframework.web.servlet.mvc.Controller;

public
   
class
   
HelloWorldController
   
implements
   
Controller{

    
   
public
   
ModelAndView handleRequest(HttpServletRequest arg0,

            
   
HttpServletResponse arg1)
   
throws
   
Exception {

        
   
// TODO Auto-generated method stub

        
   
System.out.println(
   
"--------------hello world! 世界你好!--------------------"
   
);

        
   
return
   
new
   
ModelAndView(
   
"/helloWorld"
   
);

    
   
}

}

这里实现了一个接口,重写了其中的handleRequest函数。函数中,在后台打印一段文件,并将helloWorld.jsp页面返回给浏览 器。因为在-servlet.xml中进行了配置,所以helloWorld.jsp文件应在WEB-INF文件夹下,且此处返回时仅写 helloWorld即可,无需加后缀.jsp。

3.4 jsp页面


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24


String
   
path = request.getContextPath();

String
   
basePath = request.getScheme()+
   
"://"
   
+request.getServerName()+
   
":"
   
+request.getServerPort()+path+
   
"/"
   
;

%>

<!
   
DOCTYPE
   
HTML
   
PUBLIC
   
"-//W3C//DTD HTML 4.01 Transitional//EN"
   
>

<html>

  
   
<head>

    
   
<base href=
   
"<%=basePath%>"
   
>

    

    
   
<title>Hello World!</title>

    
   
<meta http-equiv=
   
"pragma"
   
content=
   
"no-cache"
   
>

    
   
<meta http-equiv=
   
"cache-control"
   
content=
   
"no-cache"
   
>

    
   
<meta http-equiv=
   
"expires"
   
content=
   
"0"
   
>   

    
   
<meta http-equiv=
   
"keywords"
   
content=
   
"keyword1,keyword2,keyword3"
   
>

    
   
<meta http-equiv=
   
"description"
   
content=
   
"This is my page"
   
>

    
   
<!--

    
   
<link rel=
   
"stylesheet"
   
type=
   
"text/css"
   
href=
   
"styles.css"
   
>

    
   
-->

  
   
</head>

  

  
   
<body>

    
   
-----------------Hello World! ----------------------<br>

  
   
</body>

</html>

3.5 完成后的目录结构


1

2

3

4

5

6

7

8

9

10


SpringMVC

  src

    com.SpringMVC.web.controller

      HelloWorldController.java

  WebRoot

    WEB-INF

      lib

      helloWorld.jsp

      SpringMVC-servlet.xml

      web.xml

5. 运行、访问页面

将SpringMVC部署到tomcat服务器上,运行。在浏览器中输入访问地址:http://localhost:8080 /SpringMVC/test1/helloWorld。应该就可以看到前台显示helloWorld.jsp页面,后台打印 “--------------hello world! 世界你好!--------------------”字符串了。

spring MVC入门示例(hello world demo)

时间: 2024-10-03 22:39:32

spring MVC入门示例(hello world demo)的相关文章

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

spring mvc 入门示例

classpath <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.e

Spring MVC入门示例

1.新建一个Java Web项目 2.导入jar包 3.在WEB-INF下面建一个hello.jsp页面. 1 <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 2 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 4 <

Spring MVC入门教程(二)

第一篇文章宏观讲了Spring MVC概念,以及分享了一个快速入门的例子(文章链接). 这篇文章主要来谈谈Spring MVC的配置文件. 首先来谈谈web.xml: web项目启动时自动加载到内存中的信息,比如服务器配置参数,<listener>监听器,<filter>过滤器,<servlet>等.再如,如果在项目中使用了spring框架,则必须定义ContextLoaderListener,那么在启动Web容器时,会自动装配Spring applicationCon

Spring MVC 入门实例

概述: springmvc 框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总控制,它负责截获请求并将其分派给相应的处理器处理.SpringMVC框架包括注解驱动控制器.请求及响应的信息处理.视图解析.本地化解析.上传文件解析.异常处理以及表单标签绑定等内容. SpringMVC是主要基于MODEL2实现的技术框架,Model2是经典的MVC(model.view.control)模型在web应用中的变体,这个改变主要源于HTTP

Spring Mvc 入门Demo

1.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml

【转载】Spring MVC入门

转自:http://www.importnew.com/15141.html MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑.处理后,后台业务层可能会返回了一些数据在视图层展示.控制器收集这些数据及

Spring MVC 入门 - 框架搭建

感觉网上从环境搭建讲起的教程不多,好多示例也比较复杂,而且也没个图啥的,所以就上一个简单易懂的版本. 有多简单捏?从eclipse建立工程开始,结束后作出一个可以响应请求的Servlet. 在这个文章里面,我们需要 - 建立一个eclipse工程: 编写两个xml: 编写两个jsp页面: 编写一个Java文件. 准备工作 - Eclipse J2EE版本: Tomcat 一只: 注:所有斜体字代表-文件名,类名,变量名等可替换内容. 第一步: 使用Eclipse建立动态网页工程. 输入项目名字,

Spring MVC 完整示例

在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置. MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的