Servlet/Jsp学习总结

本文深入探讨了Servlet和JSP的基础知识,包括它们在处理客户端请求、数据获取、响应生成等方面的功能,以及生命周期、实例化过程和与session、cookie的工作机制。同时,对比了Servlet与JSP在MVC架构中的角色分工。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先先明确servlet是用来处理客户端请求的

servlet的作用:      

    1.获取表单数据
    2.获取浏览器附加信息
    3.处理数据(在servlet中调用其它的处理数据方式来完成,如jdbc rpc等)
    4.给客户端产生一个响应
    5.在响应中添加附加信息

浏览器与服务器会话状态信息

cookie:  分为 会话cookie(随浏览器关闭而结束) 和 持久化cookie(持久化到本地,可以通过cookie.setMaxAge(2000)设置有效时长)
    存在于客户端浏览器,每一次请求都会将有效的cookie发送给服务器 所以cookie有数量限制(具体数量与不同浏览器有关)
session:  分为两部分 sessionid与session(键值对的关系) 存在服务器端,服务器通过cookie将sessionid发送给浏览器,
    所以可以在不同请求间传递信息  1.关闭tomcat 2.reload web应用 3.session时间到 (在web.xml中配置)4invalidate  session(方法调用强制失效

servlet的实例化:

容器利用Java反射实例化servlet对象
类反射加载机制:Class clazz=Class.forName("类名")   或者用一个实例对象getClass()方法 加载类
进行了IO类加载以及静态成员初始化操作
    Servlet obj=clazz.newInstance()在堆内存完成所有成员变量初始化创造对象
    obj.init();

servlet 生命周期

    servlet生命周期是由容器管理
     分为三个阶段: init初始化 service 服务 destroy 销毁
    当客户端浏览器第一次请求该servlet时,Tomcat会立即创建该servlet对象,并立即调用init()完成初始化 并且在新的线程中调用service()方法。
    Tomcat会对已经实例化的servlet对象进行缓存,当有客户端浏览器再次请求该servlet,容器不会再次创建servlet对象,而是在一个新的线程中调用service()方法。

     在容器关闭时, 容器会在servlet对象销毁之前调用一次destroy()方法

//servlet可以在web.xml中配置,使其在容器启动时初始化,不必依赖于请求而创建

cookie和session:

HTTP是无连接的不能记录状态信息,而在一些场景下需要这些状态信息(记住用户名,验证是否已经登陆,验证码等信息)
所以记录客户端状态,识别请求状态需要cookie session
cookie:  分为 会话cookie(随浏览器关闭而结束) 和 持久化cookie(持久化到本地,可以通过cookie.setMaxAge()设置有效时长 单位为Second秒)
    存在于客户端浏览器,每一次请求都会将有效的cookie发送给服务器 所以cookie有数量限制(具体数量与不同浏览器有关)
session:  分为两部分 sessionid与session(键值对的关系) 存在服务器端,服务器通过cookie将sessionid发送给浏览器, 所以可以在不同请求间传递信息 

session失效方法:1.关闭tomcat 2.reload web应用 3.session时间到 (在web.xml中配置)4invalidate  session(方法调用强制失效)

JSP:

(jsp引擎编译为一个servlet文件 其实本质和servlet相同 在客户端第一次请求时,或者jsp被修改时编译)
三种原始标签:(作为Java编译)
    1.声明:<%!  %> jsp编译后的Java源文件中的类下
    2.赋值:<%=   %> jsp编译后的Java源文件中的字符输出流方法中(切记,不要加分号)
    3.脚本:<%      %> jsp编译后的Java源文件中的jspServices方法中
jsp指令标签:  
    1.<%@ page launguae="java" import="java.util.*"  pageEncoding="utf-8"%>
    2.<%@ include  %>

jsp内置对象(暗对象):
    jsp已经为我们创建好的对象(9个):
    jsp中                servlet中
    request            HttpServletRequest         作用域一次请求
    response         HttpServletResponse         
    application       ServletContext                 全局作用域
    session            HttpSession                     随浏览器关闭而失效
    config               ConfigContext         
    out                    PrintWriter
    exception         Throwable
    pageContext
    page

servlet和jsp本质时一样的,只是jsp对于展示更加擅长 相当于mvc中的view 而servlet则相当于controller
它默认内容是在printwriter流中(相当于servlet的printwriter()中) 通过标签来确定Java代码作用域

本人新人小白,有错误欢迎指出

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值