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:最大等待时间
<Resource name="jndi/mysql" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" username="squirrel" password="xiaoyang" maxActive="20" maxIdle="10" maxWait="10000"/>
Tomcat引用JNDI资源:web.xml配置
- description:JNDI资源描述
- res-ref-name:引用的资源名称,与context.xml配置的资源名保持一致
- res-type:JNDI资源类型
- res-auth:授权访问用户名
<resource-ref> <description>JNDI DataSource</description> <res-ref-name>jndi/mysql</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
测试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的网页
③:服务器信任客户端证书:
- 证书格式转换:
keytool -export -alias client -keystore D:/keys/client.p12 -storetype PKCS12 -keypass 123456 -file D:/keys/client.cer
- 正式导入客户端证书:
keytool -import -v
-file D:/keys/client.cer -keystore D:/keys/server.keystore-storepass 123456
- 安装客户端证书:单击client.cer证书,直接安装
④:客户端信任服务端证书:
- 生成服务器安装证书:
keytool -keystore D:/keys/ server.keystore -export -alias server -file D:/keys/server.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 - 常用配置相关推荐
- CentOS7 systemctl tomcat常用配置
开始配置tomcat 1.环境准备,安装java 在生产环境上,我一般使用oracle java,不使用openjdk,所以先卸载系统自带的openjdk yum remove java 下载orac ...
- Tomcat 8(一)Tomcat常用配置
操作系统:win8 Jdk版本:1.7.0_51 Jdk目录:C:ProgramFilesJavajdk1.7.0_51 Tomcat版本:8.0.3 Tomcat目录:D:ProgramFilesa ...
- tomcat常用配置详解
1 目录结构 /bin:脚本文件目录. /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载). /conf:存放配置文件,最重要的是server.x ...
- Tomcat的常用配置
2019独角兽企业重金招聘Python工程师标准>>> 本文索引: 配置tomcat监听80端口 Tomcat虚拟主机 Tomcat日志 配置tomcat监听80端口 默认tomca ...
- tomcat https 配置
以前基本上笔者对于安全性考虑的并不多,最近因为saas平台要开始逐渐推广,所以需要开始逐渐加强xss/crsf/https等措施以避免潜在的安全性风险.本文简单的记录下tomcat下https的配置. ...
- maven学习6 Eclipse下Tomcat常用设置
Eclipse下Tomcat常用设置 1,Eclipse建立Tomcat服务 1.1 新建Server 首先这里是指,jee版的Eclipse.Eclipse是没有像MyEclipse那样集成Tomc ...
- Java教程:SpringBoot常用配置
在Java开发过程中我们会需要使用到一些SpringBoot的设置功能,下面小千就来教大家如何去修改这些常用的配置. 一.修改端口号和访问路径 在Spring Boot 项目中会使用一个全局的配置文件 ...
- resin指定java版本_resin的几个常用配置
本文着重介绍resin的几个常用配置 注: 1. 本文并非resin.conf的使用说明,只是从实用角度出发,按需分析常用的配置.更多的内容到官网学习吧: 2. 基于resin3.x的探讨. (友情提 ...
- tomcat相关配置技巧梳理 (修改站点目录、多项目部署、限制ip访问、大文件上传超时等)...
tomcat常用架构: 1)nginx+tomcat:即前端放一台nginx,然后通过nginx反向代理到tomcat端口(可参考:分享一例测试环境下nginx+tomcat的视频业务部署记录) 2) ...
最新文章
- 我身边那些逃离深圳的朋友们
- Android架构师教你如何突破瓶颈,快来收藏!
- 基本数据类型使用注意事项
- Javascript网页滚动方法
- python温度转换代码分析_Python温度转换实例分析
- jzoj3189-解密【字符串hash】
- ssm(Spring+Spring mvc+mybatis)Service层接口——IDeptService
- java二分查找递归_java学习之—递归实现二分查找法
- Docker上部署MySQLCluster(基于mysql/mysql-cluster镜像)
- windows 守护进程
- Python面试题之python是一种什么语言及优缺点
- 2012 年上半年系统分析师 案例分析真题
- c语言炒股软件公式,股票软件怎么使用指标选股公式
- 2018年蓝桥杯C++省赛B组【G:螺旋折线】 【思维】
- xp怎么删除计算机用户,xp如何删除多余的用户帐户_IT /计算机_信息
- Windows7下IPV6设置方法详解
- 微软视窗的C++封装
- 阿里巴巴年报来了,一天收入6.85亿
- python计算机器人运动学分析_V-rep学习笔记:机器人逆运动学数值解法(The Jacobian Transpose Method)...
- 直接执行SQL语句的快捷键是什么啊?嘎嘎