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
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
Jun 21 Java/Android
浅谈Python魔法方法
Jun 28 Java/Android
mybatis3中@SelectProvider传递参数方式
Aug 04 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
mapstruct的用法之qualifiedByName示例详解
Apr 06 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
SpringBoot中获取profile的方法详解
Apr 08 Java/Android
Android开发之WECHAT微信小程序路由跳转的两种形式
Apr 12 Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
Apr 13 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
JavaScript_ECMA5数组新特性详解
2016/06/12 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
jQuery上传多张图片带进度条样式(DEMO)
2017/03/02 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
axios取消请求的实践记录分享
2018/09/26 Javascript
基于nodejs的雪碧图制作工具的示例代码
2018/11/05 NodeJs
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
Python socket实现简单聊天室
2018/04/01 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
python数值基础知识浅析
2019/11/19 Python
Django 返回json数据的实现示例
2020/03/05 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
别名指示符是什么
2012/10/08 面试题
妈妈的账单教学反思
2014/02/06 职场文书
趣味比赛活动方案
2014/02/15 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
联谊会主持词
2014/03/26 职场文书
村道德模范事迹材料
2014/08/28 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
教师师德工作总结2015
2015/07/22 职场文书
高中历史教学反思
2016/02/19 职场文书
python ansible自动化运维工具执行流程
2021/06/24 Python