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中Collection的一些常用方法总结
Jun 13 Java/Android
教你用Java在个人电脑上实现微信扫码支付
Jun 13 Java/Android
Java如何实现树的同构?
Jun 22 Java/Android
springBoot基于webSocket实现扫码登录
Jun 22 Java/Android
springboot集成flyway自动创表的详细配置
Jun 26 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Netty分布式客户端处理接入事件handle源码解析
Mar 25 Java/Android
Java中API的使用方法详情
Apr 06 Java/Android
Java 垃圾回收超详细讲解记忆集和卡表
Apr 08 Java/Android
Java8利用Stream对列表进行去除重复的方法详解
Apr 14 Java/Android
ConditionalOnProperty配置swagger不生效问题及解决
Jun 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
apache php模块整合操作指南
2012/11/16 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
javascript中toFixed()四舍五入使用方法详解
2018/09/28 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
2018/12/13 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
Element Input输入框的使用方法
2020/07/26 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
大学新生入学教育方案
2014/05/16 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
单位工作证明书格式
2014/10/04 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
优秀党员先进材料
2014/12/18 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL