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.3.8.2. maven-install-plugin
2.3.8.3. maven-surefire-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. Maven
5.8.2. application.properties
5.8.3. Application
5.8.4. IndexController
5.8.5. src/main/webapp/WEB-INF/jsp/index.jsp
5.8.6. 整合模板引擎
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 Elasticsearch
5.25.1. Maven
5.25.2. Application
5.25.3. application.properties
5.25.4. Domain
5.25.5. ElasticsearchRepository
5.26. Spring boot with Apache Hive
5.26.1. Maven
5.26.2. application.properties
5.26.3. Configuration
5.27. Spring boot with Phoenix
5.27.1. Maven
5.27.2. application.properties
5.27.3. Configuration
5.28. Spring boot with Docker
5.28.1.
5.28.2.
5.28.3.
5.28.4.
5.29. FAQ
5.29.1. application.properties 參考
5.29.2. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
5.29.3. No identifier specified for entity
5.29.4. Could not read document: Invalid UTF-8 middle byte 0xd0
5.29.5. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
5.29.6. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
5.29.7. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
5.29.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