spring mvc 教程_Spring MVC开发–快速教程
spring mvc 教程
(注意:对原始帖子进行了少量编辑以提高可读性)
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开发–快速教程相关推荐
- Spring MVC开发–快速教程
这是我们的JCG合作伙伴之一,来自Manoj的有关使用Spring开发Web应用程序的简短教程, 网址为" The Khangaonkar Report ". (注意:对原始帖子进 ...
- spring mvc教程_Spring MVC教程
spring mvc教程 1.简介 作为企业Java开发人员,这项工作的主要重点之一是开发Web应用程序. 对于Web应用程序,后果还包括许多挑战. 具体来说,其中一些是状态管理,工作流和验证. HT ...
- java spring mvc 实例_spring mvc 简单实例
转至:http://blog.csdn.net/dingx/article/details/2242105 Spring Framework可以被使用在很多场合之中,考虑到目前大多数Java EE的项 ...
- spring mvc示例_Spring MVC示例
spring mvc示例 Welcome to Spring MVC Example. Sometime back in Spring MVC Tutorial, I explained how to ...
- spring mvc国际化_Spring MVC国际化(i18n)和本地化(L10n)示例
spring mvc国际化 Welcome to the Spring Internationalization (i18n) tutorial. Any web application with u ...
- PHP教程:PHP开发快速入门_v20200418
PHP 是一种免费开源.跨平台.广泛流行的脚本语言,通常运行于服务器端,用来开发网站后台程序. PHP 语法简洁,规则宽松,架构简单,基本不需要配置文件,并且内置了很多实用性强的函数,这使得 PHP ...
- java spring 拦截器_Spring MVC拦截器(Interceptor)的配置及使用
在开发一个网站时可能有这样的需求:某些页面只希望几个特定的用户浏览.对于这样的访问权限控制,应该如何实现呢?拦截器就可以实现上述需求.在 Struts 2 框架中,拦截器是其重要的组成部分,Sprin ...
- spring框架mvc框架_Spring MVC测试框架入门–第2部分
spring框架mvc框架 这个迷你系列的第一个博客介绍了Spring MVC测试框架,并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途. ...
- spring mvc原理_Spring MVC的工作原理,我们来看看其源码实现
来源:https://www.cnblogs.com/youzhibing/p/10695012.html 作者:youzhibing2904 遗留问题 在关于利用maven搭建ssm的博客,我们一起 ...
最新文章
- 【Android UI设计与开发】第16期:滑动菜单栏(一)
- mysql 代理作业_查看SQLServer 代理作业的历史信息
- Tomcat 7.0~10.0zip版,安装版,其他一键式全部下载
- 三菱880彩铅和uni的区别_彩铅测评|150色荷尔拜因彩铅初体验
- mysql注入语句解释,MYSQL注入语句实用精解
- 小程序调用阿里云身份证识别OCR(附带七牛云上传图片)
- 陶哲轩实分析引理10.4.1:反函数定理
- 计算机更新阶段,较旧的计算机开始自动升级到Windows10 2004版
- RFC:Request For Comments
- springboot++vue+elementui网上零食购物商城网站系统带统计投诉java
- python导入鸢尾花数据集_数据可视化——鸢尾花数据集的分析与散点图的绘制
- 数据包络分析方法与maxdea软件_奥林巴斯OmniScan X3探伤仪软件升级,缺陷图像无处藏...
- flex布局及flex实现常见的前端布局
- 甲骨文裁员的屠刀最终砍向了西雅图
- Ubuntu 18.04.3 双屏显示 N卡驱动 问题解决
- Android 4.1新特性
- 我的世界服务器自动被踢怎么可以进去,我的世界中国版服务器中如何解决玩家作弊的简单方法...
- 2019年第十届蓝桥杯C/C++ 省赛B组真题+题解
- 你会如何给全局对象添加toString()方法
- C语言while循环语句 do while语句 for循环语句
热门文章
- ssh(Spring+Spring mvc+hibernate)——Emp.hbm.xml
- sql server操作案例
- Map的两种遍历方法
- Android 隐藏底部三个虚拟按键
- Android实现动画Dialog
- javafx 图标_JavaFX技巧32:需要图标吗? 使用Ikonli!
- aws 删除ec2实例_如何在AWS EC2实例上部署Spring Boot应用程序
- bom .dom_MicroProfile 2.2 BOM导入支持
- c++ 嵌套私有类_嵌套类和私有方法
- jaxb注解使用_使用JAXB的简介