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 18 Java/Android
分析Java中Map的遍历性能问题
Jun 26 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
详细了解MVC+proxy
Jul 09 Java/Android
简述Java中throw-throws异常抛出
Aug 07 Java/Android
Java网络编程之UDP实现原理解析
Sep 04 Java/Android
Java tomcat手动配置servlet详解
Nov 27 Java/Android
RestTemplate如何通过HTTP Basic Auth认证示例说明
Mar 17 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Java服务调用RestTemplate与HttpClient的使用详解
Jun 21 Java/Android
Spring Boot优化后启动速度快到飞起技巧示例
Jul 23 Java/Android
HttpClient实现文件上传功能
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
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP实现清除wordpress里恶意代码
2015/10/21 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
js格式化时间的方法
2015/12/18 Javascript
无需 Flash 使用 jQuery 复制文字到剪贴板
2016/04/26 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
对vue.js中this.$emit的深入理解
2018/02/23 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
js实现开关灯效果
2020/03/30 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
用Python创建声明性迷你语言的教程
2015/04/13 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python八皇后问题的解决方法
2018/09/27 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
深入了解Python 方法之类方法 &amp; 静态方法
2020/08/17 Python
pycharm中leetcode插件使用图文详解
2020/12/07 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
《第一朵杏花》教学反思
2014/04/16 职场文书
综艺节目策划方案
2014/06/13 职场文书
2014年计生工作总结
2014/11/21 职场文书
通讯稿范文
2015/07/22 职场文书
python中filter,map,reduce的作用
2022/06/10 Python