JavaWeb--纯小白笔记03:servlet入门---动态网页的创建

 笔记:index.html在tomcat中为默认的名字,html里面的语法不严谨。改配置文件要小心,不然容易删掉其他

Servlet:服务器端小程序,写动态网页需要用Servlet,普通的java类通过继承HttpServlet,可以响应网页的请求

request:请求   reponse :响应

学习Java基础重在领会,JavaWeb重在遵守规则。

动态网页的创建这里是使用的Tomcat写的

注意:如果之前对Tomcat里面的conf文件夹的server.xml做过修改的就不要使用这个安装包了,前面下载的压缩包,再解压一份出来就行的。做过修改的Tomcat对它的文件名加"!!"就相对于报废了,接下来使用新解压缩的就行了,我的就如下:

我的直接把压缩包和文件放一起,方便解压缩找到。

以下就是使用Tomcat写动态网页的步骤:

1.将Tomcat文件夹下的webapps文件夹(放应用程序)打开,创建一个myweb的文件夹

2.在myweb文件夹里创建一个index.html文件,里面可以随便写点数字啥的,html语法比较不严谨,然后再创建一个WEB-INF文件夹

注意:”WEB-INF“,这几个字母横杠不能错,必须这样写!!

3.打开创建的WEB-INF文件夹,在里面创建两个文件夹和一个web.xml文件,文件夹的名字分别是:"classes"  放class文件 ,"lib"  放jar包 且web .xml文件夹名字不能变

▲注意:这里也可以先不创建web.xml文件,因为目前是直接复制一个Tomcat自己的web.xml文件到WEB-INF文件夹下再修改。

4.先将WEB-INF文件夹的lib文件夹进行导包----其实就是复制Tomcat自己的。退回到Tomcat文件夹,打开lib文件夹-----这里是Tomcat的lib文件,复制jsp-api.jar和servlet-api.jar到我们创建的WEB-INF文件夹下的lib文件夹下

WEB-INF的lib文件夹配好了

5.在WEB-INF文件夹的classes文件夹下编写代码并编译成class文件:

①配置环境变量,以至于找到servlet.jar包

在桌面右击此电脑,选择属性,点击高级系统设置,选择环境变量,在查看系统变量

▲▲▲注意:这里要创建一个classpath的环境变量 ,变量值就是Tomcat文件里的lib包里的servlet-api.jar,还有用户变量不能有classpath否则后面编译会出问题。

记得保存

②在classes文件里创建一个HelloServlet.java文件,打开记事本编写代码

注意:1那里是包名 ,2那里是创建的HelloServlet.java的文件名继承HttpServlet,因为需要里面的方法,3那里是响应以及请求,我们需要书写的就是请求。

③保存代码后,直接在HelloServlet.java文件上方的搜索栏搜cmd进入命令行窗口

④使用" javac -d . 文件名.java " 命令,我的文件名是HelloServlet所以使用的命令就是:javac -d . HelloServlet.java

如果运行不报错就是编译成功,成功会在WEB-INF文件夹下的classes文件夹里生成一个代码里包名的文件,我的是cm.hx所以就生成一个cm的文件夹

6.设置web.xml文件,和之前lib文件的设置一样可以复制Tomcat文件夹下的webapps文件夹里的web.xml文件进行修改

①打开Tomcat文件夹下的webapps文件夹里的examples

②打开examples文件夹里的WEB-INF,复制里面的web.xml文件到我们自己创建的myweb里WEB-INF里去

③将复制的web.xml文件的内容进行修改----只要头尾,里面的代码有几百行,只要头尾:

第一处是xml文件的默认设置代码,第2到第3处是必要代码,<!--   -->是注释可以不要

web.xml中配置servlet

将里面代码写入我们自己的web.xml文件

<servlet-name>用的是我们自己的HelloServlet.java文件名HelloServlet

<servlet-class>写的是我们HelloServlet.java文件里代码的包名.文件名,我的包名是cm.hx.servlet所以这里就应该是 cm.hx.servlet.HelloServlet 

<url-pattern>写的是虚拟访问路径,就是直接在浏览器地址栏搜索:localhost:8080/myweb/虚拟路径

我的配置如下:

7.最后启动我们的服务器:打开Tomcat的文件夹的bin文件夹,点击startup-bat,如果只是闪了一下就说明配置有问题,请检查每一步。成功后会停留在桌面

然后打开浏览器输入localhost:8080/myweb/hello 再回车就是如下:

这里地址栏搜索的:localhost:8080/myweb/hello ------myweb就是我们再Tomcat文件夹下webapps文件夹里创建的文件夹,hello是我们配置servlet时的虚拟路径。

总结:动态网页比较复杂,要一步一步慢慢弄好才行。

如果最后在浏览器搜索出来的是404 说明路径有问题,要注意环境变量设置的是Tomcat下的lib文件里的servlet-api.jar包,且复制到自己的lib文件是否正确

如果是500的错误说明是运行错误,说明编写的代码有问题,就要检查自己WEB-INF文件夹下的classes文件夹里的".java"文件代码是否有问题或者WEB-INF文件夹的web.xml文件是否代码出错

各位大佬,本篇较于繁杂,请仔细慢慢一步一步的完成,到此就结束了,求免费的赞和关注收藏呀!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/882380.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【重学 MySQL】三十一、字符串函数

【重学 MySQL】三十一、字符串函数 函数名称用法描述ASCII(S)返回字符串S中的第一个字符的ASCII码值CHAR_LENGTH(s)返回字符串s的字符数&#xff0c;与CHARACTER_LENGTH(s)相同LENGTH(s)返回字符串s的字节数&#xff0c;和字符集有关CONCAT(s1,s2,…,sn)连接s1,s2,…,sn为一个字…

Docker + Win 10 学习记录

下载Docker Release notes | Docker Docs 推荐使用4.33版本&#xff0c;最新的Docker版本在win10 22H2无法安装。需要升级到win11. 查看Win10版本是否与最新版的Docker兼容 运行 win R&#xff0c; 然后输入winver 如果你的Docker版本无法在当前的win10安装&#xff0c;请更…

828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用

828华为云征文&#xff5c;华为云Flexus云服务器X实例部署Xnote笔记应用 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、Note Mark 介绍2.1 Xnote简介2.2 Xnote特点2.3 主要使用场景 三、本次实…

豆包Python SDK接入流程

模型与价格 豆包的模型介绍可以看豆包大模型介绍&#xff0c;模型价格可以看豆包定价文档里的“模型推理” - “大语言模型” - “字节跳动”部分。 推荐使用以下模型&#xff1a; Doubao-lite-32k&#xff1a;每百万 token 的输入价格为 0.3 元&#xff0c;输出价格为 0.6 元…

JavaEE: 深入探索TCP网络编程的奇妙世界(六)

文章目录 TCP核心机制TCP核心机制九: 面向字节流TCP核心机制十: 异常处理 小小的补充(URG 和 PSH)~TCP小结TCP/UDP 对比用UDP实现可靠传输(经典面试题) 结尾 TCP核心机制 上一篇文章JavaEE: 深入探索TCP网络编程的奇妙世界(五) 书接上文~ TCP核心机制九: 面向字节流 TCP是面…

桶排序和计数排序(非比较排序算法)

桶排序 桶排序是一种基于分配的排序算法&#xff0c;特别适合用来排序均匀分布的数据。它的基本思想是将输入的数据分到有限数量的桶里&#xff0c;然后对每个桶内的数据分别进行排序&#xff0c;最后再将各个桶内的数据合并得到最终的排序结果。(通常用于浮点数&#xff0c;因…

Linux:RPM软件包管理以及yum软件包仓库

挂载光驱设备 RPM软件包管理 RPM软件包简介 区分软件名和软件包名 软件名&#xff1a;firefox 软件包名&#xff1a;firefox-52.7.0-1.el7.centos.x86_64.rpm 查询软件信息 查询软件&#xff08;参数为软件名&#xff09; ]# rpm -qa #当前系统中所有已安装的软件包 ]# r…

WebGL颜色与纹理

WEBGL中的着色器变量包括以下种类&#xff1a; 属性变量&#xff08;Attribute Variables&#xff09;&#xff1a;这些变量用于接收从应用程序中传递的顶点数据&#xff0c;比如顶点位置和颜色&#xff0c;是只读的不可修改。统一变量&#xff08;Uniform Variables&#xff…

AI浪潮新崛起:借助AI+实景/视频直播创新魅力,开启无人自动直播新时代!

AI浪潮新崛起&#xff1a;借助AI实景/视频直播创新魅力&#xff0c;开启无人自动直播新时代&#xff01; 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已不再仅仅是科幻电影中的桥段&#xff0c;它正以不可阻挡之势渗透到我们生活的方方面面&#xff…

力扣718-最长重复子数组(Java详细题解)

题目链接&#xff1a;718. 最长重复子数组 - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5…

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中&#xff0c;合理地管理对共享资源的访问是至关重要的。读写锁&#xff08;ReadWriteLock&#xff09;正是一种能让多个线程同时读取共享资源&#xff0c;而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…

这8款AI论文工具帮你一键搞定!ai论文一键生成任务书

在当今学术研究和论文写作领域&#xff0c;AI技术的应用已经成为一种趋势。通过智能算法和大数据分析&#xff0c;AI工具能够帮助学者和学生提高写作效率、优化内容结构&#xff0c;并确保论文的原创性和质量。以下是8款值得推荐的AI论文工具&#xff0c;其中特别推荐千笔-AIPa…

选择排序(C语言实现)

目录 1.基本思想 2.代码实现 代码思路 代码实现 代码测试 3.复杂度分析 1&#xff09;时间复杂度 2&#xff09;空间复杂度 4.特性总结 1.基本思想 选择排序是一种简单直观的比较排序算法。该算法的基本思想是在每一轮中选出当前未排序部分的最小&#xff08;或最大&a…

通过 LabVIEW 正则表达式读取数值(整数或小数)

在LabVIEW开发中&#xff0c;字符串处理是一个非常常见的需求&#xff0c;尤其是在处理包含复杂格式的数字时。本文通过一个具体的例子来说明如何利用 Match Regular Expression Function 和 Match Pattern Function 读取并解析字符串中的数字&#xff0c;并重点探讨这两个函数…

日期和时间类【Date】【Calendar日历类】【LocalDate】Date-Time API详解

我们先来介绍一下与时间相关的基础知识。 GMT - 格林尼治标准时间&#xff08;Greenwich Mean Time&#xff09;&#xff0c;简称GMT&#xff0c;实际上与世界时UT&#xff08;universal time &#xff09;基本一致。 UTC - 协调世界时&#xff08;Universal Time Coordinated&…

matlab恢复默认窗口布局

1.点击主页&#xff0c;选择布局 2.选择默认&#xff0c;即可恢复到默认的窗口布局

Linux系统上搭建Vulhub靶场

Linux系统上搭建Vulhub靶场 ​vulhub​ 是一个开源的漏洞靶场&#xff0c;它提供了各种易受攻击的服务和应用程序&#xff0c;供安全研究人员和学习者测试和练习。要在 Linux 系统上安装和运行 vulhub​&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装 Docker 和 Docke…

C#软键盘设计字母数字按键处理相关事件函数

应用场景&#xff1a;便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用&#xff0c;因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面&#xff1a;软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…

二叉树---java---黑马

二叉树 遍历 遍历分两种 广度优先遍历 尽可能先访问距离根节点最近的节点&#xff0c;也称之为层序遍历。 深度优先遍历 对于二叉树&#xff0c;进一步分为三种 pre-order前序遍历&#xff0c;对于每一颗子树&#xff0c;先访问该节点&#xff0c;然后是左子树&#xf…

探索RESTful风格的网络请求:构建高效、可维护的API接口【后端 20】

探索RESTful风格的网络请求&#xff1a;构建高效、可维护的API接口 在当今的软件开发领域&#xff0c;RESTful&#xff08;Representational State Transfer&#xff09;风格的网络请求已经成为构建Web服务和API接口的标配。RESTful风格以其简洁、无状态、可缓存以及分层系统等…