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

发布时间:2024年01月12日

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("构造方法");
	}

	@Override
	public void destroy() {
		System.out.println("销毁方法");
	}

	@Override
	public ServletConfig getServletConfig() {
		System.out.println("servlet配置");
		return null;
	}

	@Override
	public String getServletInfo() {
		System.out.println("servlet信息");
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		System.out.println("初始化方法");
	}

	@Override
	public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
		System.out.println("服务方法");
	}
}
文章来源:https://blog.csdn.net/CHiN_951/article/details/135560888
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。