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

news2024/9/27 7:20:29

 笔记: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.coloradmin.cn/o/2165277.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++9月25日

1.栈的实现 头文件 #ifndef STACKHEAD_H #define STACKHEAD_H #include <iostream> #define MAX 30 using namespace std;class Stack { private:int *ptr;int top; public:Stack();Stack(int *,int);~Stack();bool full();bool empty();int push(int);void show();Sta…

一个超强的Python库!HTTP请求性能分析工具推荐:httpstat!

什么是Python httpstat&#xff1f; httpstat是一个基于命令行的工具&#xff0c;用于在终端中展示HTTP请求的详细统计信息。它以可视化和易读的方式显示了HTTP请求的各个阶段的性能数据&#xff0c;如DNS解析、TCP连接、TLS握手、发送请求、服务器处理、接收响应等。 使用ht…

2024.9.26 Spark学习

资料&#xff1a; Spark基础入门-第一章-1.1-Spark简单介绍_哔哩哔哩_bilibili &#xff08;1&#xff09;基础知识 Apache Spark 是用于大规模数据&#xff08;large-scale data&#xff09;处理的统一分析引擎。 分布式处理数据 PySpark模块 Spark 和 Hadoop 有区别&…

QT编译之后的debug包下运行程序双击运行出现无法定位程序输入点__gxx_personlity_seh0于动态链接库

1.出现这个错误的原因是&#xff1a; 缺少如下文件&#xff1a; 2.解决方法&#xff1a; 在运行程序.exe所在的目录执行&#xff1a;windeployqt untitled.exe&#xff08;指打包的运行程序&#xff09; 3.如果执行提示由于找不到qt5core.dll,无法继续执行代码和无法识别win…

c++进阶学习-----继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象 程序设计的…

聚合函数count 和 group by

count函数&#xff1a; count&#xff08;列名&#xff09; SELECT COUNT(sid) FROM grade 统计列中所有的数值个数&#xff0c;会忽略null值。 count&#xff08;*&#xff09;和count&#xff08;1&#xff09; SELECT COUNT(*) FROM grade SELECT COUNT(1) FROM grade 统…

前端接口报错302 [已解决]

前端接口报错302 [已解决] 在前端开发中&#xff0c;与后端接口的交互是项目成功的关键。然而&#xff0c;遇到如302这样的状态码报错时&#xff0c;可能会让开发者感到困惑。本文将通过详细解析和多个代码案例&#xff0c;帮助你深入理解前端接口报错302&#xff0c;并提供有效…

Redis入门介绍

1.初识Redis 计算机领域的任何问题都可以通过增加一个间接的中间层来解决 1.Redis介绍 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的&#xff0c;使用C语言编写、支持网络调用、基于内存亦可持久化的Key-Value数据库&…

静电势能(electrostatic potential energy)和电势(electric potential)

静电势能(electrostatic potential energy) 静电势能是把一个电荷从无穷远处移动到这个位置需要做的功。 静电势能的符号&#xff1a; U 图示&#xff1a; 计算公式&#xff1a; U q 1 q 2 4 π ϵ 0 R U \frac{q_1q_2}{4\pi\epsilon_0R} U4πϵ0​Rq1​q2​​ 其中 U …

【JavaEE】——阻塞队列,生产消费者模型(较难)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;阻塞队列 1&#xff1a;概念 2&#xff1a;阻塞队列与普通队列比较 二&#xff1a;“生…

简单好用的PDF编辑器有哪些?这4款千万不要错过。

PDF文件在生活中被我们大量使用&#xff0c;所以编辑PDF文件也是常有的事。平时我们用的文档编辑器不一定能够编辑PDF。这个时候就需要使用专业的PDF 编辑器&#xff0c;下面这几款工具就可以帮助我们直接对 PDF 文件中的内容进行编辑&#xff0c;可以有效的提高工作效率。 1、…

测序技术--组蛋白甲基化修饰、DNA亲和纯化测序,教授(优青)团队指导:从实验设计、结果分析到SCI论文辅助

组蛋白甲基化修饰工具(H3K4me3 ChIP-seq)组蛋白甲基化类型也有很多种&#xff0c;包括赖氨酸甲基化位点H3K4、H3K9、H3K27、H3K36、H3K79和H4K20等。组蛋白H3第4位赖氨酸的甲基化修饰(H3K4)在进化上高度保守&#xff0c;是被研究最多的组蛋白修饰之一。 DNA亲和纯化测序 DNA亲…

JPA+Thymeleaf

创建项目:创建一个crm项目 添加依赖: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…

C++ | Leetcode C++题解之第420题强密码检验器

题目&#xff1a; 题解&#xff1a; class Solution { public:int strongPasswordChecker(string password) {int n password.size();bool has_lower false, has_upper false, has_digit false;for (char ch: password) {if (islower(ch)) {has_lower true;}else if (isu…

优化算法(五)—梯度下降算法(附MATLAB程序)

梯度下降算法&#xff08;Gradient Descent&#xff09;是一种常用的优化算法&#xff0c;用于寻找函数的局部最小值。它通过沿着函数梯度的反方向迭代地调整变量&#xff0c;以逐步找到最优解。梯度下降广泛应用于机器学习和深度学习中&#xff0c;特别是在训练模型时优化损失…

面对淘宝镜像证书过期,npm怎么办?

前提;已经下载好node.js 目的&#xff1a;打开vue.js官网 在终端输入 npm create vuelatest &#xff0c;这脚手架 创建vue工程 vue.js官网&#xff1a;https://cn.vuejs.org/guide/quick-start 问题&#xff1a;当你要创建vue工程 &#xff0c;你在终端输入:npm create vue…

【Vision Transformer】辅助理解笔记

注&#xff1a;本文主要是对 PPT 部分内容的补充与拓展&#xff0c;建议结合使用&#xff08;当然也完全可以单看&#xff09;。 一、基础知识 1、从向量表示到词嵌入 这部分主要是参考如下文章&#xff0c;大部分图片均来自此文&#xff1a;The Illustrated Word2vec – Jay…

Element-plus安装及其基础组件使用

简而言之&#xff0c;在main.js中导出以下库,仅此&#xff0c;搞多了出错难排查 import ElementPlus from element-plus //导入ElementPlus 模块 import element-plus/dist/index.css //引入样式 app.use(ElementPlus) //注册库就能使用了 Element Plus 是一个基于 Vue 3 的组件…

Linux进阶命令-小结

作者介绍&#xff1a;简历上没有一个精通的运维工程师。希望大家多多关注作者&#xff0c;下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 经过上一章Linux日志的讲解&#xff0c;我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令&am…

通过 OBD Demo 体验 OceanBase 4.3 社区版

本文作者&#xff1a;马顺华 引言 OceanBase 4.3 是一个专为实时分析 AP 业务设计的重大更新版本。它基于LSM-Tree架构&#xff0c;引入了列存引擎&#xff0c;实现了行存与列存数据存储的无缝整合。这一版本不仅显著提升了AP场景的查询性能&#xff0c;同时也确保了TP业务场景…