Java tomcat手动配置servlet详解


Posted in Java/Android onNovember 27, 2021

1.准备工作

如下图,先按照要求创建好各个文件

Java tomcat手动配置servlet详解

Java tomcat手动配置servlet详解

这时候如果你觉得能运行,那就错了(我一开始卡在这了)

idea的项目结构

Java tomcat手动配置servlet详解

如果学习过用idea创建servlet应用,你肯定会发现,这里提供的web.xml根本不完整
请用以下代码囊括上述的servlet标签

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
		//在这里加入上面说过的servlet标签代码
</web-app>

2.编译文件

编码出问题

Java tomcat手动配置servlet详解

如上,刚开始我想编译,但报错了

这里的原因是,javac会根据你的操作系统编码读取源文件代码,而我的电脑是默认GBK的,但这些源码我们都是在记事本写下的,而记事本默认使用UTF-8保存,于是相当于javac用GBK读取UTF-8的内容,遂报错

因此我们要指定读取源码的编码格式为UTF-8

Java tomcat手动配置servlet详解

学习类加载器

这时候报的错是正常显示的中文了,找不到servlet,意思就是你用了这个类,但没找到,根据双亲委派,我们知道找一个类,会先从system class loader类加载器的缓存开始找,没有就找他的父加载器即extension class loader的缓存,没有就再找extension class loader的父加载器bootstrap class loader的缓存,还是没有就开始向下,先找bootstrap class loader的指定路径下的jar包是否含有我们要的类,从下图可知,跟类加载器加载核心jar包,一些基本的类都在里面,路径是jdk下的jre下的lib

Java tomcat手动配置servlet详解

这时候还没有找到,就去扩展类加载器的指定路径找,我的电脑是以下路径

Java tomcat手动配置servlet详解

如果还没有找到,那就在系统类加载器指定路径,即耳熟能详的classpath,你平时在配置path的时候应该也遇到过,

那么-cp命令后面跟上classpath就是告诉系统如果一套下来没找到就去我这找,-cp全称就是-classpath两种写法都能运行

处理编译结果

当你通过在文件管理器输入cmd进行javac时,默认产生class文件在当前目录,可这里有个重点,你写的java源文件有package这条命令,那么我们必须按照包名逐级创建文件夹(运行的时候才能找到你导入的自己写的源文件),

-d 就是放class的位置,-d .可以在当前目录下帮我们自动创建包文件夹很方便,不用手动创建

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Java/Android 相关文章推荐
一篇带你入门Java垃圾回收器
Jun 16 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
SpringBoot中使用Redis作为全局锁示例过程
Mar 24 Java/Android
SpringBoot 集成短信和邮件 以阿里云短信服务为例
Apr 22 Java/Android
Java处理延时任务的常用几种解决方案
Jun 01 Java/Android
Spring Boot项目如何优雅实现Excel导入与导出功能
Jun 10 Java/Android
Spring中bean集合注入的方法详解
Jul 07 Java/Android
SpringBoot接入钉钉自定义机器人预警通知
Jul 15 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
Jul 15 Java/Android
app场景下uniapp的扫码记录
Jul 23 Java/Android
spring boot实现文件上传
Aug 14 Java/Android
使用jpa之动态插入与修改(重写save)
Nov 23 #Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 #Java/Android
解析mybatis-plus中的resultMap简单使用
Nov 23 #Java/Android
JPA 通过Specification如何实现复杂查询
Java使用JMeter进行高并发测试
Java 在线考试云平台的实现
OpenCV实现反阈值二值化
You might like
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成&quot;...&quot;)
2016/11/28 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
Python多线程下载文件的方法
2015/07/10 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
旅游管理本科生求职信
2013/10/14 职场文书
员工培训心得体会
2013/12/30 职场文书
期末自我鉴定
2014/01/23 职场文书
家长学校培训材料
2014/08/20 职场文书
Python基础之Socket通信原理
2021/04/22 Python
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS