Java EE学习日记2
来源:互联网 发布:剑网3万花捏脸数据 编辑:程序博客网 时间:2024/06/16 05:50
1. @RequestParam
解析:使用@RequestParam来映射请求参数,其中,value表示请求参数的参数名,required表示参数是否必须(默认为true),defaultValue表示请求参数的默认值。
2. @RequestHeader
解析:使用@RequestHeader绑定请求报头的属性值,通过@RequestHeader即可将请求头中的属性值绑定到处理方法的参数中。
3. @CookieValue
解析:使用@CookieValue绑定请求中的Cookie值,即@CookieValue可让处理方法参数绑定某个Cookie值。
4. 使用POJO对象绑定请求参数值
解析:Spring MVC会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值,并且支持级联属性。
5. MVC的Handler方法可以接受哪些Servlet API类型的参数?
解析:HttpServletRequest;HttpServletResponse;HttpSession;java.security.Principal;Locale;InputStream;OutputStream;Reader;Writer。
6. Spring MVC处理模型数据
解析:
(1)ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据。
(2)参数为org.springframework.ui.Model、org.springframework.ui.ModelMap或java.util.Map时,Map中的数据会自动添加到模型中。
(3)@SessionAttributes:将模型中的某个属性暂存到HttpSession中,以便多个请求之间可以共享这个属性。
(4)ModelAttribute:带@ModelAttribute注解的方法会将其输入的或创建的参数对象添加到Model对象中。
7. <mvc:resources/>
解析:<mvc:resources/>元素则指示Spring MVC哪些静态资源需要单独处理,即不通过dispatcher servlet。
8. 重定向和转发操作
解析:
(1)redirect:重定向操作。
(2)forward:转发操作。
9. Spring MVC数据绑定流程
解析:Spring MVC会将来自Web页面的请求和响应数据与Controller中对应处理方法的入参进行绑定,即数据绑定。
如下所示:
(1)Spring MVC主框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象。
(2)DataBinder对象调用装配在Spring MVC上下文中的ConversionService组件进行数据类型转换,数据格式化工作,将Servlet中的请求信息填充到入参对象中。
(3)调用Validator组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果BindingData对象。
(4)Spring MVC抽取BindingResult中的入参对象和校验错误对象,将它们赋给处理方法的相应入参。
10. Servlet API包
解析:
(1)javax.servlet:包含定义Servlet和Servlet容器之间契约的类和接口。
(2)javax.servlet.http:包含定义HTTP Servlet和Servlet容器之间契约的类和接口。
(3)javax.servlet.annotation:包含标注Servlet、filter、listener的标注,它还为被标注元件定义元数据。
(4)javax.servlet.descriptor:包含提供程序化登录Web应用程序配置信息的类型。
11. Servlet接口
解析:
(1)void init(ServletConfig config) throws ServletException:当请求Servlet时,Servlet容器会第一时间调用这个方法。这个方法在后续请求中不会再被调用。利用这个方法调用初始化代码。调用这个方法时,Servlet容器会传入一个ServletConfig。一般来说,会将ServletConfig赋给一个类级变量,因此这个对象可以通过Servlet类的其它点来使用。
(2)void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException:每当请求Servlet时,Servlet容器就会调用这个方法。编写代码时,假设Servlet要在这里被请求。第一次请求Servlet时,Servlet容易调用init方法和Service方法。后续请求将只调用Service方法。
(3)void destroy():当要销毁Servlet时,Servlet容器就会调用这个方法。当要卸载应用程序,或者当要关闭Servlet容器时,就会发生这种情况。一般会在这个方法中编写清除代码。
(4)java.lang.String getServletInfo():这个方法返回Servlet的描述。可以返回有用或为null的任意字符串。
(5)ServletConfig getServletConfig:这个方法会返回由Servlet容器传给init方法的ServletConfig。但为了让
getServletConfig返回一个非null值,必须将传给init方法的ServletConfig赋给一个类级变量。
12. JSP API包
解析:
(1)javax.servlet.jsp:包含用于Servlet/JSP容器将JSP页面为Servlet的核心类和接口。其中的两个重要成员是JspPage和HttpJspPage接口。所有的JSP页面实现类必须实现JspPage或HttpJspPage接口。
(2)javax.servlet.jsp.tagext:包括用于开发自定义标签的类型。
(3)javax.el:提供了统一表达式语言的API。
(4)javax.servlet.jsp.el:提供了一组必须右Servlet/JSP容器支持,以便在JSP页面中使用表达式语言的类。
13. JSP隐式对象
解析:
(1)request:javax.servlet.http.HttpServletRequest
(2)response:javax.servlet.http.HttpServletResponse
(3)out:javax.servlet.jsp.JspWriter
(4)session:javax.servlet.http.HttpSession
(5)application:javax.servlet.ServletContext
(6)config:javax.servlet.ServletConfig
(7)pageContext:javax.servlet.jsp.PageContext
(8)page:javax.servlet.jsp.HttpJspPage
(9)exception:java.lang.Throwable
14. mvc:annotation-driven
解析:
(1)<mvc:annotation-driven/>会自动注册RequestMappingHandlerMapping、RequestMappingHandlerAdapter与ExceptionHandlerExceptionResolver三个bean。
(2)支持使用ConversionService实例对表单参数进行类型转换。
(3)支持使用@NumberFormat、@DateTimeFormat注解完成数据类型的格式化。
(4)支持使用@Valid注解对JavaBean实例进行JSR 303验证。
(5)支持使用@RequestBody和@ResponseBody注解。
15. @InitBinder
(1)由@InitBinder标识的方法,可以对WebDataBinder对象进行初始化。WebDataBinder是DataBinder的子类,用于完成由表单字段到JavaBean属性的绑定。
(2)InitBinder方法不能有返回值,它必须声明为void。
(3)InitBinder方法的参数通常是WebDataBinder。
16. Bean Validation中内置的constraint
解析:
(1)@Null:被注释的元素必须为null。
(2)@NotNull:被注释的元素必须不为null。
(3)@AssertTrue:被注释的元素必须为true。
(4)@AssertFalse:被注释的元素必须为false。
(5)@Min(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值。
(6)@Max(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值。
(7)@DecimalMin(value):被注释的元素必须是一个数字,其值必须大于等于指定的最小值。
(8)@DecimalMax(value):被注释的元素必须是一个数字,其值必须小于等于指定的最大值。
(9)@Size(max, min):被注释的元素的大小必须在指定的范围内。
(10)@Digits (integer, fraction):被注释的元素必须是一个数字,其值必须在可接受的范围内。
(11)@Past:被注释的元素必须是一个过去的日期。
(12)@Future:被注释的元素必须是一个将来的日期。
(13)@Pattern(value):被注释的元素必须符合指定的正则表达式。
17. Hibernate Validator附加的constraint
解析:
(1)@Email:被注释的元素必须是电子邮箱地址。
(2)@Length:被注释的字符串的大小必须在指定的范围内。
(3)@NotEmpty:被注释的字符串的必须非空。
(4)@Range:被注释的元素必须在合适的范围内。
18. Jackson
解析:
Jackson提供了两种不同的JSON解析器,如下所示:
(1)ObjectMapper:把JSON解析到自定义的Java类中,或者解析到一个Jackson指定的树形结构中。
(2)Jackson JsonParser:一种“拉式”解析器,每次解析一组JSON数据。
Jackson也包含了两种不同的JSON生成器,如下所示:
(1)ObjectMapper:把自定义的Java类,或者一个Jackson指定的树形结构生成为JSON文件。
(2)Jackson JsonGenerator:每次只生成一组JSON数据。
19. HttpMessageConverter<T>
解析:它是Spring 3.0新添加的一个接口,负责将请求信息转换为一个对象(类型为T),将对象(类型为T)输出为响应信息。如下所示:
(1)使用@RequestBody/@ResponseBody对处理方法进行标注。
(2)使用HttpEntity<T>/ResponseEntity<T>作为处理方法的入参或返回值。
20. I18N标签库
解析:I18N标签库提供了11个标签,从功能上可以划分为3类,如下所示:
(1)数字日期格式化:formatNumber标签、formatData标签、parseNumber标签、parseDate标签、timeZone标签、setTimeZone标签。
(2)读取消息资源:bundle标签、message标签、setBundle标签。
(3)国际化:setlocale标签、requestEncoding标签。
说明:JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要I18N格式标签库(I18N-capable formation tags liberary),引入该标签库的方法为:<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>。
21. SimpleMappingExceptionResolver
解析:如果希望对所有异常进行统一处理,可以使用SimpleMappingExceptionResolver,它将异常类名映射为视图名,即发生异常时使用对应的视图报告异常。
22. EhCache
解析:EhCache是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。
23. gradle
解析:Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主,当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。
24. JFreeChart
解析:JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。
25. JAX-RS
解析:JAX-RS是JAVA EE6引入的一个新技术。JAX-RS即Java API for RESTful Web Services,是一个Java编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客户端和服务端的开发和部署。
参考文献:
[1] Spring MVC学习指南
[2] Jersey:https://jersey.github.io/index.html
[3] Jetty:https://www.eclipse.org/jetty/download.html
- Java EE学习日记2
- Java EE学习日记1
- Java EE学习日记3
- java学习日记2
- 开始学习java ee
- JAVA EE学习步骤
- JAVA EE学习步骤
- JAVA EE 学习报告
- Java EE学习笔记
- Java EE学习流程
- JAVA EE学习
- Java EE学习步骤
- Java EE 学习笔记
- 如何学习java ee
- Java EE学习笔记
- java ee学习路线
- Java菜鸟学习日记2
- JAVA学习日记 2017.8.2
- 数组字段映射(find_in_set()、charindex())的实现#
- python3.6在window10下安装
- python中的4种常用的print方式
- PHP之继承
- PAT刷题:1017. Queueing at Bank (25)
- Java EE学习日记2
- js-中介者模式-demo
- java之单类引入&&包引入
- 背包算法
- Destroying Array(并查集 高能坑点)
- hibernate中事务管理
- 关于lib文件的介绍
- 压缩感知重构算法之迭代硬阈值(Iterative Hard Thresholding,IHT)
- 结构体(2)