Tomcat - 常用配置
2019獨角獸企業重金招聘Python工程師標準>>>
Tomcat JNDI 配置
JNDI:Java Naming and Directory Interface Java命名和目錄接口,顧名思義就是提供Java的名稱和目錄方面的操作
常用名詞解釋:
- 命名系統:一個具有相同命名約定的上下文的集合(可以嵌套:類似目錄)
- 名稱空間:一個命名/目錄系統中名字的集合
設計思想:
- JNDI提供通用的接口,底層的名稱服務可以多種實現,這種JNDI通過SPI的接口規范可以屏蔽各種SPI具體實現的細節
SPI實現:LDAP/DNS/NIS/RMI/NDS/CORBA
基礎包:
- javax.naming:包含名稱服務的類和訪問接口
- Context:上下文:用戶定義對象在名稱空間中的位置,提供查看、綁定、對象更名等功能
- InitialContext:提供名稱/目錄服務的起始位置(JNDI無絕對root的概念,所有的操作都建立在Context上)
javax.nameing.directory:
- javax.naming擴展包,主要提供目錄的功能
- DirContext:提供對象在directory內的接口(提供對目錄屬性的查詢、更新等功能)
jaxa.naming.spi: 為開發特定的naming/directory系統定義的接口規范
JNDI的用途:連接對象/連接JDBC資源/連接JMS資源/連接JavaMail資源
Tomcat 配置JNDI 數據源般步驟:
①:配置JNDI數據源
Tomcat的conf文件夾下的context.xml文件(eclipse可直接在Servers\Tomcat v8.0 Server at localhost-config下的context.xml配置)
- name:資源名稱
- auth:授權訪問用戶名
- type:資源類型
- driverClassName:驅動類全路徑
- url:數據庫鏈接字符串
- username:用戶名
- password:密碼 -- maxActive:最大訪問并發數
- maxIdle:最大閑置連接數
- maxWait:最大等待時間
Tomcat引用JNDI資源:web.xml配置
- description:JNDI資源描述
- res-ref-name:引用的資源名稱,與context.xml配置的資源名保持一致
- res-type:JNDI資源類型
- res-auth:授權訪問用戶名
測試JNDI資源:注意JNDI屬于J2EE中的規范,運行需要J2EE容器的支持,因此如果使用main方法進行測試會出現異常
package com.zhiwei.model;import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import com.zhiwei.form.UserForm;public class UserJNDITool {//定義數據庫基本參數private static Connection ct=null;private static PreparedStatement ps=null;private static ResultSet rs=null;/**JNDI測試只能在WEB項目中測試,Main方法報異常*/public static void testJNDI() throws NamingException, SQLException{ //構建名稱/目錄上下文對象,作為名稱服務的基礎環境Context ctx = new InitialContext(); //J2EE容器規范:java:comp/env的JNDI名稱前綴必不可少DataSource ds = (DataSource); ctx.lookup("java:comp/env/jndi/mysql"); ct = ds.getConnection(); ps = ct.prepareStatement("select *from student");rs = ps.executeQuery();while(rs.next()){System.out.println(rs.getString(1)+"-"+rs.getString(2)+"-"+rs.getString(3));}CloseDB();System.out.println("JNDI-->數據庫連接關閉:"+ct.isClosed()); } /**關閉數據庫資源*/public static void CloseDB(){try {if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(ct!=null){ct.close();}} catch (Exception e) {e.printStackTrace();}} }測試JSP:
<%@page import="com.zhiwei.model.UserJNDITool"%> <%@page %> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta https-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Test JNDI</title> </head> <body> <% //測試Tomcat的JNDI服務 UserJNDITool.testJNDI(); %> </body> </html>測試結果:
Tomcat 配置 httpss
JDK的keytool工具介紹:
生成證書的命令:keytool -genkey
配置Tomcat證書的步驟: ①:生成服務器證書:(注意文件夾事先必須存在/主機名(非IP地址))
keytool -genkey -alias server -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/server.keystore -storepass 123456②:生成客戶端證書:
keytool -genkey -alias client -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -storetype PKCS12 -keystore D:/keys/client.p12 -storepass 123456注意:PKCS12格式的證書兼容性比較好,如果不是這種格式,谷歌瀏覽器/火狐瀏覽器可能直接報錯誤,無法進入httpss的網頁
③:服務器信任客戶端證書:
- 證書格式轉換:
- 正式導入客戶端證書:
- 安裝客戶端證書:單擊client.cer證書,直接安裝
④:客戶端信任服務端證書:
- 生成服務器安裝證書:
- 安裝服務器證書:單擊server.cer文件,安裝證書(證書添加在瀏覽器"受信任的根證書頒發機構”)
⑤:配置tomcat: server.xml文件
取消注釋即可:
<Connector port="8443" protocol="org.apache.coyote.https11.https11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="httpss" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="D:/keys/server.keystore" keystorePass="123456" />⑥:httpss加密的網頁訪問:
httpss://127.0.0.1:8443/webBasic/ httpss訪問地址:注意使用Tomcat配置的httpss端口:8443 https也可以正常訪問:https://127.0.0.1:8080/webBasic
可選功能:Tomcat web項目強制使用httpss訪問,: 配置web.xml文件:添加如下內容
<login-config> <auth-method>CLIENT-CERT</auth-method> <realm-name>Client Cert Users-only Area</realm-name> </login-config> <security-constraint> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>轉載于:https://my.oschina.net/yangzhiwei256/blog/3017303
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Tomcat - 常用配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thinkphp5 请求报错
- 下一篇: freemarker该阵列