servlet和java spring框架 入门的关系

今天开始我们对Spring MVC框架的入门介绍如果说是基础入门我们会先给大家介绍如下几个技术内容

上面内容我个人认为是基础性入门介绍,所以我们会分几讲内容来进行

  • DispatcherServlet它负责攔截请求并将其分配给相应的处理器

注意上述代码有几个关键点:

  • 创建一个SpringMVC的配置文件此配置文件主要添加SpringMVC框架所持有的功能。如:视圖解析拦截器,模型驱动等相关功能单从这一节内容我们只配置一个解析JSP的视图解析器InternalResourceViewResolver
  •  最后创建控制器来测试SpringMVC框架是否可以运行
* 定义嘚方法就是一个请求处理的方法 * 返回指就是一个逻辑视图名, 它遵循springmvc-web.xml视图解析器去寻找物理视图名(m01.jsp)
}

Servlet和JSP是开发java Web应用程序的两种基本技術Spring MVC是java spring框架 入门中用于Web应用程序开发的一个模块,能够清晰的了解到从Servlet到Spring MVC开发技术之间逐步简化的过程对于深刻理解Spring MVC在Web应用程序开发中的莋用具有很大的帮助我们会从项目的目录结构来介绍这个简化的过程:

演进1:实现Servlet接口的时候必须将所有的方法进行实现,即便有些根夲没有包含任何代码但是GenericServlet抽象类实现了Servlet和ServletConfig接口简化了任务。

因此在GenericServlet抽象类的帮助下我们只需要重写service方法中实现我们的任务就可以了。

利用部署描述符是一种配置Servlet应用程序的方法部署描述符命名为web.xml并放在WEB-INF目录下。 

演进3:Servlet有两个缺点:1)写在Servlet中的所有HTML标签必须包含java字符串姒的处理HTTP响应报文工作复杂;2)所有的文本都是硬编码即是出现了一点点的变化也需要重现编译。JSP解决了上述的问题并与Servlet同时使用

放茬WEB-INF文件夹下的内容是无法直接通过浏览器输入地址访问的,而WEB-INF文件夹外的则是可以的并且添加了新的JSP页面后无需重启JSP/Servlet容器(如tomcat)。 

解耦1:使用标准JSP访问操作JavaBean,是实现展现(HTML)与业务实现(Java 代码)分离的第一步

演进4:JSP中的EL可以轻松访问应用程序数据,使得JSP页面不需要任哬的声明表达式和脚本。

演进5:JSP标准标签库(JSTL)在EL的基础上进一步解决了遍历Map集合,条件测试XML处理,数据库操作访问等操作的问题

JSTL标签类型:声明赋值,条件判断循环遍历,格式化函数(主要是字符串函数)

演进6:JSP标准标签库(JSTL)提供了一些标签能解决常用的問题,但是对于一些非常见恶问题需要扩展javax.servlet.jsp.tagetx包中的成员实现自定义标签。

 自定义标签的实现叫作标签处理器,而简单标签处理器是指繼承SimpleTag实现的经典自定义标签经典标签处理器需要实现Tag,IterationTag及BodyTag接口或者扩展TagSupportBodyTagSupport两个类;简单标签处理器需要实现

可以把自定义的标签处理器鉯及标签描述器打包到jar包中,并指定绝对的URI这样就可以把它像JSTL一样发布出来。

演进7:编写自定义标签是一件冗长琐碎的事需要编写并變异一个标签处理类还要在标签库中进行描述。通过tag file的方式无须辨析标签处理类和标签库描述文件也能够自定义标签。tag file使用前不需要编譯也不需要描述文件。

tag file无需提前编译且只需要JSP语法就可以一个tag file拥有指令,脚本EL,动作元素以及自定义标签一个tag file以tag和tagx为后缀,它们鈳以包含其他资源一个被其他文件包含的tag file应该以tagf为后缀。

tag文件必须放在路径的WEB-INF/tags目录下才能生效和标签处理器一样,tag文件也可以打包成jar攵件

解耦2:Servlet提供了一系列的事件和事件监听借口,上层的servlet/JSP应用能够通过调用这些API进行事件驱动开发

 监听器都继承自java.util.Event对象,监听器接口鈳以分为ServletContextHttpSession和ServletRequest。监听器即一组动作的接口编写一个监听器,只需要写一个java类来实现对应的监听器接口就可以了然后通过@WebListener注解或者部署描述文档中增加listener元素进行注册。

演进10: Servlet或者Filter占用请求处理县城如果任务需要很长时间才能完成,当用户的并发请求超过县城树容器会沒有可用的线程。Servlet使用超时时间处理异步请求释放正在等待完成的线程。

演进11: 尽管可以通过注解进行配置但是在需要更加精细配置嘚情况下,部署描述符依然是需要的部署描述符必须被命名为web.xml并且位于WEB-INF目录下,Java类必须放在WEB-INF/classes目录下而Java的类库必须位于WEB-INF/lib目录下。所有的應用资源必须打包成.war为后缀的JAR文件

演进12: web fragment可以实现在已有的web应用中部署插件和框架。

演进13: Servlet的动态加载可以实现在不重启web应用的前提下添加新的web对象,Servlet容器加载器可以以插件形式发布应用而不需要修改部署描述对框架的使用特别有用。

演进13: Spring作为开源的轻量级企业级應用开发框架提供了依赖注入方法的实现。依赖注入是一种代码可测试性的解决方案

简单来说,有两个组件A和BA依赖于B,假定A是一个類且又一个方法使用到了B那么A必须先获得组件B的实例引用。Spring的依赖注入会先创建B的实例再创建A的实例,然后把B注入到A的实例中

Spring XML的配置写在spring-config.xml文件中,配置文件可以是一份也可以分解为多份以支持模块化的配置,既可以通过主配置文件读取多份配置文件也可以在其他配置文件中读取主配置文件。

Spring创建控制反转容器可以通过构造器的方式也可以是setter方法。

解耦3:Spring MVC模式实现了Web应用开发的模型2方式

 一个MVC模式嘚应用包含模型视图和控制器三个部分。视图负责应用的展示模型封装了应用的数据和业务逻辑,控制器负责接收用户输入改变模型以及调整视图的显示。

Spring MVC使用Servlet充当控制器Structs2使用Filter充当控制器。大部分都采用JSP页面作为视图模型采用POJO(Plain Old Java Object),在实践中会采用一个JavaBean来持有模型的状态并将业务逻辑放到一个Action类中,一个JavaBean必须拥有一个无参的构造器通过getter/setter访问参数,同时支持持久化

解耦4:解耦控制器代码,如果将业务逻辑代码都写在Servlet控制器中是哪个这个Servlet类将随着应用复杂度的增加而不断膨胀,应当将业务逻辑代码提取到独立的controller类中

演进14: 茬Web应用执行action时,需要进行输入的校验编程式的校验通过编码进行用户输入校验,声明式提供包含教研规则的XML文档或者属性文件

演进15:茬应用MVC时,可以在Controller类中调用后端业务逻辑通常后段封装了复杂的逻辑service类,在service类中可以实例化一个DAO类来访问数据库。在Spring环境中Service对象可鉯自动被注入到Controller实例中,而DAO对象可以自动被注入到Service对象中

同时也需要添加Spring MVC所需要的JAR文件。

演进17:Spring MVC使用视图解析器负责解析视图可以通過在配置文件中定义一个ViewResolver来配置试图解析器。

演进18:使用基于注解的控制器配置方法可以使得一个控制器类处理多个Action

@RequestMapping注解可以为控制器內部的每一个动作开发相应的处理方法;

演进19:数据绑定是将用户的输入绑定到领域模型的一种特性,也不再需要form bean这样的表单bean表单的标簽库会辅助这样的工作。

 使用表单标签库需要声明taglib指令

演进20:由于Spring自身的数据绑定是杂乱无章的,需要通过Converter和Formatter来完成数据的绑定

 Converter是通鼡元件,可以在应用程序的任意层中使用而Formatter则是专门为Web层设计的。

Spring MVC中有两种用户输入验证方式:Spring自带的验证框架和JSR 303的实现前者需要实現Validator接口,并且需要调用reject方法来添加错误;后者则是通过注解给对象属性添加约束这样的验证器不需要显式注册,但如果想要从某个属性攵件中获取错误信息可以在springmvc-config.xml中进行添加

演进22:Spring MVC提供了国际化和本地方的支持,需要讲文本元文件隔离成属性文件

将每一个语言区域的攵本元素都单独保存在一个独立的属性文件中,每个文件都包含key/value对并且每个key都卫衣表示一个特定语言区域对象。并在springmvc-config.xml中进行配置

}

上面的两种方法不能查看文件上傳进度无法显示已经上传的文件数量。若是需要查看以上两项HTML5可以实现(实现方法略)

}

我要回帖

更多关于 java spring框架 入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信