JavaEE学习笔记 2024-1-12 --Tomcat服务器、Servlet

JavaEE

JavaEE是企业级开发
是综合性非常强的阶段
 包含的知识点:JavaSE,MySQL,JDBC,WEB(HTML,CSS,JS,前端框架),Servlet,JSP,XML,AJAX等技术

1.服务器

JavaEE项目需要运行在服务器之上
WEB服务器就是WEB项目的容器,WEB项目的运行环境,将项目部署到服务器下,可以通过服务器路径给用户直接浏览访问
静态资源
 网页中保持不变的,没有后端请求的(HTML/CSS/JS/图片等)
动态资源(WEB服务器上运行动态资源)
 会随着不同的请求,发生不同的变化

常见开发中的服务器产品
 Tomcat(apache开源服务器,与sun公司合作,主流的web服务器之前,springboot中内置的服务器)
 Jetty(效率比tomcat要高,安装相比tomcat麻烦一些)
 WebLogic(Oracle 收费)
 WebSphere(IBM服务器)
 Nginx(静态资源服务器)

2.Tomcat服务器

Apache的开源项目,tomcat是开源免费的,因为和sun公司进行合作,支持最新的JSP和Servlet的语法
企业中主流的使用Tomcat8.5和Tomcat9版本(Tomcat10也有使用)
各版本之间最大的差别是对Servlet(运行在服务器下的Java类)的规范支持
Tomcat有安装版和解压版的区别(目录结构是一样的,以及后面的搭建方式是相同的,本次课程给大家提供的是Tomcat8.5解压版)

2.1Tomcat的使用

开箱即用注意:开箱时目录的层级不要太多,开箱路径中不要有中文例如:D:\apache-tomcat-8.5.20\apache-tomcat-8.5.20

2.2Tomcat的目录结构

bin		存放服务器启动和关闭相关的二进制文件
conf	tomcat的配置相关文件(server.xml可以配置当前服务器的端口等信息,web.xml当前服务器的全局文件)
lib		tomcat是java开发的,lib中存放的是支持的jar环境
logs	存放日志文件,服务器相关的各种信息
temp	临时文件夹
webapps	管理web项目的,默认情况下web项目要部署到该路劲下(eslipse需要手动配置,idea可以自动配置)
work	存web项目的动态页面(JSP:Java Server Page)转换的java文件的

2.3Tomcat的启动和关闭

startup.bat 启动服务器 关闭则可以直接关闭服务器不能同一个端口启动多次(一个端口只能启动一次)
tomcat若无法启动,则需要查看JDK的环境变量是否正常配置,tomcat是由java开发的必须有正确的JAVA_HOME配置

2.4eclipse下配置tomcat

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.Servlet的基本使用

Servlet是JavaEE规范的一部分,Servlet需要JavaEE的环境支持环境支持:JDK环境,服务器环境
Servlet是一个运行在服务器下的类,由服务器进行创建对象Servlet的本质是Java类

3.1编写第一个Servlet程序

// 外部(浏览器)访问我们Servlet的路径
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("你访问到我了呦");}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("你访问到我了呦");}}

3.2Servlet的访问

1.在服务器下启动当前的项目Run On Server --> finsh 服务器和项目一起被启动了,项目可以被访问了
2.访问路径http://localhost:8080/20240112-01-HelloServlet/HelloServlet当前地址表示着访问服务器下的Servlet类

3.3Servlet的配置

在Servlet3.0后有两种配置方案:
1.基于注解的方式(更加便捷,更加方便)@WebServlet(路径)路径是必须由/开始注解是将Java类配置到服务器下,可以被直接访问(浏览器访问服务器,然后读取到了一个Java类)
2.基于配置文件的方式web.xml文件,该文件每个项目都只有一个在WebContent/WEB-INF/web.xml文件中进行配置xml文件是和html同公司(www3cSchool)发布的产品,特点都是由标签组成(标记,节点)xml的特点是区分大小写,所有标签必须是闭合的(双标签<xx></xx> 单标签<xx/>)xml中只有一个根节点xml最初被创建的作用是数据传输的,但是xml特别的笨重xml现在多用于配置文件
<!-- 使用xml的形式进行配置servlet -->
<!-- 注册Servlet -->
<servlet><!-- 名字任意 --><servlet-name>ok</servlet-name><!-- 需要被注册的servlet --><servlet-class>com.qf.servlet.OkServlet</servlet-class>
</servlet>
<!-- 映射,外部的访问方式 -->
<servlet-mapping><!-- 名字和上面一样 --><servlet-name>ok</servlet-name><!-- 外部的访问路径 --><url-pattern>/ok</url-pattern>
</servlet-mapping>

3.4Servlet配置需要注意的问题

url-pattern不能重复
url-pattern必须以/开头

3.5Servlet的版本变化

接口版本
 Servlet
模板化抽象类版本
 GenericServlet
Http协议抽象类版本(自动生成的版本)
 HttpSerlet

3.5.1Servlet接口

Servlet接口中包含了Servlet生命周期相关方法(4个)(来到没的过程)
1.构造方法 只调用一次,服务器创建的同时为Servlet创建对象
2.初始化方法 只调用一次,用于对当前的Servlet进行初始化信息
3.服务方法 可以调用多次,每次的浏览器的访问都会调用一次(请求的过程)
4.销毁方法 只调用一次,服务器正常终止时调用,或者源码改变时调用

@WebServlet("/my")
public class MyServlet implements Servlet{public MyServlet() {System.out.println("构造方法");}@Overridepublic void destroy() {System.out.println("销毁方法");}@Overridepublic ServletConfig getServletConfig() {System.out.println("servlet配置");return null;}@Overridepublic String getServletInfo() {System.out.println("servlet信息");return null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {System.out.println("初始化方法");}@Overridepublic void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {System.out.println("服务方法");}
}

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

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

相关文章

Java面试之并发篇(二)

1、前言 本篇主要基于Java面试题之并发篇&#xff08;一&#xff09;继续梳理java中关于并发相关的高频面试题。本篇的面试题基于网络整理&#xff0c;和自己编辑。在不断的完善补充哦。 2、synchronized 的原理是什么? synchronized是 Java 内置的关键字&#xff0c;它提供…

软件测试|selenium 元素无法选择异常的原因及解决

简介 在进行 Web 自动化测试时&#xff0c;使用 Selenium 可能会遇到各种异常情况。其中之一就是 ElementNotSelectableException 异常&#xff0c;该异常通常意味着在尝试选择一个不可选元素时出现了问题。本文将详细介绍这个异常的原因、可能的解决方法&#xff0c;并提供示…

韩国LG集团在 CES2024 消费电子展上发布的的无线透明OLED屏幕

国际消费类电子产品展览会&#xff08;International Consumer Electronics Show&#xff0c;简称CES&#xff09;&#xff0c;由美国电子消费品制造商协会&#xff08;简称CTA&#xff09;主办&#xff0c;旨在促进尖端电子技术和现代生活的紧密结合。该展始于1967年&#xff…

Oracle 19c OCP 1z0 082考场真题解析第32题

考试科目&#xff1a;1Z0-083 考试题量&#xff1a;85 通过分数&#xff1a;57% 考试时间&#xff1a;150min本文为云贝教育郭一军&#xff08;微信&#xff1a;guoyJoe&#xff09;原创&#xff0c;请尊重知识产权&#xff0c;转发请注明出处&#xff0c;不接受任何抄袭、演绎…

linux centos 账户管理命令

在CentOS或其他基于Linux的系统上&#xff0c;账户管理涉及到用户的创建、修改、删除以及密码的管理等任务。 linux Centos账户管理命令 1 创建用户&#xff1a; useradd username 这将创建一个新用户&#xff0c;但默认不会创建家目录。如果想要创建家目录&#xff0c;可以…

大数据开发工程师需要具备哪些技能?

在回答这个问题之前&#xff0c;需要充分了解一下当前大数据的几个就业方向&#xff0c;可以参考下主流互联网行业的部门架构、职责和JD&#xff0c;大数据开发工程师&#xff0c;总体来说有这么几类&#xff0c;不同的公司叫法不一样&#xff1a; 1、数仓开发工程师 2、算法挖…

ubantu系统运维命令,端口相关操作

1、使用sudo ufw status命令查看所有开放的端口&#xff0c;如下图&#xff1a; 2、使用命令sudo ufw allow 8443&#xff0c;打开端口8443.如下图&#xff1a; 3、使用 sudo ufw reload刷新端口配置&#xff0c;如下图&#xff1a;

软件测试|Selenium 元素不可交互异常ElementNotInteractableException问题分析与解决

简介 在使用 Selenium 进行 Web 自动化测试时&#xff0c;我们可能会遇到各种异常情况。其中之一就是 ElementNotInteractableException 异常&#xff0c;这通常意味着在尝试与页面元素交互时出现了问题。本文将详细介绍这个异常的原因、可能的解决方法&#xff0c;并提供示例…

Python 解决安装三方包失败的问题

pip 安装三方包失败&#xff0c;常见的情况有三种&#xff1a;不能访问源所在服务器&#xff1b;Python 版本不支持&#xff1b;和本地版本冲突。 不能访问源服务器 对于这张问题&#xff0c;有两种解决方法 # 方法一 pip config set global.index-url <源服务器> pip…

MobaXterm游戏讲解

前言 没想到吧&#xff0c;这里还有游戏&#xff0c;以下是玩法 玩法 注 点击Type可以自由更改地图大小 1.Netwalk 这个游戏是用鼠标点击每一个格子&#xff0c;进行旋转方向&#xff0c;使得所有方块连接接来&#xff0c;全部变成亮蓝色 2.Mines 这个就是扫雷了&#xff…

C++I/O流——(2)预定义格式的输入/输出(第一节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

【设计模式】01-前言

23 Design Patterns implemented by C. 从本文开始&#xff0c;一系列的文章将揭开设计模式的神秘面纱。本篇博文是参考了《设计模式-可复用面向对象软件的基础》这本书&#xff0c;由于该书的引言 写的太好了&#xff0c;所以本文基本是对原书的摘抄。 0.前言 评估一个面向对…

如何利用大语言模型(LLM)打造定制化的Embedding模型

一、前言 在探索大语言模型&#xff08;LLM&#xff09;应用的新架构时&#xff0c;知名投资公司 Andreessen Horowitz 提出了一个观点&#xff1a;向量数据库是预处理流程中系统层面上最关键的部分。它能够高效地存储、比较和检索高达数十亿个嵌入&#xff08;也就是向量&…

unittest自动化测试框架

一、unittest简介 Unittest是python内置的一个单元测试框架&#xff0c;主要用于自动化测试用例的开发与执行 简单的使用如下 import unittestclass TestStringMethods(unittest.TestCase):def setUp(self):print("test start")def test_upper(self):self.assertE…

可以打印试卷的软件有哪些?推荐这几款

可以打印试卷的软件有哪些&#xff1f;随着科技的飞速发展&#xff0c;越来越多的学习工具如雨后春笋般涌现&#xff0c;其中&#xff0c;能够打印试卷的软件尤其受到广大学生和家长的青睐。这些软件不仅方便快捷&#xff0c;而且内容丰富&#xff0c;可以满足不同学科、不同年…

python学习笔记9(程序的描述方式、程序的组织结构、顺序结构、选择结构1)

&#xff08;一&#xff09;程序的描述方式 自然语言、流程图、伪代码 &#xff08;二&#xff09;程序的组织结构 顺序、选择、循环 &#xff08;三&#xff09;顺序结构 &#xff08;四&#xff09;选择结构1 if 1、条件写法1 2、如果只有一个判断的写法 3、注意冒号和缩进…

NOIP2013提高组day2 - T3:华容道

题目链接 [NOIP2013 提高组] 华容道 题目描述 小 B 最近迷上了华容道&#xff0c;可是他总是要花很长的时间才能完成一次。于是&#xff0c;他想到用编程来完成华容道&#xff1a;给定一种局面&#xff0c; 华容道是否根本就无法完成&#xff0c;如果能完成&#xff0c; 最少…

Element-ui图片懒加载

核心代码 <el-image src"https://img-blog.csdnimg.cn/direct/2236deb5c315474884599d90a85d761d.png" alt"我是图片" lazy><img slot"error" src"https://img-blog.csdnimg.cn/direct/81bf096a0dff4e5fa58e5f43fd44dcc6.png&quo…

debian cups 打印机共享

apt update apt install -y cups localhost:631 add printer root 密码 添加打印机 然后在windows上设置 http://ip:631/printers/HP_LaserJet_1022

[element-ui] 级联选择器el-cascader不触发change事件

el-cascader 使用官网的数据是可以的 官网数据中最后一级没有children // 删除最后一级的children changeKey(arr) {for (var i0; i<arr.length; i) {if (arr[i].children.length) {this.changeKey(arr[i].children)} else {delete arr[i].children}} ]就可以了 参考&…