Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Search | Email

Netkiller Java 手札

Java, Servlet, JavaBean, Struts, Spring ...

Mr. Neo Chan, 陈景峯(BG7NYT)


中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890


文档始创于2015-11-10

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

微信扫描二维码进入 Netkiller 微信订阅号

QQ群:128659835 请注明“读者”

$Date: 2013-04-10 15:03:49 +0800 (Wed, 10 Apr 2013) $

关于《Netkiller Java 手札》

作者2002年开始在项目中使用Java,各种原因没有留下Java文档,2015因工作需要重新拾起Java并整理本文档。


目录

1. 自述
1.1. 系列文档
1.2. 作者简介
1.3. 写给读者
1.4. 文档下载
1.5. 打赏(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付宝(Alipay)
1.5.3. PayPal Donations
1.5.4. 银行(Bank)
1. Java
1.1. JVM
1.1.1. 安装 Java 6
1.1.1.1. HeapDumpOnOutOfMemoryError
1.1.2. java-1.8.0-openjdk
1.1.3. java - Launches a Java application.
1.1.3.1. -verbose:class 显示载入jar文件
1.1.3.2. java.io.tmpdir
1.1.3.3. 显示版本号
1.1.4. jar
1.1.5. jdeps - Java class dependency analyzer.
1.2. System
1.2.1. user.dir
1.2.2. java.io.tmpdir
1.2.3. 自定义
1.3. exec 运行shell
1.4. 类型
1.4.1. String
1.4.1.1. 随机字符串
1.4.1.2. 字符串替换处理
1.4.1.3. substring
1.4.1.4. string to timestamp
1.4.2. 类型转换
1.4.2.1. Long to String
1.4.3. Date
1.4.3.1. SimpleDateFormat
1.4.3.2. Timestamp
1.4.3.3. TimeZone
1.4.3.4. String to Date
1.4.3.5. 比较两个日期与时间
1.4.3.6. Calendar
1.4.3.7. getToday
1.4.3.8. Yesterday
1.4.4. Array
1.4.4.1. for each
1.4.4.2. Array to String
1.4.5. float
1.4.6. double
1.4.7. BigDecimal
1.4.7.1. Convert BigDecimal Object to double value
1.4.8. enum
1.5. 数据结构
1.5.1. Collection
1.5.2. ArrayList
1.5.2.1. ArrayList to String
1.5.2.2. Array to List
1.5.3. HashMap
1.5.3.1. foreach hashmap
1.6. Network
1.6.1. URL
1.6.2. java.io.tmpdir
1.7. JDBC
1.7.1. 安装 JDBC 包
1.7.2. MySQL
1.7.3. Oracle
1.7.3.1. SID
1.7.3.2. SERVICE_NAME
1.7.3.3. TNS
1.7.3.4. Oracle RAC Cluster
1.7.3.5. Oracle JDBC Demo
1.7.4. FAQ
1.7.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
1.7.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
1.8. Util
1.8.1. *.properties
1.8.1.1. propertyNames()
1.8.1.2. keySet()
1.8.1.3. entrySet()
1.8.1.4. 方法中返回 Properties
1.8.1.5.
1.8.1.6. getResourceAsStream()
1.8.1.7. store
1.8.2. Logging
1.8.2.1. console
1.8.3. BASE64
1.9. Reflection 反射
1.9.1. 获得所有变量
1.9.2. 批量赋值
1.9.3. 方法操作
1.9.3.1. 获得所有方法
1.9.3.2. set/get 方法
1.9.3.3. static 方法调用
1.10. Thread 线程
1.10.1. 实现异步执行
1.10.2.
1.10.3.
1.11. java 脚本引擎
1.11.1. Maven
1.11.2. Helloworld
1.11.3. 运行脚本文件
1.11.4. 变量传递
1.11.5. 全局变量与局部变量定义
1.11.6. 调用脚本中的函数或方法
1.11.7. 脚本编译
1.11.8. jjs - Invokes the Nashorn engine.
1.12. Crypto
1.12.1. MD5
1.12.2. AES
2. Build Tools
2.1. Apache Ant
2.1.1. Project
2.1.1.1. property
2.1.1.2. ant
2.1.1.3. environment
2.1.2. path
2.1.3. copy
2.1.4. javac
2.1.5. condition
2.1.6. exec
2.1.6.1. sshexec
2.1.7. if
2.1.8. macrodef
2.1.8.1. Git
2.1.8.2. Rsync
2.1.8.3. SSH
2.1.8.4. maven
2.1.9. Javascript
2.1.10. mail
2.1.11. FAQ
2.1.11.1. warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
2.1.11.2. 调试 exec
2.2. Apache Ivy
2.2.1. Ivy Install
2.2.1.1. source code
2.2.1.2. apt-get
2.2.2. Test example
2.3. maven
2.3.1. 安装
2.3.1.1. Ubuntu
2.3.1.2. 源码安装
2.3.2. Maven 仓库
2.3.3. pom.xml
2.3.3.1. properties
2.3.3.2. dependencies
2.3.3.3. build
2.3.3.4. plugins
2.3.4. Maven 命令
2.3.4.1. clean
2.3.4.2. compile
2.3.4.3. test
2.3.4.4. package
2.3.4.5. install
2.3.4.6. war
2.3.4.7. exec
2.3.5. dependency
2.3.5.1. build-classpath
2.3.5.2. dependency:tree 显示包依赖树
2.3.5.3. copy-dependencies 导出依赖包
2.3.5.4. analyze 查看未被使用的包
2.3.5.5. sources 下载源码
2.3.6. help
2.3.7. resources 文件处理
2.3.8. plugins
2.3.8.1. maven-antrun-plugin
2.4. Gradle
2.4.1. gradle 命令
2.4.1.1. tasks 列出任务
2.4.2. build.gradle
2.4.2.1. repositories
2.4.2.2. dependencies
2.4.2.3. jar
2.4.3. gradle.properties
2.4.3.1. 列出 properties
2.4.3.2. 自定义 gradle.properties
2.4.3.3.
2.4.3.4. System.properties
2.4.4. Example
3. Servlet
3.1. Example
3.2. Session
3.3. HttpServletRequest
3.4. Filter
3.4.1. web.xml
3.4.2. Filter 类
3.5. Listener
3.5.1. web.xml
3.5.2. NewsListener 类
3.5.3. NewsTask 类
3.5.4. JSP 中心显示
3.6. JSP
3.6.1. 注释
3.6.2. pageContext
3.6.2.1. queryString
3.6.3. request
3.6.3.1. Form
3.6.4.
3.6.4.1. sendRedirect
3.6.5. cookie
3.6.6. session
3.6.7. page
3.6.7.1. Session
3.6.8. trimDirectiveWhitespaces
3.6.9. include
3.6.10. jsp
3.6.10.1. jsp:forward
3.6.11. error-page
3.6.12. JSP 编程
3.6.12.1. 随机数
3.6.13. FAQ
3.6.13.1. http://www.netkiller.cn/test.html;jsessionid=7D25CE666FF437F2094AA945E97CEB37
3.7. JSTL(JavaServer Pages Standard Tag Library)
3.7.1. c:set
3.7.1.1. c:remove
3.7.2. c:out
3.7.3. c:url
3.7.4. c:redirect
3.7.5. c:import
3.7.6. c:if
3.7.6.1. boolean
3.7.7. c:choose
3.7.8. c:forEach
3.7.8.1. List 处理
3.7.8.2. Map 处理
3.7.9. empty 判断是否为空
3.7.10. JSTL fmt Tag setBundle Example
3.7.10.1. fmt:message
3.7.10.2.
3.8. WebSocket
3.8.1. Server
3.8.2. Client
I. Spring Framework
4. Spring Tool Suite
4.1. 安装
4.2. Dashboard
5. Spring Boot
5.1. Spring Boot Quick start
5.1.1. pom.xml
5.1.2. Controller
5.2. 运行
5.2.1. Linux systemd
5.2.2. 传统 init.d 脚本
5.3. application.properties
5.3.1. PID FILE
5.3.2. 内嵌 tomcat server
5.3.3. JSON
5.3.4. SMTP 相关配置
5.3.5. Redis
5.3.6. MongoDB
5.3.7. MySQL
5.3.8. Oracle
5.3.9. default_schema
5.3.10. velocity
5.3.11.
5.4. SpringApplication
5.4.1. @SpringBootApplication
5.4.2. @EnableAutoConfiguration
5.4.3. @ComponentScan
5.4.4. CharacterEncodingFilter
5.4.5. 隐藏 Banner
5.4.6. CORS 跨域请求
5.4.7. 实体与仓库扫描
5.4.8. 列出 Beans
5.5. 编译用于Tomcat的 War
5.6. Properties
5.6.1. Application
5.6.2. spring.profiles.active 参数切换配置文件
5.7. Service
5.7.1. Application
5.7.2. 定义接口
5.7.3. 实现接口
5.7.4. 调用 Service
5.8. ViewResolver
5.8.1. application.properties
5.8.2. Application
5.8.3. IndexController
5.8.4. src/main/webapp/WEB-INF/jsp/index.jsp
5.8.5. 集成模板引擎
5.9. Logging
5.9.1. 打印日志
5.9.2. 日志输出级别
5.9.3. 禁止控制台输出日志
5.9.4. 日志分割
5.9.5. 日志写入 MongoDB
5.10. Session share
5.10.1. Redis
5.10.2. 测试 Session
5.10.3. JDBC
5.11. Connection and Statement Pooling
5.11.1. org.apache.tomcat.jdbc.pool.DataSource
5.11.2. druid
5.11.3. c3p0 - JDBC3 Connection and Statement Pooling
5.11.4. dbcp2
5.11.5. bonecp
5.11.6. dbcp2
5.12. Spring boot with MongoDB
5.12.1. Maven
5.12.2. Application
5.12.3. MongoTemplate
5.12.4. Repository
5.13. Spring boot with MySQL
5.13.1. Maven
5.13.2. Resource
5.13.3. Application
5.13.4. JdbcTemplate
5.13.5. CrudRepository
5.14. Spring boot with Oracle
5.14.1. Maven
5.14.2. application.properties
5.14.3. Application
5.14.4. CrudRepository
5.14.5. JdbcTemplate
5.14.6. Controller
5.15. Spring boot with PostgreSQL
5.15.1. pom.xml
5.15.2. application.properties
5.15.3. Application
5.15.4. CrudRepository
5.15.5. JdbcTemplate
5.15.6. Controller
5.15.7. Test
5.16. Spring boot with Email
5.16.1. Maven
5.16.2. Resource
5.16.3. POJO
5.16.4. RestController
5.16.5. Test
5.17. Spring boot with Velocity template
5.17.1. Maven
5.17.2. Resource
5.17.3. Application
5.17.4. RestController
5.17.5. Test
5.18. Spring boot with Spring security
5.18.1. Maven
5.18.2. Reource
5.18.3. Application
5.18.4. WebSecurityConfigurer
5.18.5. RestController
5.18.6. 测试
5.18.7. Spring + Security + MongoDB
5.19. Spring boot with Scheduling
5.19.1. Application.java
5.19.2. Component
5.19.3. 查看日志
5.19.4. 计划任务控制
5.20. Spring boot with Cache
5.20.1. Spring boot with Redis
5.20.2. @Cacheable
5.21. Spring boot with Hessian
5.21.1. Maven
5.21.2. Application
5.21.3. HessianServiceExporter
5.21.4. Service
5.21.5. RestController
5.22. Spring boot with Apache Kafka
5.22.1. 安装 kafka
5.22.2. maven
5.22.3. Spring boot Application
5.22.4. EnableKafka
5.22.5. KafkaListener
5.22.6. 测试
5.22.7. 完整的发布订阅实例
5.23. Spring boot with Git version
5.23.1. CommonRestController 公共控制器
5.23.2. VersionRestController 测试控制器
5.23.3. 创建 .gitattributes 文件
5.24. Spring boot with HTTPS SSL
5.24.1. 生成自签名证书
5.24.2. application..properties 配置文件
5.24.3. 启动 Spring boot
5.24.4. restTemplate 调用实例
5.25. Spring boot with Docker
5.25.1.
5.25.2.
5.25.3.
5.25.4.
5.26. FAQ
5.26.1. application.properties 参考
5.26.2. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
5.26.3. No identifier specified for entity
5.26.4. Could not read document: Invalid UTF-8 middle byte 0xd0
5.26.5. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
5.26.6. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
5.26.7. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
5.26.8. Spring boot 怎样显示执行的SQL语句
6. Tomcat Spring 运行环境
6.1. Maven
6.2. Spring Boot Quick start
6.2.1. pom.xml
6.2.2. Controller
6.3. Spring MVC configuration
6.4. Tomcat
6.5. 集成 Mybatis
6.5.1. pom.xml
6.5.2. properties
6.5.3. dataSource
6.5.4. SqlSessionFactory
6.5.5. Mapper 扫描
6.5.6. Mapper 单一class映射
6.5.7. Service
6.5.8. 测试实例
7. Spring MVC
7.1. @Controller
7.1.1. @RequestMapping
7.1.2. @ResponseBody
7.1.3. RequestMapping with Path Variables - @PathVariable
7.1.4. RequestMapping with Request Parameters - @RequestParam
7.1.5. @ModelAttribute
7.1.6. ModelAndView
7.1.7. @Scheduled
7.1.8. @CrossOrigin
7.1.9. @SessionAttributes
7.1.10. HttpServletRequest / HttpServletResponse
7.2. View
7.2.1. Using Spring’s form tag library
7.2.2. Thymeleaf
7.2.3. FreeMarker
7.3. Properties
7.3.1. 载入*.properties文件
7.3.2. @Value 注解
7.3.3. @PropertySource 注解
7.4. FAQ
7.4.1. o.s.web.servlet.PageNotFound
7.4.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
7.4.3. 同时使用 Thymeleaf 与 JSP
7.4.4. 排除静态内容
7.4.5. HTTP Status 406
8. Spring Data
8.1. Redis
8.1.1. pom.xml
8.1.2. springframework-servlet.xml
8.1.3. Controller
8.1.4. index.jsp
8.1.5. 测试
8.2. Spring Data MongoDB
8.2.1. Example Spring Data MongoDB
8.2.2. @Document
8.2.3. MongoRepository
8.2.4. mongoTemplate
8.3. Spring Data JPA
8.3.1. @Entity
8.3.2. Query
8.3.3. Repository
8.3.4. JdbcTemplate
8.4. FAQ
8.4.1. No identifier specified for entity
8.4.2. Oracle Date 类型显示日期和时间
9. Spring Security
9.1. EnableWebSecurity
9.1.1. 访问控制列表(Access Control List,ACL)
9.1.2. HTTP Auth
9.1.3. Rest
9.1.4. hasRole
9.1.5. Add User
9.2. 获取当前用户
9.3. HTTP 安全
10. RestTemplate - Spring4 Restful
10.1. RestTemplate Example
10.1.1. pom.xml
10.1.2. web.xml
10.1.3. springframework.xml
10.1.4. RestController
10.1.5. POJO
10.1.6. 测试
10.2. String boot with RestTemplate
10.2.1. 在控制器中完整实例
10.3. getForObject
10.3.1. 返回字符串
10.3.2. 传递 GET 参数
10.4. postForObject
10.4.1. 传递对象
10.4.2. 传递数据结构 MultiValueMap
10.5. postForEntity
10.6. PUT
10.7. Delete
10.8. HTTP Auth
10.8.1. Client
11. Interceptor
11.1. WebMvcConfigurerAdapter
11.2. HandlerInterceptor
12. Spring Cloud
12.1. Spring Cloud Config
12.1.1. Git 仓库
12.1.2. Server
12.1.3. Client
12.1.4. Config server 用户认证
12.1.5. 加密敏感数据
12.2. Spring Cloud Netflix
12.2.1. Eureka Server
12.2.2. Eureka Client
12.2.3. Feign client
13. MyBatis
13.1. Mybatis 入门
13.2. 接口注解
14. Apache Struts
14.1. struts.xml
14.1.1. include
14.2. Struts Tags
14.2.1. property
14.2.2. set
14.2.3. url
14.2.4. s:include
14.2.5. s:action
14.2.6. HTML Form
14.2.6.1. form
14.2.6.2. textfield
14.2.6.3. s:hidden
14.2.6.4. select
14.2.7. iterator
14.2.8. if elseif else
14.3. Action
14.3.1. redirect
14.3.2. redirectAction
14.3.3. JSON
14.3.3.1. enableGZIP 压缩传输
14.3.3.2. excludeProperties 排除 Properties
14.3.3.3.
14.3.4. 传递 Timestamp 变量
14.4. Ajax + JSON
14.4.1. GET/POST JSON
14.5. Json 内容展示
14.5.1. 禁止方法
14.5.2. 格式化日期
14.5.3. 重命名变量名
14.5.4. org.apache.struts2.json
14.6. Interceptor
14.6.1. Session
14.7. Action 中使用线程
14.8. 日志
14.9. FAQ
14.9.1. Struts 怎样判断用户来自电脑还是移动设备
15. Apache Tiles
15.1. 配置 Tiles
15.1.1. Maven
15.1.2. web.xml
15.2. Template 配置模板
15.3. Struts tiles
16. Play
17. Log
17.1. Logback
17.2. slf4j
17.3. log4j
17.3.1. 安装 Log4j
17.3.1.1. 手工安装
17.3.1.2. Maven
17.3.2. log4j 环境变量
17.3.3. Log4j Example
17.3.4. log4j.properties
18. JSON (JavaScript Object Notation)
18.1. javax.json.*
18.1.1. Json 编码
18.1.2. Json 解码
18.1.3. URL获取Json
18.2. com.google.gson
18.2.1. map 处理
18.2.2. POJO
18.2.3. toJson
18.2.4. fromJson
18.2.5. JsonParser
19. AMQP(Advanced Message Queuing Protocol)
19.1. Send and Recv
19.2. direct
20. NoSQL
20.1. MongoDB
20.1.1. pom.xml
20.1.2. 插入操作
20.1.3. 读取操作
21. Jersey - RESTful Web Services in Java.
21.1. Client 2.x
21.1.1. Maven 版本
21.1.2. GET 操作
21.1.3. GET + Auth 用户认证
21.2. Client 1.x
21.2.1. Jersey + Auth + HTTP2 + SSL
22. Apache HttpComponents
22.1. Apache HttpClient
22.1.1. Maven
22.1.2. POST to Restfull
22.1.3. HTTPS
22.1.3.1. Get https 接口
22.1.3.2. POST json 数据
22.1.4. Host name 'api.netkiller.cn' does not match the certificate subject provided
23. Cache
23.1. java memcached client
23.2. Jedis
23.2.1. 认证
23.2.2. jedis.keys
23.3. Ehcache
24. Software Development Kit
24.1. Hessian
24.2. quartz-scheduler
24.3. Redisson
II. Search Engine
25. Solr
25.1. 安装
25.2. Core Admin
25.2.1. Schema
25.3. 索引
25.3.1. Indexing a directory of "rich" files
25.3.2. Indexing Solr XML
25.3.3. Indexing JSON
25.3.4. Deleting Data
25.4. 接口
25.4.1. 查询
25.5. FAQ
25.5.1. NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983.
25.6. Solr 1.3.0
25.6.1. Embedded Jetty
25.6.2. Jetty
25.6.3. Tomcat
25.6.4. solr-php-client
25.6.5. multicore
25.6.6. 中文分词
26. Elasticsearch
26.1. 安装 Elasticsearch
26.2. 文档API
26.2.1. 快速上手
26.2.2. 写入 PUT/POST
26.2.3. 获取 GET
26.2.4. 检查记录是否存在
26.2.5. 删除 Delete
26.2.6. 参数
26.3. 搜索
26.3.1. 分页
26.3.2. 字符串搜索
26.3.3. Query DSL
26.4. 中文分词插件管理
26.4.1. 安装插件
26.4.2. 创建索引
26.4.3. 删除索引
26.4.4. 配置索引分词插件
26.5. 映射
26.5.1. 查看 _mapping
26.5.2. 删除 _mapping
26.5.3. 创建 _mapping
26.5.4. 修改 _mapping
26.5.5. 数据类型
26.6. Alias management 别名管理
26.6.1. 查看索引别名
26.6.2. 创建索引别名
26.6.3. 修改别名
26.6.4. 删除别名
26.7. Example
26.7.1. 新闻资讯应用案例
26.8. 安装 Elasticsearch 2.3
26.8.1. RPM 安装
26.8.2. YUM 安装
26.8.3. 测试安装是否正常
26.8.4. Plugin 插件管理
26.9. FAQ
26.9.1. Plugin [analysis-ik] is incompatible with Elasticsearch [2.3.5]. Was designed for version [2.3.4]
26.9.2. mapper_parsing_exception: failed to parse [ctime]
27. Nutch
28. Sphinx
29. Lucene
30. MG4J
31. PhpDig
32. Mahout

范例清单

1.1. /etc/profile.d/java.sh
2.1. Maven properties
5.1. Example Spring boot with Oracle
5.2. Spring boot with Email (pom.xml)
5.3. Spring boot with Velocity template (pom.xml)
5.4. RedisTemplate
5.5. Spring boot with Apache kafka.
6.1. MyBatis
8.1. Spring Data Redis Example
8.2. Spring Data MongoDB - springframework-servlet.xml
23.1. memcached.java
25.1. Solr - schema.xml
25.2. /etc/profile.d/java.sh