JavaEE框架——Springmvc的使用

一、简介:

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等

优点:它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,看起来容易理解。


二、SpringMVC几个核心类:

  • 控制器核心类:org.springframework.web.servlet.DispatcherServlet - 配置web.xml
  • 加载配置文件核心类:org.springframework.web.context.ContextLoaderListener – spring的配置文件
  • 处理url影射核心类:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping-根据bean的名称请求一个bean. spring的配置文件- /abc
  • 处理视图资源核心类:org.springframework.web.servlet.view.ResourceBundleViewResolver  returnhello – 决定返回的字符串由哪一个页面来显示。
  • 处理注解URL核心类:org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping- 用于识别@RequestMapping注解。使用了上面的类,Controller还是需要配置的。<context:component-scan package=“cn.itcast”/>用于替代上面的类。
  • 方法动态调用核心类org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver
  • 文件上传核心类:org.springframework.web.multipart.commons.CommonsMultipartResolver

三:用Spring处理Web请求-Spring的MVC



四、几个核心类演示

            1.DispatcherServlet详解:

  •  DispatcherServletSpringMVC的核心类,它就是一个Servlet.此类默认读取WEBINF/[servlet-name]-servlet.xml配置文件。
  • 重要说明:DispatcherServlet可以多次配置到web.xml中,它们将会读取自己的配置文件,但不会共享Bean.如果希望设置一些共享的Bean应该配置ContextLoaderListener来读取Spring的配置文件。

配置DispatcherServlet

1.在web.xml中加入servlet,namespac e默认可以不写,如果写了,就可以随便改名字,不一定要写出servlet-name]-servlet.xml,这里只是为了规范

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1.         <context-param>  
  2.         <param-name>contextConfigLocation</param-name>  
  3.         <param-value>  
  4.             classpath:beans.xml,  
  5.              </param-value>  
  6.     </context-param>  
  7.     <listener>  
  8.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  9.     </listener>  
  10.     <servlet>  
  11.         <servlet-name>springmvc</servlet-name>  
  12.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  13.         <init-param>  
  14.             <param-name>namespace</param-name>  
  15.             <param-value>springmvc-servlet</param-value>  
  16.         </init-param>  
  17.         <load-on-startup>1</load-on-startup>  
  18.     </servlet>  
  19.     <servlet-mapping>  
  20.         <servlet-name>springmvc</servlet-name>  
  21.         <url-pattern>/sp/*</url-pattern>  
  22.     </servlet-mapping>  

2.在WEB-INF目录下写上springmvc-servlet.xml配置文件

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.         xmlns:context="http://www.springframework.org/schema/context"  
  5.         xmlns:tx="http://www.springframework.org/schema/tx"  
  6.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd  
  7.                 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd  
  8.                 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">  
  9.     <!-- Cotroller-bean配置在当前文件,可以不用配映射bean  
  10.     <bean name="/hello" class="cn.hncu.one.HelloControler"></bean> -->  
  11. </beans>  

2.DispatcherServlet

DispatcherServlet 会在 WEB-INF 目录下默认加载一个资源文件,名为: springmvc-servlet.xml 文件。
如果配置信息有很多,此文件将会变得非常笨重。原则上,我们反倒是建议你将应用上下文 分散到多个配置文件 中去。
为此,我们必须要载入:上下文载入器 ContextLoaderListener , 如下:
( 需要说明的是:在 DispatcherServlet 的加载的配置文件与通过 ContextLoaderListener 加载的配置文件,将 不会拥有互相的访问权限

因此在web.xml要加入它

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <context-param>  
  2.         <param-name>contextConfigLocation</param-name>  
  3.         <param-value>  
  4.             classpath:beans.xml,  
  5.              </param-value>  
  6.     </context-param>  
  7.     <listener>  
  8.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  9.     </listener>  

3.BeanNameUrlHandlerMapping

根据bean的名称请求一个bean. spring的配置文件

在配置文件springmvc-servlet.xml配置请求bean则不需要导入BeanNameUrlHandlerMapping这个类

而在spring的配置文件beans.xml则要导入

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <!--  Cotroller-bean配置在当前文件,必须要配映射bean(处理url影射核心类)   
  2.     处理url影射核心类: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping        

4.声明视图解析器:viewResolver

  • Springview层是通过视图解析器来完成的。
  • Spring中包含很多视图解析器,以下是经常使用,且比较灵活的一个解析器:
  • ResourceBundleViewResolver,是通过加载外部的资源文件来解析目录视图的解析器。


[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <!--转发时必须要配: 处理视图资源核心类 -->  
  2.     <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">  
  3.         <property name="basenames">  
  4.             <!-- 配置文件为: classpath: springmvc.properties -->  
  5.             <value>springmvc</value>  
  6.         </property>  
  7.         <property name="defaultParentView" value="hncu"></property>  
  8. </bean>  

默认会在classpath目录下查找springmvc.properties资源文件

springmvc.properties

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #配置一个字符串指向一个页面,配置文件中至少应该包括两项内容:  
  2. #1.指定返回的是什么页面(jstlJSP,pdf,doc)  
  3. #2.指定包装页面路径  
  4. ##如果一个字符串页面没有配置class,则它直接使用父View的  
  5. hncu.(class)=org.springframework.web.servlet.view.JstlView  
  6. hncu.url=/jsps/hello.jsp  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tephra旨在构建一个稳定、高效、易于集群、快速扩展的JavaEE开发框架。目前,Tephra已经具备了以下特性: 提供类级别的热更新,但仅建议在需要快速修正严重BUG、并且无法立即进行全更新时使用。 提供全冗余方式的缓存,自动在每个节点间同步缓存数据,而每个节点都仅从本地内存中获取缓存数据,从而提供高效的执行效率,并且当部分节点宕机时仍旧能正常提供服务。当然,也允许使用Redis提供统一的中心节点缓存。此特性可用于多节点负载时提供不停服更新。 提供数据库读写分离、及读负载均衡,并且允许配置多个不同的数据库,甚至允许在运行期间增加新的数据库配置,并自动映射ORM。允许执行标准的SQL或存储过,同时提供了一个简单、轻量的ORM工具,并集成Hibernate、MyBatis为复杂ORM需求提供支持。 提供MongoDB工具实现对NoSQL的支持,支持负载均衡。 提供轻量级、快速响应的控制器,允许设置最大并发峰值,以确保在突如其来的并发攻击后能继续正常提供服务;也允许设置单IP最大并发量,确保小量IP并发攻击时仍能正常提供服务。允许发布为HTTP(S)、WebSocket、Socket服务。 提供JavaScript脚本引擎支持,允许JavaScript与JavaBean自由交互,并且可以发布JavaScript为服务;以及使用Javacript作为复杂规则验证器。 提供Hadoop存取支持。 模块化开发,使用注解简化配置,增强代码可读性与维护性。
JavaEE(Java Enterprise Edition)是一种用于开发企业级应用程序的Java平台。它提供了一套丰富的API和工具,用于构建可靠、可扩展和安全的分布式应用程序。下面是JavaEE框架的介绍: 1. Servlet:Servlet是JavaEE中的基础组件,用于处理HTTP请求和响应。它提供了一种在服务器端运行的Java类,可以接收和处理来自客户端的请求,并生成响应。 2. JSP(JavaServer Pages):JSP是一种动态网页技术,它允许在HTML页面中嵌入Java代码。JSP页面在服务器端被解析和编译为Servlet,并在客户端浏览器中呈现为HTML。 3. EJB(Enterprise JavaBeans):EJB是一种用于构建分布式企业级应用程序的组件模型。它提供了事务管理、持久化、安全性和并发控制等功能,简化了开发复杂应用程序的过程。 4. JPA(Java Persistence API):JPA是一种用于对象关系映射(ORM)的API,它提供了一种将Java对象映射到关系数据库中的方式。通过JPA,开发人员可以使用面向对象的方式进行数据库操作,而不需要编写SQL语句。 5. JSF(JavaServer Faces):JSF是一种用于构建用户界面的Java Web框架。它提供了一套组件库和事件模型,使开发人员可以轻松地构建交互式的Web应用程序。 6. JMS(Java Message Service):JMS是一种用于在分布式系统中进行异步通信的API。它提供了一种可靠的消息传递机制,用于在应用程序之间发送和接收消息。 7. Spring Framework:Spring是一个轻量级的JavaEE框架,提供了一套全面的解决方案,用于构建企业级应用程序。它包括依赖注入、面向切面编程、事务管理等功能,简化了应用程序的开发和测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值