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 方法调用
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. FAQ
2.1.10.1. warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
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.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 Docker
5.23.1.
5.23.2.
5.23.3.
5.23.4.
5.23.5.
5.24. FAQ
5.24.1. application.properties 参考
5.24.2. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
5.24.3. No identifier specified for entity
5.24.4. Could not read document: Invalid UTF-8 middle byte 0xd0
5.24.5. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
5.24.6. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
5.24.7. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
5.24.8. Spring boot 怎样显示执行的SQL语句
6. Tomcat
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
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. java 脚本引擎
18.1. Maven
18.2. Helloworld
18.3. 运行脚本文件
18.4. 变量传递
18.5. 全局变量与局部变量定义
18.6. 调用脚本中的函数或方法
18.7. 脚本编译
18.8. jjs - Invokes the Nashorn engine.
19. Crypto
19.1. MD5
19.2. AES
20. JSON (JavaScript Object Notation)
20.1. javax.json.*
20.1.1. Json 编码
20.1.2. Json 解码
20.1.3. URL获取Json
20.2. com.google.gson
20.2.1. map 处理
20.2.2. POJO
20.2.3. toJson
20.2.4. fromJson
20.2.5. JsonParser
21. AMQP(Advanced Message Queuing Protocol)
21.1. Send and Recv
21.2. direct
22. NoSQL
22.1. MongoDB
22.1.1. pom.xml
22.1.2. 插入操作
22.1.3. 读取操作
23. Jersey - RESTful Web Services in Java.
23.1. Client 2.x
23.1.1. Maven 版本
23.1.2. GET 操作
23.1.3. GET + Auth 用户认证
23.2. Client 1.x
23.2.1. Jersey + Auth + HTTP2 + SSL
24. Apache HttpComponents
24.1. Apache HttpClient
24.1.1. Maven
24.1.2. POST to Restfull
24.1.3. HTTPS
24.1.3.1. Get https 接口
24.1.3.2. POST json 数据
24.1.4. Host name 'api.netkiller.cn' does not match the certificate subject provided
25. Cache
25.1. java memcached client
25.2. Jedis
25.2.1. 认证
25.2.2. jedis.keys
25.3. Ehcache
26. Software Development Kit
26.1. Hessian
26.2. quartz-scheduler
26.3. Redisson
II. Search Engine
27. Solr
27.1. 安装
27.2. Core Admin
27.2.1. Schema
27.3. 索引
27.3.1. Indexing a directory of "rich" files
27.3.2. Indexing Solr XML
27.3.3. Indexing JSON
27.3.4. Deleting Data
27.4. 接口
27.4.1. 查询
27.5. FAQ
27.5.1. NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983.
27.6. Solr 1.3.0
27.6.1. Embedded Jetty
27.6.2. Jetty
27.6.3. Tomcat
27.6.4. solr-php-client
27.6.5. multicore
27.6.6. 中文分词
28. Elasticsearch
28.1. 安装 Elasticsearch
28.2. 文档API
28.2.1. 快速上手
28.2.2. 写入 PUT/POST
28.2.3. 获取 GET
28.2.4. 检查记录是否存在
28.2.5. 删除 Delete
28.2.6. 参数
28.3. 搜索
28.3.1. 分页
28.3.2. 字符串搜索
28.3.3. Query DSL
28.4. 中文分词插件管理
28.4.1. 安装插件
28.4.2. 创建索引
28.4.3. 删除索引
28.4.4. 配置索引分词插件
28.5. 映射
28.5.1. 查看 _mapping
28.5.2. 删除 _mapping
28.5.3. 创建 _mapping
28.5.4. 修改 _mapping
28.5.5. 数据类型
28.6. Alias management 别名管理
28.6.1. 查看索引别名
28.6.2. 创建索引别名
28.6.3. 修改别名
28.6.4. 删除别名
28.7. Example
28.7.1. 新闻资讯应用案例
28.8. 安装 Elasticsearch 2.3
28.8.1. RPM 安装
28.8.2. YUM 安装
28.8.3. 测试安装是否正常
28.8.4. Plugin 插件管理
28.9. FAQ
28.9.1. Plugin [analysis-ik] is incompatible with Elasticsearch [2.3.5]. Was designed for version [2.3.4]
28.9.2. mapper_parsing_exception: failed to parse [ctime]
29. Nutch
30. Sphinx
31. Lucene
32. MG4J
33. PhpDig
34. 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
25.1. memcached.java
27.1. Solr - schema.xml
27.2. /etc/profile.d/java.sh