前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java-Servlet介绍

Java-Servlet介绍

作者头像
白衣少年
发布2022-12-26 13:35:42
3230
发布2022-12-26 13:35:42
举报

Servlet是什么?

servlet是Server Applet的简称,翻译过来就是服务程序。

我们知道,一般的网页程序,是由我们通过浏览器访问来实现的,在这个过程中,我们的浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理.这就是我们熟悉的B/S模型(浏览器-服务器模型).而servlet就是对请求作出处理的组件,运行于支持Java的应用服务器中. Java Servlet 可以使用所有的 Java API,Java 能做的事情,Servlet 都能做

servlet.png
servlet.png

Servlet的作用

通俗来讲servlet专门用来接收客户端的请求,专门接收客户端的请求数据,然后调用底层service处理数据并生成结果 浏览器http请求------》tomcat服务器-------》到达servlet-----》执行doget,dopost方法----》返回数据

  1. 客户端发送请求到服务器端
  2. 服务器将请求信息发送至Servlet
  3. Servlet生成响应内容并将其传给服务器。
  4. 服务器将响应返回给客户端。

一、servlet里的三大作用域:

代码语言:javascript
复制
request(请求):它的作用范围是一次请求和响应,是三个作用域中最小的。
session(会话):它的作用比request要大一点,一次会话过程中,它的作用域就一直存在,(默认是30分钟)
servletcontext:它作用范围最大,作用于整个服务器中。(Application)

1.Request request表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在 当前请求中有效,如果Web组件之间需要共享同一个请求中的数据,只能使用请求转发。

a.用处:

  • 用于服务器间同一请求不同页面之间的参数传递
  • 用于表单的控件值传递

b.常用方法:

代码语言:javascript
复制
request.setAttribute(); 
request.getAttribute(); 
request.removeAttribute(); 
request.getParameter().

2.Session   服务器为每个会话创建一个session对象,所以session中的数据可供当前会话中所有servlet共享。作用域:会话从用户打开浏览器开始,直到关闭浏览器才结束,一次会话期间只会创建一个session对象。

a.用处:

  • 用于web开发中的登陆验证界面
  • 用于电商网站购物车功能

b.常用方法:

代码语言:javascript
复制
session.setAttribute(); 
session.getAttribute(); 
session.removeAttribute();

在Servlet直接获取session:

代码语言:javascript
复制
HttpSession session = request.getSession();

JSP页面中直接使用(session属于JSP九大内置对象之一):

代码语言:javascript
复制
<%session.serAttribute("name","admin")%> 

c.session被销毁

  • session超时;
  • 浏览器关闭后,再也访问不到和该浏览器对应的session,它会在超时之后被销毁; 调用 session.invalidate();

备注: session是服务器端对象,保存在服务器端,并且服务器可以将创建session后产生的 sessionid 通过一个 cookie 返回给客户端,以便下次验证。(session底层依赖于cookie)

3.Application(ServletContext) ServletContext在 服务器启动时创建,服务器关闭时销毁。一个JavaWeb应用只创建一个ServletContext对象,所有的浏览器在访问服务器时都共享同一个ServletContext对象,ServletContext对象一般用于在多个浏览器间共享数据时使用。

Servlet中获取Application对象:

代码语言:javascript
复制
ServletContext serContext = this.getServletContext();
serContext .setAttribute("name", "kaixuan");    //设置一个值进去
serContext .getAttribute("name");      //获取键值对  

备注:ServletContext同属于JSP九大内置对象之一,在JSP页面中可以直接使用

4.作用域对象共享数据:

代码语言:javascript
复制
1. 设置作用域中的共享数据
   作用域对象.setAttribute(String name,Object value);
代码语言:javascript
复制
2. 获取作用域中的共享数据
   Object value = 作用域对象.getAttribute(String name);
代码语言:javascript
复制
3. 删除作用域中的指定的共享数据
   作用域对象.removeAttribute(String name);

二、作用域总结

  1. 生命周期
    • request:只作用于当前一次请求
    • session:一次会话(多次请求)
    • application:项目的启动到结束
  2. 作用范围
    • requset:所有被请求转发的Servlet
    • session:所有Servlet(当前浏览器)
    • application:所有Servlet(所有浏览器都行)
  3. 正确选择作用域
    • request:跟当前操作功能相关
    • session:跟用户信息相关,如登录信息、银行账号
    • application:跟项目全局信息相关,如:京东配送地址

    如果选择的作用域不够准确,会造成内存浪费。

  4. 测试作用域生命周期 验证 测试过程:新建项目部署到Tomcat,浏览器访问,F5多次刷新,中途换浏览器访问 测试结果:request的计数值始终是1,session的技术值当换了浏览器后从1开始,Application的计数值一直相加。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Servlet是什么?
  • Servlet的作用
  • 一、servlet里的三大作用域:
  • 二、作用域总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档