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 相关文章推荐
简单总结SpringMVC拦截器的使用方法
Jun 28 Java/Android
解决SpringBoot文件上传临时目录找不到的问题
Jul 01 Java/Android
看完这篇文章获得一些java if优化技巧
Jul 15 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
Java使用Unsafe类的示例详解
Sep 25 Java/Android
Java 实战项目之家居购物商城系统详解流程
Nov 11 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Spring Boot 实现 WebSocket
Apr 30 Java/Android
Java 死锁解决方案
May 11 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 Java/Android
阿里面试Nacos配置中心交互模型是push还是pull原理解析
Jul 23 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函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
jquery 学习之二 属性相关
2010/11/23 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jquery图片切换插件
2015/03/16 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
Bootstrap源码解读排版(1)
2016/12/23 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
浅析Python中字符串的intern机制
2020/10/03 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
先进个人事迹材料
2014/01/25 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
正科级干部考察材料
2014/05/29 职场文书
销售提升方案
2014/06/07 职场文书
预备党员转正材料
2014/12/19 职场文书
放弃继承权公证书
2015/01/23 职场文书
2015年司机工作总结
2015/04/23 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python