spring mvc 教程

这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为“ The Khangaonkar Report ”。

(注意:对原始帖子进行了少量编辑以提高可读性)

Spring MVC使用基于模型视图控制器架构(MVC)模式的框架,可以轻松进行Web应用程序开发。 MVC架构模式要求将用户界面(视图),正在处理的数据(模型)和管理视图与模型之间的交互的控制器分开。

Spring MVC的核心是一个Servlet, DispatcherServlet ,它处理每个请求。 DispatcherServlet将HTTP请求路由到应用程序开发人员创建的Controller类。 控制器类处理请求,并确定应将哪个视图作为响应的一部分显示给用户。

让我们开发一个简单的Web应用程序,该应用程序接受请求并将一些数据发送回用户。 在继续进行任何操作之前,建议您从此处下载源代码。

对于本教程,您还需要:

1.像Tomcat这样的servlet容器
2. Spring3.0
3. Eclipse是可选的。 我使用eclipse作为我的IDE。 Eclipse使您可以导出可以部署到Tomcat的战争。 但是您也可以使用其他IDE或命令行工具。 4.需要对JSP和Servlet有一定的了解。

步骤1:如果要在J2EE中开发Web应用程序,通常可以通过开发打包在.war文件中的servlet和/或JSP来实现。 还需要包含配置元数据的部署描述符web.xml。 这场战争被部署到了像Tomcat这样的应用服务器上。

使用Spring,首先要做的是通过将org.springframework.web.servlet.DispatcherServlet定义为该应用程序的Servlet类,将Spring连接到该J2EE Web基础结构。 您还需要将org.springframework.web.context.ContextLoaderListener定义为侦听器。 ContextLoaderListener负责加载具有Spring元数据的特定于Spring的应用程序上下文。

web.xml设置确保servlet引擎将对应用程序的每个请求都路由到DipatcherServlet 。 更新为web.xml如下所示:

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<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>*.htm</url-pattern>
</servlet-mapping>

步骤2:此Web应用程序中的繁重工作由控制器类完成。 这是扩展org.springframework.web.servlet.mvc.AbstractController的普通Java类或bean。 我们重写handleRequestInternal方法。 在这种方法中,您将做一些处理请求的必要工作,例如包括从数据库中读取。

该方法返回一个org.springframework.web.servlet.ModelAndView对象,该对象封装了视图的名称以及该视图需要显示的任何数据(模型)。 ModelAndView将数据作为名称值对保存。此数据稍后可用于视图。 如果视图是jsp,则可以使用jstl技术或直接查询Request对象来访问数据。 我们的控制器的代码如下所示:

public class SpringMVCController extends AbstractController {protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) {ModelAndView mview = new ModelAndView("springmvc") ;mview.addObject("greeting", "Greetings from SpringMVC") ;mview.addObject("member1", new Member("Jonh","Doe", "1234 Main St","Pleasanton","94588","kh@gmail.com","1234")) ;return mview ;}
}

视图springmvc的名称传递给ModelAndView的构造函数。 addObject方法调用将添加2个模型对象,即“ greeting”和“ member1”。 稍后,您将看到视图如何检索对象并显示它们。

步骤3:每个Spring应用程序都需要元数据来定义Bean及其依赖项。 对于此应用程序,我们创建一个springmvc-servlet.xml。 我们通过在web.xml中指定其位置来帮助spring找到它。

<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-servlet.xml</param-value>
</context-param>

在springmvc-servlet.xml中,控制器bean定义为:

<bean name="/*.htm" class="com.mj.spring.mvc.SpringMVCController"/>

步骤4: DispatcherServlet如何知道哪个控制器应该处理请求?

Spring使用处理程序映射将控制器与请求相关联。 2个常用的处理程序映射是BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping 。

在BeanNameUrlHandlerMapping中 ,当请求url与bean的名称匹配时,bean定义中的类就是将处理请求的控制器。

在我们的示例中,我们使用BeanNameUrlHandlerMapping,如下所示。 每个以.htm结尾的请求url由SpringMVCController处理。

<bean name="/*.htm" class="com.mj.spring.mvc.SpringMVCController"/>

在SimpleUrlHandlerMapping中,映射更加明确。 您可以指定多个URL,并且每个URL都可以与控制器明确关联。

步骤5: DispatcherServlet如何知道作为响应返回什么?

如前所述,控制器的handleRequestInternal方法返回一个ModelAndView对象。

在上面显示的控制器代码中,视图“ springmvc”的名称在ModelAndView的构造函数中传递。 至此,我们刚刚给出了视图的名称。 我们没有说过什么文件,类或工件有助于产生html,也没有说过使用的视图技术是JSP还是速度模板还是XSLT。 为此,您需要一个ViewResolver ,它提供视图名称和具体视图之间的映射。 Spring使您可以使用许多不同的技术来生成具体的视图,但是对于本示例,我们将使用JSP。

Spring提供了一个支持JSP的InternalResourceViewResolver类,并且springmvc-servlet.xml中的以下声明告诉spring我们正在使用此解析器。 在视图名称中添加了前缀和后缀,以生成呈现视图的jsp文件的路径。

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"></property><property name="suffix" value=".jsp"></property>
</bean>

步骤6:在此示例中,视图解析为springmvc.jsp,该视图使用JSTL获取并显示数据。 Spring使JSP可以将模型对象“ greeting”和“ member1”用作请求范围对象。 出于教育目的,下面的代码也直接从请求中获取对象。

// Using JSTL to get the model data
${greeting}
${member1.lastname// Using java to get the model directly from the request
Map props = request.getParameterMap() ;
System.out.println("PARAMS =" + props) ;
Enumeration em = request.getAttributeNames() ;
while (em.hasMoreElements()) {String name = (String) em.nextElement() ;System.out.println("name = "+name) ;
}
System.out.println("Attrs are "+request.getAttributeNames()) ;
System.out.println("greeting is "+ request.getAttribute("greeting")) ;
Member m = (Member)request.getAttribute("member1") ;
System.out.println("member is "+m.toString()) ;

步骤7:到目前为止,我们开发的所有文件都应打包到war文件中,就像在任何Web应用程序中一样。 通过复制到tomcat_install \ webapps,可以将战争部署到tomcat。 我发动了一场战争,您可以在这里下载。

步骤8:将您的Web浏览器指向http:// localhost:8080 / springmvc / test.htm以运行该应用程序。 浏览器应显示数据。

总而言之,Spring通过提供可以轻松组装的构建块来简化Web应用程序的开发。 我们使用Spring MVC构建了一个Web应用程序。 Spring提供了一种简单的方法来将我们的模型,控制器SpringMVCController和视图springmvc.jsp连接在一起。 我们不必显式地编写任何请求/响应处理逻辑。 通过更改springmvc-servlet.xml中的元数据,可以切换到其他控制器或其他视图技术。

没错 ,这是我们JCG合作伙伴 Manoj Khangaonkar 用Spring开发Web应用程序的简单指南。 您可以在此处找到为本教程创建的源代码。 别忘了分享!

相关文章:

  • JBoss 4.2.x Spring 3 JPA Hibernate教程
  • 使用Spring将POJO公开为JMX MBean
  • Spring 3 RESTful Web服务
  • 具有Spring和Maven教程的JAX–WS
  • 使用Spring Security保护GWT应用程序的安全
  • 使用Spring AspectJ和Maven进行面向方面的编程
相关片段:
  • Spring MVC拦截器示例
  • 在Spring容器中声明bean
  • 使用Spring发送电子邮件

翻译自: https://www.javacodegeeks.com/2011/02/spring-mvc-development-tutorial.html

spring mvc 教程

spring mvc 教程_Spring MVC开发–快速教程相关推荐

  1. Spring MVC开发–快速教程

    这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report ". (注意:对原始帖子进 ...

  2. spring mvc教程_Spring MVC教程

    spring mvc教程 1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HT ...

  3. java spring mvc 实例_spring mvc 简单实例

    转至:http://blog.csdn.net/dingx/article/details/2242105 Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项 ...

  4. spring mvc示例_Spring MVC示例

    spring mvc示例 Welcome to Spring MVC Example. Sometime back in Spring MVC Tutorial, I explained how to ...

  5. spring mvc国际化_Spring MVC国际化(i18n)和本地化(L10n)示例

    spring mvc国际化 Welcome to the Spring Internationalization (i18n) tutorial. Any web application with u ...

  6. PHP教程:PHP开发快速入门_v20200418

    ​PHP 是一种免费开源.跨平台.广泛流行的脚本语言,通常运行于服务器端,用来开发网站后台程序. PHP 语法简洁,规则宽松,架构简单,基本不需要配置文件,并且内置了很多实用性强的函数,这使得 PHP ...

  7. java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用

    在开发一个网站时可能有这样的需求:某些页面只希望几个特定的用户浏览.对于这样的访问权限控制,应该如何实现呢?拦截器就可以实现上述需求.在 Struts 2 框架中,拦截器是其重要的组成部分,Sprin ...

  8. spring框架mvc框架_Spring MVC测试框架入门–第2部分

    spring框架mvc框架 这个迷你系列的第一个博客介绍了Spring MVC测试框架,并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途. ...

  9. spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现

    来源:https://www.cnblogs.com/youzhibing/p/10695012.html 作者:youzhibing2904 遗留问题 在关于利用maven搭建ssm的博客,我们一起 ...

最新文章

  1. 【Android UI设计与开发】第16期:滑动菜单栏(一)
  2. mysql 代理作业_查看SQLServer 代理作业的历史信息
  3. Tomcat 7.0~10.0zip版,安装版,其他一键式全部下载
  4. 三菱880彩铅和uni的区别_彩铅测评|150色荷尔拜因彩铅初体验
  5. mysql注入语句解释,MYSQL注入语句实用精解
  6. 小程序调用阿里云身份证识别OCR(附带七牛云上传图片)
  7. 陶哲轩实分析引理10.4.1:反函数定理
  8. 计算机更新阶段,较旧的计算机开始自动升级到Windows10 2004版
  9. RFC:Request For Comments
  10. springboot++vue+elementui网上零食购物商城网站系统带统计投诉java
  11. python导入鸢尾花数据集_数据可视化——鸢尾花数据集的分析与散点图的绘制
  12. 数据包络分析方法与maxdea软件_奥林巴斯OmniScan X3探伤仪软件升级,缺陷图像无处藏...
  13. flex布局及flex实现常见的前端布局
  14. 甲骨文裁员的屠刀最终砍向了西雅图
  15. Ubuntu 18.04.3 双屏显示 N卡驱动 问题解决
  16. Android 4.1新特性
  17. 我的世界服务器自动被踢怎么可以进去,我的世界中国版服务器中如何解决玩家作弊的简单方法...
  18. 2019年第十届蓝桥杯C/C++ 省赛B组真题+题解
  19. 你会如何给全局对象添加toString()方法
  20. C语言while循环语句 do while语句 for循环语句

热门文章

  1. ssh(Spring+Spring mvc+hibernate)——Emp.hbm.xml
  2. sql server操作案例
  3. Map的两种遍历方法
  4. Android 隐藏底部三个虚拟按键
  5. Android实现动画Dialog
  6. javafx 图标_JavaFX技巧32:需要图标吗? 使用Ikonli!
  7. aws 删除ec2实例_如何在AWS EC2实例上部署Spring Boot应用程序
  8. bom .dom_MicroProfile 2.2 BOM导入支持
  9. c++ 嵌套私有类_嵌套类和私有方法
  10. jaxb注解使用_使用JAXB的简介