javaweb实训第三天上午——Servlet(1)

简介: Servlet基础课程介绍Servlet基础; (掌握)基本结构生命周期执行流程接收参数响应数据

Servlet基础

课程介绍

Servlet基础; (掌握)

基本结构

生命周期

执行流程

接收参数

响应数据

1.Servlet基础

1.1.什么是Servlet

1.这是一个接口,一个规范(sun公司并没有去实现它),它的实现就是由各大服务器厂商(Tomcat)去实现;

2.Tomcat是一个javaweb服务器,也是一个Servlet容器;

3.Servlet容器是管理所有Servlet对象的创建,运行,销毁的容器。而Servlet对象也只有在Servlet容器中才能使用。所以如果我们写了一个Servlet, 那么一定要记住,把这个Servlet交给Tomcat去管理;

4.Servlet接受web请求

1.2.如何开发一个Servlet

1.创建一个web项目;

2.导入Servlet的jar (servlet-api.jar)包,可以去Tomcat目录的lib目录中复制:

20210524112932698.png

3.新建一个类去实现Servlet接口或者去继承HttpServlet类(建议),并实现或重写service业务方法:

20210524112937562.png

4.在web.xml中注册Servlet,即让Tomcat知道有这么一个Servlet要交给它去管理:

20210524112942136.png

5.匹配请求

20210524112945717.png

6.配置完成后,我们可以进行访问,浏览器中输入地址:

http://ip地址<:端口>/<上下文路径>/我们自己映射的路径

http://localhost:80/servlet/hello

注意:常见错误

1.部署web项目后启动Tomcat时会加载项目中的web.xml文件,如果部署会问题,说明web.xml中出现问题;

2.自定义的Servlet一定要提供一个公共无参的构造方法;

3.web.xml中url-pattern这里一定要有/;

4.自定义的Servlet一定要写完全限定名;

5.Tomcat服务配置文件server.xml中的配置中docBase路径不要写错;

6.classes(eclipse生成的.class文件路径)配置正确;

1.3.Servlet执行流程

注:访问之前一定要确保Tomcat服务要开启,并且要将项目部署到Tomcat,否则出现404错误;

1.用户在浏览器端输入地址。例如:http://localhost:80/servlet/hello

2.这个请求访问20210524113004520.png的是本地(localhost)端口号为80的程序,即tomcat;

3.Tomcat会到webapps中去找到servlet这个程序或者到server.xml中根据上下文路径()中的找到对应的项目:

这个对应的就是我们路径中的:http://localhost:80/servlet/hello

4.然后Tomcat会去找到该项目的配置文件web.xml,然后查看有没有hello这个请求;

20210524113048556.png

5.请求:http://localhost:80/servlet/hello

20210524113055180.png

注意:当我们找到这个 /hello的时候,也就相应的找到了Servlet的名字(servlet-name) : hello

6.Tomcat会根据请求hello去匹配web.xml中的中的值:

(1)如果没有匹配上就去找这个项目默认web路径下有没有hello这个页面(html或jsp):

①如果没有,404;

②如果有这个页面,显示页面的内容;

(2)如果匹配上了会根据标签找到相应的Servlet类:

20210524113119951.png


7.找到相应的类之后,到缓存区里面去看这个类有没有相应的实例:

(1)如果没有,通过反射创建一个实例,并将这个实例放到缓存区:

①执行构造方法

②执行初始化方法

(2)如果有,直接拿到这个实例;

8.调用实例的service方法执行业务逻辑处理;

9.如果正常关闭的话,会执行destroy方法;

20210524113125664.png


1.4.Servlet生命周期

人的生命周期:出生 – 取名上户(初始化) – 为人民服务 – 死亡

Servlet生命周期:1.Servlet容器调用无参构造创建对象 – 第一次访问 或 项目部署的时候

2.Servlet容器调用初始化方法(init()) – 第一次访问 或 项目部署的时候

3.Servlet容器调用服务方法(service()、doGet()、doPost()) – 第n次访问

4.对于Tomcat来说,Servlet只有一个(它是单例的,每次创建的Servlet实例都会缓存起来)

5.当我们正常关闭Tomcat的时候,Servlet容器会自动调用销毁方法(destory())

构造方法 --> init方法 --> service【每次请求都会执行】 --> destory【正常关闭才执行】

20210524113134763.png

注意:也可以将Servlet实例化和初始化的时机提前到项目部署或服务器开启的时候,只需要加上标签即可:

20210524113138785.png

1.5.ServletConfig

1.ServletConfig这个对象是由Tomcat为我们创建好的,我们可以在init中可以拿到它。它是Servlet的配置对象;

2.API:

config.getServletContext():拿到的上下文对象(先不管)

config.getServletName():拿到Servlet的名字

20210524113145856.png

config.getInitParameter(String name): 根据名称拿到初始化参数

20210524113154602.png

1.6.Get请求与Post请求的区别

1.get请求时,请求参数放在请求地址url后面,而post提交方式时,请求参数是放在请求数据包中的实体内容中传递;

2.由于地址栏的数据有长度限制,所以Get请求传输的数据量小,一般不能大于2kb,Post请求传输的数据大小没有限制。所以一般文件上传下载使用的是Post请求;

3.Post安全性相对Get较高;

注意:

1.什么时候发get请求?

(1)直接输入网址

(2)点击链接

(3)设置表单的提交方式为get或表单的默认提交

2.什么时候发post请求?

(1)设置表单提交方式为post(method=“post”)

javaweb实训第三天上午——Servlet(2)https://developer.aliyun.com/article/1414834?spm=a2c6h.13148508.setting.18.4d4d4f0erzCTC6

目录
相关文章
|
2天前
|
存储 安全 JavaScript
JavaWeb之Servlet(下)
本文主要介绍了JavaWeb开发中关于请求、响应、会话和Servlet3.0注解的相关知识。首先讲解了请求(Request)的常用方法,以及处理请求乱码问题的几种方式。接着讨论了响应(Response)的方法,,以及设置全局初始化参数。然后介绍了会话(Session)的概念,包括其生命周期、如何设置和获取初始化参数,并对比了全局初始化参数和Servlet3.0的`@WebServlet`注解。文中给出了具体的代码示例和测试结果,帮助读者更好地理解和掌握这些概念。
|
2天前
|
Java 应用服务中间件 程序员
JavaWeb之Servlet(上)
本篇博文介绍了JavaWeb中Servlet的基本概念和应用。Servlet是用于交互式浏览和修改数据、生成动态Web内容的Java程序,通常运行在支持Java的应用服务器上。文章讲解了Servlet的工作模式,包括客户端请求、服务器调用Servlet以及响应返回客户端的过程。此外,还提到了Servlet API,特别是doGet和doPost方法用于处理请求和响应。作者通过创建第一个Servlet的步骤,展示了如何实现Servlet接口并配置web.xml文件。最后,文章简述了Servlet的工作原理和生命周期,强调了Servlet的单例特性以及初始化、服务和销毁的过程。
|
4月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
60 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
4月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
41 0
|
4月前
|
编解码 应用服务中间件 数据库
|
5月前
|
小程序 应用服务中间件 数据库连接
|
1月前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
21 0
|
20小时前
|
Java
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
7 1
|
20小时前
|
Java
校园帮【JSP+Servlet+JavaBean】(Java课设)
校园帮【JSP+Servlet+JavaBean】(Java课设)
6 1
|
20小时前
|
Java
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
新闻发布系统【JSP+Servlet+JavaBean】(Java课设)
8 2