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 相关文章推荐
解决SpringCloud Feign传对象参数调用失败的问题
Jun 23 Java/Android
SpringBoot SpringEL表达式的使用
Jul 25 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
springboot中的pom文件 project报错问题
Jan 18 Java/Android
Java如何实现通过键盘输入一个数组
Feb 15 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
零基础学java之方法的定义与调用详解
Apr 10 Java/Android
零基础学java之带参数以及返回值的方法
Apr 10 Java/Android
Java的Object类的九种方法
Apr 13 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
java版 联机五子棋游戏
May 04 Java/Android
Java多线程并发FutureTask使用详解
Jun 28 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原理之异常机制
2010/08/21 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php生成QRcode实例
2014/09/22 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
微信小程序吸底区域适配iPhoneX的实现
2020/04/09 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
Python中index()和seek()的用法(详解)
2017/04/27 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python 实现超级玛丽游戏
2020/11/25 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
预防艾滋病宣传标语
2014/06/25 职场文书
卫生院艾滋病宣传活动小结
2014/07/09 职场文书
2014年教务处工作总结
2014/12/03 职场文书
详解JVM系列之内存模型
2021/06/10 Javascript
python自动化测试通过日志3分钟定位bug
2021/11/20 Python