欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

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

时间:2023-06-25

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

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

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

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

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

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

        接下来就可以到编写的servlet类所在的目录进行编译了,我这里是为了查看方便,将原servlet.java文件复制到了其他目录下,如果在这个目录进行编译,那么编译生成的包路径以及class文件就会在该路径下,也可以直接在servlet.java源码文件所在的包路径下进行编译。

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

        

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

        -d 、是指带包编译,即会给编译后的.class文件创建和原java文件相同的包路径。

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

        

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

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

        

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

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

        接下来需要将上一步编译生成的包路径以及class文件复制到 projectNameWEB-INFclasses 路径下;

        

三、启动tomcat并访问servlet

        执行 tomcatbin 目录下的 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;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 © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。