TomcatBoot启动

package com.spring.web.mvc;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Tomcat;
import org.apache.tomcat.util.scan.StandardJarScanner;

public class TomcatBoot {
	public void start() {
		try {
			int port = 8080;
			Tomcat tomcat = new Tomcat();
			// 设置tomcat工作目录,
			tomcat.setBaseDir("target");
			//设置端口
			tomcat.setPort(port);
			//设置IP
			tomcat.setHostname("localhost");
			//设置connector
			//协议版本
			Connector connector = new Connector("HTTP/1.1");
			//端口号
			connector.setPort(port);
			//编码格式,get 编码默认是 ISO-8859-1
			connector.setURIEncoding("utf-8");
			//让 URI 和 body 编码一致。(针对POST请求)
			connector.setUseBodyEncodingForURI(true);
			//将connect添加到tomcat中
			tomcat.setConnector(connector);
			//1.新建了server,并添加到了tomcat中
			//2.新建了service,并添加到了server中
			//3.向service中添加connector
			tomcat.getService().addConnector(connector);
			//设置webapp工作目录,以下webappPath对应tomcat的webapp路径
            //1.获取.class生成路径(classspath)路径  2.将路径从target处截断,再加上src/main/webapp目录。 此处就是web.xml所在目录
			String file = getClass().getClassLoader().getResource(".").getFile();
			String webappPath = file.substring(0, file.indexOf("target")) + "src/main/webapp";
			System.out.println("webapp目录:" + webappPath);
			//获取webapp目录的上下文
			Context ctx = tomcat.addWebapp("/", webappPath);
			//设置目录扫描:默认不扫描全目录,扫描classpath。   
			//扫描classpath主要是为了扫描servlet3.0的各种注解,类似于dispatcherServlet-servlet.xml配置文件的自动扫描
			//建议两个都关闭掉,不然影响启动时间,
			StandardJarScanner scanner = (StandardJarScanner) ctx.getJarScanner();
			//是否扫描全目录
			scanner.setScanAllDirectories(false);
			//是否扫描classpath
			scanner.setScanClassPath(false);
			
			tomcat.setSilent(true);
			System.setProperty("org.apache.catalina.SESSION_COOKIE_NAME", "JSESSIONID" + port);
			tomcat.start();
			while (true) {
				char c = (char) System.in.read();
				if (c == 1) {
					System.out.println("重启tomcat...");
					tomcat.stop();
					tomcat.start();
				}
			}
		} catch (Exception ex) {
		}
	}

}

POM.XML

		<dependency>
		<groupId>org.apache.tomcat.embed</groupId>
		<artifactId>tomcat-embed-logging-juli</artifactId>
		<version>8.5.0</version>
		</dependency>

		<dependency>
		<groupId>org.apache.tomcat.embed</groupId>
		<artifactId>tomcat-embed-jasper</artifactId>
		<version>8.5.0</version>
		</dependency>




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值