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.4. 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.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.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.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. velocity
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. 列出 Beans
5.5. 编译用于Tomcat的 War
5.6. Properties
5.6.1. Application
5.6.2. spring.profiles.active 参数切换配置文件
5.7. 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 Email
5.15.1. Maven
5.15.2. Resource
5.15.3. POJO
5.15.4. RestController
5.15.5. Test
5.16. Spring boot with Velocity template
5.16.1. Maven
5.16.2. Resource
5.16.3. Application
5.16.4. RestController
5.16.5. Test
5.17. Spring boot with Spring security
5.17.1. Maven
5.17.2. Reource
5.17.3. Application
5.17.4. WebSecurityConfigurer
5.17.5. RestController
5.17.6. 测试
5.17.7. Spring + Security + MongoDB
5.18. Spring boot with Scheduling
5.18.1. Application.java
5.18.2. Component
5.18.3. 查看日志
5.19. Spring boot with Cache
5.19.1. Spring boot with Redis
5.19.2. @Cacheable
5.20. Spring boot with Hessian
5.20.1. Maven
5.20.2. Application
5.20.3. HessianServiceExporter
5.20.4. Service
5.20.5. RestController
5.21. Spring boot with Apache Kafka
5.21.1. 安装 kafka
5.21.2. maven
5.21.3. Spring boot Application
5.21.4. EnableKafka
5.21.5. KafkaListener
5.21.6. 测试
5.21.7. 完整的发布订阅实例
5.22. FAQ
5.22.1. application.properties 参考
5.22.2. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
5.22.3. No identifier specified for entity
5.22.4. Could not read document: Invalid UTF-8 middle byte 0xd0
5.22.5. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
5.22.6. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
5.22.7. Spring boot 怎样显示执行的SQL语句
6. Spring MVC
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. Thymeleaf
6.5.1. Maven pom.xml
6.5.2. Spring 配置
6.5.3. controller
6.5.4. HTML5 Template
6.6. 集成 Mybatis
6.6.1. pom.xml
6.6.2. properties
6.6.3. dataSource
6.6.4. SqlSessionFactory
6.6.5. Mapper 扫描
6.6.6. Mapper 单一class映射
6.6.7. Service
6.6.8. 测试实例
6.7. Properties
6.7.1. 载入*.properties文件
6.7.2. @Value 注解
6.7.3. @PropertySource 注解
6.8. @Controller
6.8.1. @RequestMapping
6.8.2. @ResponseBody
6.8.3. RequestMapping with Path Variables - @PathVariable
6.8.4. RequestMapping with Request Parameters - @RequestParam
6.8.5. @ModelAttribute
6.8.6. ModelAndView
6.8.7. @Scheduled
6.8.8. @CrossOrigin
6.8.9. HttpServletRequest / HttpServletResponse
6.9. Spring4 Restful
6.9.1. pom.xml
6.9.2. web.xml
6.9.3. springframework.xml
6.9.4. RestController
6.9.5. POJO
6.9.6. 测试
6.9.7. RestTemplate
6.9.8. HTTP Auth
6.10. Using Spring’s form tag library
6.10.1. css
6.10.2. cssClass
6.11. FreeMarker
6.12. FAQ
6.12.1. o.s.web.servlet.PageNotFound
6.12.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
6.12.3. 同时使用 Thymeleaf 与 JSP
6.12.4. 排除静态内容
6.12.5. HTTP Status 406
7. Spring Data
7.1. Redis
7.1.1. pom.xml
7.1.2. springframework-servlet.xml
7.1.3. Controller
7.1.4. index.jsp
7.1.5. 测试
7.2. Spring Data MongoDB
7.2.1. Example Spring Data MongoDB
7.2.2. @Document
7.2.3. MongoRepository
7.3. Spring Data JPA
7.3.1. @Entity
7.3.2. Query
7.3.3. JdbcTemplate
7.4. FAQ
7.4.1. No identifier specified for entity
7.4.2. Oracle Date 类型显示日期和时间
8. Spring Security
8.1. EnableWebSecurity
8.1.1. 访问控制列表(Access Control List,ACL)
8.1.2. HTTP Auth
8.1.3. Rest
8.1.4.
8.1.5. Add User
8.2.
8.3.
9. Interceptor
9.1. WebMvcConfigurerAdapter
9.2. HandlerInterceptor
10. Spring Cloud
10.1. Spring Cloud Config
11. MyBatis
11.1. Mybatis 入门
11.2. 接口注解
12. Apache Struts
12.1. struts.xml
12.1.1. include
12.2. Struts Tags
12.2.1. property
12.2.2. set
12.2.3. url
12.2.4. s:include
12.2.5. s:action
12.2.6. HTML Form
12.2.6.1. form
12.2.6.2. textfield
12.2.6.3. s:hidden
12.2.6.4. select
12.2.7. iterator
12.2.8. if elseif else
12.3. Action
12.3.1. redirect
12.3.2. redirectAction
12.3.3. JSON
12.3.3.1. enableGZIP 压缩传输
12.3.3.2. excludeProperties 排除 Properties
12.3.3.3.
12.3.4. 传递 Timestamp 变量
12.4. Ajax + JSON
12.4.1. GET/POST JSON
12.5. Json 内容展示
12.5.1. 禁止方法
12.5.2. 格式化日期
12.5.3. 重命名变量名
12.5.4. org.apache.struts2.json
12.6. Interceptor
12.6.1. Session
12.7. Action 中使用线程
12.8. 日志
12.9. FAQ
12.9.1. Struts 怎样判断用户来自电脑还是移动设备
13. Apache Tiles
13.1. 配置 Tiles
13.1.1. Maven
13.1.2. web.xml
13.2. Template 配置模板
13.3. Struts tiles
14. Play
15. Log
15.1. Logback
15.2. slf4j
15.3. log4j
15.3.1. 安装 Log4j
15.3.1.1. 手工安装
15.3.1.2. Maven
15.3.2. log4j 环境变量
15.3.3. Log4j Example
15.3.4. log4j.properties
16. java 脚本引擎
16.1. Maven
16.2. Helloworld
16.3. 运行脚本文件
16.4. 变量传递
16.5. 全局变量与局部变量定义
16.6. 调用脚本中的函数或方法
16.7. 脚本编译
16.8. jjs - Invokes the Nashorn engine.
17. Crypto
17.1. AES
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
7.1. Spring Data Redis Example
7.2. Spring Data MongoDB - springframework-servlet.xml
23.1. memcached.java
25.1. Solr - schema.xml
25.2. /etc/profile.d/java.sh