1. servlet程序页面的修改
如果需要将页面输出的内容修改为hello servlet,仅仅修改 .java 文件是不能实现的,还需要重新打包,重新部署,重新运行tomcat,再次访问才可以实现;
现重建helloservlet2项目,并置servlet path为helloservlet2,
其中.java文件内容如下:
import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import java.io.ioexception; @webservlet("/hello2") public class helloservlet2 extends httpservlet { @override protected void doget(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception { system.out.println("hello servlet"); resp.getwriter().write("hello servlet"); } }
pom.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.example</groupid> <artifactid>servlet2</artifactid> <version>1.0-snapshot</version> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceencoding>utf-8</project.build.sourceencoding> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupid>javax.servlet</groupid> <artifactid>javax.servlet-api</artifactid> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> <packaging>war</packaging> <build> <finalname>helloservlet2</finalname> </build> </project>
再重新打包,重新部署,重新运行tomcat,再使用浏览器访问:
访问成功;
2. smart tomcat plugin
1. 在编写大型程序时,修改代码是非常频繁的,反复部署非常麻烦,于是可以使用 idea 的 smart tomcat 插件进行自动打包;
2. 打包与部署程序可以使用idea的smart tomcat插件,把tomcat集成到idea中,省去手动打包与部署的过程,只需点击运行即可自动打包部署;
- 基于tomcat插件自动打包部署适用于开发阶段,频繁修改代码频繁验证;
- 手动打包手动部署适用于上线阶段,发布程序;
3. idea提供了一些api,可以让程序员开发插件,对idea的功能进行扩展;
3. smart tomcat 安装
4. smart tomcat 配置
首次使用smart tomcat需要配置:
1. 点击页面右上角的add configuration新增一个配置:
注意如果使用的是idea专业版,请勿选择tomcat server;
2. 设置tomcat所在路径:
对于context path一栏,如果不使用smart tomcat,就直接写作war包(目录)的名字;
使用smart tomcat时,需要手动进行配置,不配置默认为项目名字;
确定后可看到右上角界面新增的配置:
注:
(1)idea社区版按照上述方式即可安装tomcat插件,idea专业版内置了tomcat server插件,和smart tomcat功能差不多,但不是一个插件,但smart tomcat使用更方便;
5. smart tomcat 运行
配置完成后,直接点击三角符号即可运行:
按照原路径打开,即可显示hello world:
注:
(1)不要通过idea控制台上的地址访问页面:
该链接不包含servlet path,直接点击访问是404页面;
6. smart tomcat 工作原理
1. 查看tomcat的webapps目录下,并没有因为使用smart tomcat就重新生成一个war 包,原目录下的war包是先前使用tomcat打包的。
smart tomcat的工作原理不是自动拷贝war包,即webapps目录内不变,而是通过另一种方式启动tomcat。
2. smart tomcat支持启动时显式指定一个特定的webapp目录,相当于让tomcat加载单个webapp运行:
即smart tomcat直接调用tomcat,让tomcat加载当前项目中的webapp目录:
这个过程没有打war包、拷贝、解压缩的过程。
3. 此时程序是可以正常运行,但像之前一些webapps下的一些已有的内容(如欢迎页面)就不存在了:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论