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输出Hello World完美过程解析
Jun 13 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
Jul 26 Java/Android
详解Java七大阻塞队列之SynchronousQueue
Sep 04 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
Sep 25 Java/Android
Jmerte 分布式压测及分布式压测配置
Apr 30 Java/Android
mybatis 获取更新记录的id
May 20 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
一文了解Java动态代理的原理及实现
Jul 07 Java/Android
maven 解包依赖项中的文件的解决方法
Jul 15 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+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
Python Unittest自动化单元测试框架详解
2018/04/04 Python
对numpy数据写入文件的方法讲解
2018/07/09 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python实现各种插值法(数值分析)
2019/07/30 Python
python的命名规则知识点总结
2019/10/04 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
css3实现文字扫光渐变动画效果的示例
2017/11/07 HTML / CSS
浅谈html5之sse服务器发送事件EventSource介绍
2017/08/28 HTML / CSS
爱普生美国官网:Epson美国
2018/11/05 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
公证委托书模板
2014/04/03 职场文书
合伙经营协议书
2014/04/18 职场文书
大学生村官考核材料
2014/05/23 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书