将servlet手动编译并部署到本地tomcat服务器

您所在的位置:网站首页 启动tomcat的命令放在哪个目录中进行编译 将servlet手动编译并部署到本地tomcat服务器

将servlet手动编译并部署到本地tomcat服务器

2024-07-03 12:24| 来源: 网络整理| 查看: 265

        因为对servlet部分内容以及代码的部署相关内容有挺多不了解的地方,所以最近学习了servlet相关的内容,这篇文章记录下将开发的servlet进行手动编译(通过javac命令,不使用IDE)并部署到本地tomcat服务器中的步骤,主要是学习和体会servlet编译、部署的整个过程。

一、将编写的servlet类进行编译

        编译是在windows系统的cmd命令窗口中使用javac命令进行编译。

        对servlet进行编译时因为要依赖servlet-api.jar包,因此在命令行窗口中先引入servlet-api.jar包,该包在tomcat安装目录的bin目录下;

        使用 set classpath = tomcat\bin\servlet-api.jar 命令将jar包引入(在任何路径下执行命令都可以,并且此设置命令只在本窗口生效):

        jar包路径比较长,可以在资源管理器中直接将jar包文件拖拽到命令行窗口中就能自动填充jar包的路径

        接下来就可以到编写的servlet类所在的目录进行编译了,我这里是为了查看方便,将原servlet.java文件复制到了工程所在的目录下,那么在这个目录进行编译,编译生成的包路径以及class文件就会在该路径下,其中包路径为代码中这个类最上面package所声明的包路径。当然也可以直接在servlet.java源码文件所在的位置进行编译,那么编译后的包路径就和ava源码所在路径同级。

        使用命令 javac -encoding utf8 -d . servletName.java 对servletName.java进行编译,如果没有报错的话那么就说明编译成功了。

        

        javac命令中的 -encoding utf8 是指定使用utf8字符集进行编译,默认是使用gbk进行编译,默认字符集可能会报错;

        -d . 是指带包编译,即会给编译后的.class文件创建和java类最上面package所声明的包路径相同的路径。

        如图为编译后生成的class文件,且生成了和servlet.java文件所声明的相同的包路径:

        

二、将编译后的class文件部署到tomcat服务中

        因为tomcat对部署的项目包路径有指定要求,即项目路径需要为:tomcat\webapps\projectName\WEB-INF\classes,同时如果有web.xml文件的话需要将web.xml从工程代码中复制到 projectName\WEB-INF 目录下,如下图:

        

        这里要说下,web.xml是配置servlet 访问路径等配置的文件,如果使用@WebServlet注解方式进行声明,则web.xml文件是可以省略的,因为默认是开启注解的。      

        因此需要先在tomcat\webapps目录下创建项目名称对应的路径,此名称即为项目访问时的上下文,如我将项目名命名为:\firstServlet,则部署后访问的地址即为:http://localhost:8080/firstServlet/xxx;

        接下来需要将上一步编译生成的包路径以及class文件复制到 projectName\WEB-INF\classes 路径下;

        

三、启动tomcat并访问servlet

        执行 tomcat\bin 目录下的 startup.bat 批处理文件启动tomcat,启动完成后即可进行访问。

         

        我在 web.xml 文件的 url-pattern 中配置的访问路径为 /login,再结合webapps下创建的项目文件名称为 firstServlet,因此可以通过访问:http://localhost:8080/firstServlet/login 即可访问到 FirstServlet.class中的内容。

        web.xml文件内的配置信息:        

         

        访问servlet:                

        再附上servlet代码:

package com.zyk.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * @author * @Class: * @Description: * @date 2022/2/8 14:27 */ public class FirstServlet extends HttpServlet { //Post请求,向网页写入一些内容 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); //TODO 字符集名称大小写 PrintWriter writer = resp.getWriter(); writer.write("欢迎访问我的第一个servlet测试"); writer.close(); } //Get请求,向网页写入一些内容 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); //TODO 字符集名称大小写 PrintWriter writer = resp.getWriter(); writer.write("欢迎访问我的第一个servlet测试"); writer.close(); } }

        好了,以上就是本地进行servlet手动编译和部署到tomcat的步骤,虽然内容还很粗糙也不全面,但是记录的目的就是为了加深对所学内容的印象,如果同时对其他人能有所帮助的话,那更好不过了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3