JavaWeb_2-servlet1

一、概念

二、创建

一个普通的java类继承HttpServlet

三、调用

image-20200804095435111

image-20200804100208147

不同请求可以访问一个资源(servlet-class),但一个请求不能指向多个资源

image-20200804101507965

image-20200804111408251

四、通过注解去进行配置(简化配置)

image-20200804114016701

name省略时,value字段可以省略

五、tomcat如何管理servlet的生命周期

servlet的生命周期(由web容器进行管理)

出生:

实例化过程:默认是在第一次访问时创建servlet对象并进行初始化操作(初始化操作只执行一次,意味着servlet是一个单例模式),servlet是一个线程不安全的java类,不要在里面创建成员变量

销毁:

image-20200804150847748

默认"-1",第一次访问时创建servlet

image-20200804143037883

其他值在启动服务器时创建servlet,值越小初始化优先级越高

创建好对象后,当收到请求后,就可以调用里面的service,进行服务

六、根据请求的方式,进行请求的分发

image-20200804144207501

6.1

通过手动在url地址输入,调用的doGet

6.2

超链接,调用的是doGet

6.3

可以使用doPost和doGet,表单提交默认doPost

6.4

js location.href=""

image-20200804151414301

七、应用

image-20200804162704858

7.1请求

HttpServletRequest request

乱码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3j5n4Qqr-1596639192474)(C:/Users/CEO/AppData/Roaming/Typora/typora-user-images/image-20200804170653872.png)]

7.2响应

HttpServletResponse response

页面

out.write();

页面的跳转

以图片的格式显示

下载的方式

JSON的方式

注意:

必须至少有一个路径要跟servlet的路径相对应,否则会疯狂报错

image-20200804194351051

7.3 请求头

url:获取请求的地址

uri:项目路径以及请求的路径

image-20200805094652531

物理路径,项目部署的真实路径

image-20200805095245480

image-20200805095141741

7.4 上传文件

image-20200805112939385

image-20200805100134303

注意前面要标注支持part功能

image-20200805100708304

获取并保存上传的文件,文件名后缀要跟上传的文件一致

image-20200805100429317

  • 问题:如果上传后想要回显怎么办

image-20200805111626386

避免图片覆盖,使用时间戳来命名

image-20200805112554032

服务器不能使用磁盘绝对路径,要使用服务器根目录相对路径,因为图片已经加载到服务器了

image-20200805111721172

多个文件上传,然后进行遍历

image-20200805112846831

7.5 页面的跳转

7.5.1重定向(发送了两次请求)

请求一次Http地址后会直接关闭

image-20200805113919002

7.5.2 请求转发(只发送了一次请求)

跳转到另一种隐私界面都放在WEB-INFO下

但页面跳转也访问不了,需要请求转发:

image-20200805115444285

请求转发,url地址不会发生变化,可以获取WEB-INFO下的资源

重定向url地址会变化,不可以获取WEB-INFO下的资源

非WEB-INFO下两者都可以跳转到

image-20200805115712327

请求转发后可以继续使用请求的request和response

  • 从用户登录页面入手,如果一个用户登录成功后在另一个servlet中,以网页的形式显示用户名信息,不操作数据库

    重定向接收不到数据,因为是相当于新开了一个页面

image-20200805142145114

请求转发可以接受到数据,因为是同一个request和response

进行文件名的拼接

image-20200805142912827

7.6 验证码

image-20200805145015940

image-20200805145040646

image-20200805152309715

7.7 下载资源

image-20200805155851083

告诉浏览器以下载的方式打开

image-20200805160506874

练习:

重定向:向另一个servlet提交请求,看能不能接收到数据

请求转发:向另一个servlet提交请求,看能不能接收到数据

(路径/servlet名字)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值