10.1网站编写(Tomcat和servlet基础)

news2024/11/18 15:29:21

一.Tomcat:

1.Tomcat是java写的,运行时需要依赖jre,所以要装jdk.

2.建议配置好环境变量.

3.默认端口号8080(业务端口)可能会被占用,建议改一下(本人改成了9999).

4.另一个默认端口是8005(管理端口).

二Servlet基础(编写一个hello world代码):

整体分为7个步骤,分别是创建项目,引入依赖,

1.创建项目:自动生成的java下的Main和org.example不使用,删除掉.pom.xml很重要.

2.引入依赖:进入maven的中央仓库,搜索servlet,Tomcat8使用3.1.0版本(Maven中央仓库地址).

将以下代码贴到pom.xml中,注意需要创建标签(<dependencies> </dependencies>).

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

60d2d0f408774826a968e38d38cbe0fc.png

注意:首次使用会自动下载很多依赖,所以会慢一些,之后会很快. 

此处提供一个阿里的镜像源(阿里镜像源)

3.手动创建一些必要的目录(文件):

首先在main目录下创建一个目录(Directory)(和java平级),名字是webapp(规定这个名字,不能用大写).在刚刚创建的目录下,再创建一个目录(Directory),名字是WEB-INF(规定这个名字,不能用小写).接着在上一步创建的目录下,创建一个文件(File),名字是web.xml(规定这个名字).最后在上一步创建的文件中放入一段固定的代码,如下所示.

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

上述代码可能会标红,但不是错误,不影响使用.

4.编写代码:

a.在java路径下创建类,要让它继承(extends)HttpServlet类(这个类如果标红,需要去pom.xml那里手动刷新一下).

b.重写doGet方法(根据需求,还可以重写doPost,doPut......方法)

1e7c1a12c1fc49819046475c10ebd817.png 064cbfd1cb384891b1d8b8dc5bd5c251.png

注意配置路由:写完代码之后,要在类的上面加上代码@WebServlet("/hello").表示当请求路径在含义hello的时候,才会执行到上述代码.主要是因为这里面可以有多个类,上述代码用来区分不同的类.

f7bc272d906e47fc8debee6635db2fa7.png

这里需要重点注意,doGet方法不支持body数据中的读取。

5.通过maven进行打包:

a.在右边点击maven.

f256a8e3b7a5440291fe61493264233d.png

eb6423617c374150ab7ad1eb61f2f1c2.png

 79f64335c0164fc1b9428eac98228a41.png

b.

1)修改成war包:在pom.xml文件中添加标签(<packaging>war</packaging>)(这个标签是<project>标签的子标签).

2)可以选择加上(<build><finalName>???</finalName></build>)给war包加上名字.

a1327ed36b0a4ce1b64d3399cabbe75d.png

然后重新打包,就是war包 

6.部署:把war包拷贝到tomcat的webapps目录中,tomcat会自动解压缩,并新增两条日志.

7.验证程序,使用浏览器.

afc6b461f00e4282873fb9ab273ea95c.png

注意:通过第一级路径,确定一个webapp.

        通过第二级路径,确定哪个servlet.

        通过方法,确定执行servlet中的哪个方法.

8.问题说明:

如果出现tomcat cmd窗口正常启动,但是浏览器页面一直加载的情况,需在cmd窗口敲回车键.

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

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

相关文章

精品Python比赛报名系统竞赛

《[含文档PPT源码等]精品基于Python实现的比赛报名系统设计与实现》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;python 使用框架&#xff1a;Django 前端技术&#xff1a;JavaScript…

LeetCode 接雨水 木桶理论、dp预处理

原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题面&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a…

C语言之字符函数字符串函数篇(2)

目录 字符串查找 strstr strstr的使用 strstr的模拟实现 分析 考虑点 代码 strt strtok的使用 循环改进 错误信息报告 strerror 错误码的错误信息 strerror的使用 perror 字符操作 字符分类函数 字符转化函数 今天我们接着讲字符串函数&#xff0c;也…

Android 富文本SpannableString

一、认识SpannableString 为什么要使用富文本 在Android开发中&#xff0c;有很多UI会画出一些特别炫酷的界面出来&#xff0c;比如一个字符串里有特殊的字会有其他颜色并加粗、变大变小、插入小图片、给某几个文字添加边框&#xff0c;如果我们使用笨办法用几个TextView或者Im…

解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

JavaWeb 学习笔记 8:AJAX

JavaWeb 学习笔记 8&#xff1a;AJAX AJAX&#xff08;Asynchronous JavaScript And XML&#xff0c;异步 js 和 XML&#xff09;是一种用 js 代码异步&#xff08;或同步&#xff09;的方式请求服务端数据&#xff0c;并在页面显示或加载的技术。 1.快速入门 先看如何用纯 …

GB28181协议-注册详解

注册指的是设备或系统进入联网系统时向SIP服务器&#xff08;SIP UAS&#xff09;进行注册登记的工作模式&#xff0c;在本文中FFmpeg即为一个SIP服务器&#xff0c;设备向FFmpeg发送注册请求&#xff0c;FFmpeg在接收到设备的注册请求后返回相应的回复消息&#xff0c;则完成设…

【面试题】——Spring

1.Spring是什么&#xff1f; Spring是一个开源的Java应用框架&#xff0c;它提供了广泛的基础设施支持&#xff0c;用于构建Java应用程序。极大提高了开发效率。它提供了一种轻量级的编程模型&#xff0c;通过依赖注入&#xff08;Dependency Injection&#xff09;和面向切面…

盘点神级AI绘画工具,太强太友好了

B站|公众号&#xff1a;啥都会一点的研究生 AI绘画越来越卷、越来越极致&#xff0c;可以轻松将我们这些毫无绘画功底的人的创意想法转化为令人惊叹的数字艺术作品&#xff0c;本期将整理一些目前流行的高质量AI艺术生成器&#xff0c;一起看看吧 Bing Image Creator https:/…

污水中常规五参数的检测有什么意义

便携式水质五参数检测仪包括&#xff1a; 温度、 pH、溶解氧、电导率、浊度。同时该仪器也可根据客户需要进行其他电极法指标&#xff0c; 如盐度、 TD S、OR P 指标的增添&#xff0c;以及指标的任意搭配组合。 水质常规五参数在我国水污染防治中发挥着重要的作用。 检测水质常…

spring中AbstractApplicationContext的refresh()

这个部分的源码看的次数不计其数了&#xff0c;每次看不同开源组件的调用过程中走到这里都有不同的收获。 spring 中 AbstractApplicationContext 的 refresh() 是 spring 的核心&#xff0c;几乎所有的逻辑都在是这里间接被调用。 如下源码为 spring boot 2.7.15 自带的 sprin…

MySQL主从复制与读写分离(附配置实例)

目录 一、主从复制1.1 什么是主从复制&#xff1f;1.2 MySQL支持的复制类型1.3 主从复制的工作过程1.4 主从复制的同步模式1.4.1 异步复制&#xff08;Asynchronous replication&#xff09;1.4.2 全同步复制&#xff08;Fully synchronous replication&#xff09;1.4.3 半同步…

其他网页都可以打开,只有知网打不开

问题&#xff1a;电脑自动获取DNS出现问题。 1、打开Internet协议版本4&#xff08;TCP/IPv4&#xff09; 控制面板—所有控制面板项----网络连接----WLAN—属性----Internet协议版本4&#xff08;TCP/IPv4&#xff09;—属性 2、修改DNS 将自动获得DNS服务器地址&#xff…

Sparta工具用法描述之信息收集(漏洞分析)

声明:本文仅做学习与交流,任何用于非法用途、行为等造成他人损失的,责任自负。本文不承担任何法律责任。 Sparta是python GUI应用程序,它通过在扫描和枚举阶段协助渗透测试仪来简化网络基础结构渗透测试。 通过点击并单击工具箱并以方便的方式显示所有工具输出,它可以使测…

Swing通过后台线程实现页面更新

业务场景 在swing程序中&#xff0c;我们想实现一个随着任务的执行而同步更新组件的功能&#xff0c;如果在主线程&#xff08;EDT&#xff09;中直接执行任务并更新组件&#xff0c;则会导致组件只显示最终更新的状态的问题&#xff0c;这是因为EDT是单线程的&#xff0c;在执…

【golang】深入理解Go语言垃圾回收(GC)

垃圾回收 垃圾回收版本1.3之前标记-清除&#xff08;mark and sweep&#xff09;算法标记-清除&#xff08;mark and sweep&#xff09;的缺点 版本1.5的三色并发标记法没有STW的三色标记法屏障机制强-弱 三色不等式插入屏障删除屏障 版本1.8的混合写屏障&#xff08;hybrid wr…

MQ - 25 RabbitMQ集群架构设计与实现

文章目录 导图集群构建节点发现元数据存储数据可靠性镜像队列仲裁队列安全控制传输加密身份认证资源鉴权可观测性总结导图 集群构建 集群构建由节点发现和元数据存储两部分组成。RabbitMQ 也是一样的实现思路。 节点发现 在节点发现方面,RabbitMQ 通过插件化的方式支持了多…

经典题记录 字符串相加/相乘

1. LeetCode 415 字符串相加 代码一&#xff1a;代码简短&#xff0c;但需要借助额外的一个string来保存结果&#xff0c;更占用内存。 class Solution { public:string addStrings(string num1, string num2) {string ans"";int size1num1.size();int size2num2.si…

php之导入导出csv文件

一、导入csv文件 1、创建导入页面 <!DOCTYPE html> <html lang"zh-CN"> <meta charset"UTF-8"> <head><title>文件提交表单</title> </head> <body> <form action"test5.php" method"…

嵌入式裸机架构的探索与崩塌

为什么会想着探索下嵌入式裸机的架构呢&#xff1f;是因为最近写了一个项目&#xff0c;项目开发接近尾声时&#xff0c;发现了一些问题&#xff1a; 1、项目中&#xff0c;驱动层和应用层掺杂在一起&#xff0c;虽然大部分是应用层调用驱动层&#xff0c;但是也存在驱动层调用…