摘要:是的写法新建项目,结构如下文件打包启动包放到目录下,启动访问使用插件,构建嵌入式容器文件中添加打包启动访问解压包,找到可以得出的启动类模拟,构建嵌入式容器源码访
tomcat @WebServlet
@WebServlet 是servlet 3.0的写法
新建maven项目,结构如下
pom文件
4.0.0 com.adagio tomcat-demo 0.0.1-SNAPSHOT war UTF-8 Javax.servlet javax.servlet-api 3.1.0 provided org.apache.tomcat.maven tomcat7-maven-plugin 2.1 org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.8 org.apache.maven.plugins maven-war-plugin 3.2.0 false
Java Code
package com.adagio; import java.io.IOException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = "/demo") public class DemoServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String message = request.getParameter("message"); response.getWriter().print(message); response.getWriter().println("
"); } }
打包:mvn -Dmaven.test.skip -U clean package
启动:war包放到tomcat/webapps目录下,启动tomcat
访问:http://localhost:8080/tomcat-demo-0.0.1-SNAPSHOT/demo?message=hello
使用maven插件,构建嵌入式容器POM文件中添加
org.apache.tomcat.maven tomcat7-maven-plugin 2.1 tomcat-run exec-war-only package /
打包:mvn -Dmaven.test.skip -U clean package
启动:java -jar targettomcat-demo-0.0.1-SNAPSHOT-war-exec.jar
访问:http://localhost:8080/demo?message=hello
解压jar包,找到 META-INF/MANIFEST.MF
Manifest-Version: 1.0 Main-Class: org.apache.tomcat.maven.runner.Tomcat7RunnerCli
可以得出jar 的启动类:org.apache.tomcat.maven.runner.Tomcat7RunnerCli
模拟server.xml,构建嵌入式容器 源码import java.io.File; import org.apache.catalina.Context; import org.apache.catalina.Host; import org.apache.catalina.Service; import org.apache.catalina.Wrapper; import org.apache.catalina.connector.Connector; import org.apache.catalina.core.StandardContext; import org.apache.catalina.startup.Tomcat; /** * 访问 : http://localhost:9527/index.jsp * http://localhost:9527/demo?message=hello * */ public class EmbeddedTomcatServer { public static void main(String[] args) throws Exception { //确定classes 目录绝对路径 String calssesPath = System.getProperty("user.dir") + File.separator + "target" + File.separator + "classes"; System.out.println(calssesPath); //创建Tomcat实例 Tomcat tomcat = new Tomcat(); tomcat.setPort(9527); //设置Host Host host = tomcat.getHost(); host.setName("localhost"); host.setAppBase("webapps"); //设置 Context //server.xml -文件String webapp = System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + File.separator + "webapp"; String contextPath = "/"; //设置 webapp 绝对路径到 Context,作为它的docBase Context context = tomcat.addWebapp(contextPath, webapp); if(context instanceof StandardContext) { StandardContext standardContext = new StandardContext(); // 设置默认的web.xml文件到Context standardContext.setDefaultContextXml(calssesPath + File.separator + "conf/web.xml"); //设置 Classpath 到Context // 添加DemoServlet到tomcat 容器 Wrapper wrapper = tomcat.addServlet(contextPath, "DemoServlet", new DemoServlet()); wrapper.addMapping("/demo"); } //http://localhost:9526/demo?message=%E5%B0%8F%E9%A9%AC //设置Service Service service = tomcat.getService(); Connector connector = new Connector(); //这里设置了一个port,等于两个端口都可以使用,但是上面那个端口访问中文乱码 connector.setPort(9526); connector.setURIEncoding("UTF-8"); connector.setProtocol("HTTP/1.1"); service.addConnector(connector); //启动 tomcat 服务器 tomcat.start(); // 强制 Tomcat Server 等待,避免main线程执行结束关闭 tomcat.getServer().await(); } }
直接从tomcat/conf copy web.xml到项目中
在resources下建 conf目录,把copy的web.xml放进去
在webapp下新建 index.jsp
具体如图
... 未完
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76529.html
摘要:即直接启动即自动打开的服务器,自动布署成功。进入,双击启动服务器测试部署输入访问地址可成功看到访问界面。至此的部署就结束了。 Tomcat服务器部署 tomcat服务器是免费的且性能相对稳定的web应用服务器,在许多中小型企业中很受欢迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 独立部署 独立部署指的是在一个服务...
摘要:即直接启动即自动打开的服务器,自动布署成功。进入,双击启动服务器测试部署输入访问地址可成功看到访问界面。至此的部署就结束了。 Tomcat服务器部署 tomcat服务器是免费的且性能相对稳定的web应用服务器,在许多中小型企业中很受欢迎 FineBI支持的版本:tomcat6.0及以上版本 FineBI支持的JDK版本:jdk1.6及以上版本 1.1 独立部署 独立部署指的是在一个服务...
摘要:嵌入在一些项目中,单独开启一个,对于项目实施来说有时略显繁琐。待启动后,选择所在的进程。连接后选择页签红框的地方分别为已消费和已进入中的消息的条数。 ActiveMQ 嵌入Tomcat 在一些项目中,单独开启一个ActiveMQ,对于项目实施来说有时略显繁琐。所以我们将ActiveMQ内嵌到Tomcat,Tomcat启动同时就顺带启动了ActiveMQ。由此我们需要掌握三个个重要的知识...
摘要:但考虑到实际的情形中,我们的服务器一般是另外部署好了的,有专门的维护方式。此时我们需要剥离掉应用内置的服务器,进而将应用发布并部署到外置的容器之中,本文就实践一下这个。 showImg(https://segmentfault.com/img/remote/1460000015173574); 0x01. 概述 SpringBoot平时我们用的爽歪歪,爽到它自己连Tomcat都自集成...
阅读 2983·2023-04-26 00:23
阅读 3398·2021-09-13 10:28
阅读 2177·2021-08-31 14:18
阅读 2883·2019-08-30 15:54
阅读 1938·2019-08-30 15:43
阅读 1275·2019-08-29 16:56
阅读 2799·2019-08-29 14:16
阅读 2052·2019-08-28 17:51