JSP实现数据传递与保存

1.HTML页面转换JSP页面
直接再HTML页面最顶端添加page指令,修改文件后缀名;反之;

2.JSP内置对象

对象

 描述

request

每当客户端请求JSP页面时,JSP引擎会制造一个新的request对象来代表这个请求。

response

当服务器创建request对象时会同时创建用于响应这个客户端的response对象

out

out对象用来在response对象中写入内容。

session

session对象用来跟踪在各个客户端请求间的会话。

application

该对象代表web应用本身,整个web应用共享一个application对象。

config

这个对象允许开发者访问Servlet或者JSP引擎的初始化参数。

pageContext

页面上下文对象,这个对象存储了内置对象的引用。

page

这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表

exception

这个对象包装了从先前页面中抛出的异常信息。

 3.request对象常用方法

方法名称

 说明

String getParameter(String name)

根据表单组件名称获取提交数据

String[ ] getParameterValues(String name)

获取表单组件对应多个值时的请求数据

void setCharacterEncoding(String charset)

指定每个请求的编码

RequestDispatcher getRequestDispatcher(String path)

返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

 4,get与post区别

比较项

get

post

参数出现在URL

长度限制

安全性

URL可传播

Tomcat中对于post方法提交的表单采用的默认编码为ISO-8859-1,而这种编码格式不支持中文字符。

5. 解决表单乱码
1:post请求出现乱码
request.setCharacterEncoding("utf-8");
2:get请求出现乱码
治标的方法:new String(s.getBytes("iso-8859-1"),"utf-8");
治本的方法:配置tomcat\conf\server.xml文件

6.response
response对象用于响应客户请求并向客户输出信息

7.response对象常用方法

方法名称

 说明

void addCookie(Cookie cookie

给客户端添加一个Cookie对象,以保存客户端的信息

PrintWriter getWriter()

返回一个输出字符流

void sendRedirect()

将请求重新定位到一个不同的URL,即页面重定向

void setCharacterEncoding(String encoding)

设置字符编码类型为encoding

8. 请求的转发
转发的作用
在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理
转发的实现
RequestDispatcher对象的forward()方法

9.转发和重定向
转发:在服务器端发挥作用,将同一请求在服务器资源之间进行传递,客户端浏览器的地址栏不会显示转向后的地址
重定向:在客户端发挥作用,通过发送一个新的请求实现页面转向,在地址栏中可以显示转向后的地址

10.out对象

属性

说明

print

向页面输出显示

println

向页面输出显示,在结尾处添加换行

flush

刷新输出流

11. session对象
session机制是一种服务端的机制,在服务端保存信息。
用于存储与用户的会话信息

 方法名称

说明

void setAttribute(String key,Object value)

key/value的形式保存对象值

Object getAttribute(String key)

通过key获取对象值

void invalidate()

设置session对象失效

String getId()

获取sessionid

void setMaxInactiveInterval(int interval)

设定session的非活动时间

int getMaxInactiveInterval()

获取session的有效非活动时间(以秒为单位)

void removeAttribute(String key)

session中删除指定名称(key)所对应的对象

 12.session与窗口的关系
每个session对象都与一个浏览器窗口对应,重新开启一个浏览器窗口,可以重新定义一个session对象。
通过超链接打开的新窗口,新窗口的session与其父窗口的session相同。
每个session都有一个唯一的sessionid
public String getId();

13.使用session对象存取数据
1、使用属性保存数据
2、从属性中读取数据,必要时需要进行数据类型的转换

14.session会话的清除和过期
程序主动清除session数据
        设置会话失效:session.invalidate();
        只移除会话的一个属性:session.removeAttribute(String name);
服务器主动清除长时间没有再次发出请求的session
        修改tomcat服务器的web.xml,单位是分钟
        <session-config>
               <session-timeout>30</session-timeout>
        </session-config>

15.会话的生命周期
用浏览器访问服务器——产生会话
通过浏览器在网站登录——在会话中保存数据
登录成功后用个人身份进行访问——会话有效期内
关闭了浏览器——结束会话
服务器主动结束会话——会话到期
使会话失效、删除属性——及时释放会话资源
程序主动结束会话、会话到期——会话中的数据丢失

16.jsp页面的包含操作
1.使用<%@include file= “URL”%>指令实现静态包含
使用<jsp:include page="URL“>实现动态包含

17.动态包含和静态包含的区别

静态包含

动态包含

<%@include%>

<jsp:include>

先将页面包含,后执行页面代码,即将一个页面的代码复制到另一个页面中。

先执行页面代码,后将页面包含,即将一个页面的运行结果包含到另一个页面中。

被包含的页面内容发生变化时,包含页面将会被重新编译。

被包含页面内容发生变化时,包含页面不会重新编译。

18.application对象
application对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或者Servlet之间共享变量。
application对象开始于服务器的启动,终止于服务器的关闭。
application对象实现了用户间的数据共享,可以存放全局变量。

19.application对象的常用方法        
        

20. 对象的作用域
作用域的分类
page作用域:对应的作用域访问对象为pageContext
request作用域:对应的作用域访问对象为request对象
session作用域:对应的作用域为session对象
application作用域:...为application对象

21.

名称

说  明

page作用域

在一个页面范围内有效,通过pageContext对象访问

request作用域

在一个请求范围内有效

session作用域

在一次会话范围内容有效

application作用域

在一个应用服务器范围内有效

22.Cookie
Cookie是Web服务器保存在客户端的一系列文本信息
Cookie的作用
对特定对象的追踪(Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告)
实现各种个性化服务(Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务)
简化登录(Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点)
安全性能
容易泄露信息

23.创建Cookie对象
Cookie newcookie = new Cookie(String key,String value);
由服务器端向客户端写入Cookie对象
Cookie[] cookied = request.getCookies();

24.Cookie类的常用方法

方法名称

说  明

void setMaxAge(int expiry)

设置cookie的有效期,以秒为单位

void setValue(String value)

cookie创建后,对cookie进行赋值

String getName()

获取cookie的名称

String getValue()

获取cookie的值

int getMaxAge()

获取cookie的有效时间,以秒为单位

25.Web应用中的连接池技术
开发步骤:
添加数据库驱动文件:拷贝MySQL驱动包到Tomcat安装目录下的lib目录中。
配置context.xml文件:context.xml在Tomcat安装目录下的conf目录中。
修改BaseDao中获取Connection的方式。通过JNDI API查找并获取数据源。
有一点必须注意,现在的数据库连接池是在Tomcat上配置的,所以此程序只能在web下运行,而不能使用application程序运行。

26.Javabean
JavaBean是用Java开发的可以跨平台的可重用组件。
从JavaBean的功能上可以分为
封装数据
封装业务
JavaBean一般情况应满足以下要求
JavaBean的优势
解决代码重复编写,减少代码冗余
功能区分明确
提高了代码的维护性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433582.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

内存溢出(OOM)-汇总指南

目录 java.lang.OutOfMemoryError:Java heap space 原因分析 示例 解决方案 java.lang.OutOfMemoryError:GC overhead limit exceeded 原因分析 示例 解决方案 java.lang.OutOfMemoryError:Permgen space 原因分析 示例 解决方案 java.lang.OutOfMemoryError:Metas…

Learn C the hard way :一些简单问题处理

Preface&#xff1a;本次学习主要是以复习态度而来&#xff0c;意在加强C语言的理解&#xff0c;本文主要针对于网站中出现的一些问题 我的简单Makefile&#xff1a; CFLAGS-Wall cc gcc cflag -Wall -g allfiles ex1.c ex2.c ex3.c ex4.c ex5.c ex4-1.c objs $(allfiles:.c…

Claude 3击败GPT-4,地表最强AI易主,坐等翻车

北京时间3月4日晚22点00分&#xff0c;Claude 3发布了&#xff0c;一举超越了GPT-4&#xff01; 震惊&#xff0c;居然有人能超越霸主地位&#xff0c;赶紧进官网详细的看一下&#xff1a; https://www.anthropic.com/news/claude-3-family 刷到第一的成绩单 Claude3 Opus的…

MyBatis操作数据库(SQL注入)

本文主要来讲解6大标签&#xff0c;以便更好的MyBatis操作数据库&#xff01; <if>标签<trim>标签<where>标签<set>标签<foreach>标签<include>标签 前提需求&#xff1a; MyBatis是一个持久层框架&#xff0c;和Spring没有任何关系&…

java VR全景商城 saas商城 b2b2c商城 o2o商城 积分商城 秒杀商城 拼团商城 分销商城 短视频商城 小程序商城搭建

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

Nodejs 第五十章(lua的基本使用)

lua基本使用 全局变量局部变量 全局变量是在全局作用域中定义的变量&#xff0c;可以在脚本的任何地方访问。全局变量在定义时不需要使用关键字&#xff0c;直接赋值即可。 xiaoman xmzsprint(xiaoman)局部变量是在特定作用域内定义的变量&#xff0c;只能在其所属的作用域…

腾讯云4核8G12M轻量服务器优惠价格446元一年,646元15个月

腾讯云4核8G12M轻量服务器优惠价格446元一年&#xff0c;646元15个月&#xff0c;180GB SSD云硬盘&#xff0c;2000GB月流量。 一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU内存配置从2核…

【笔记】Android ServiceStateTracker 网络状态变化逻辑及SPN更新影响

业务简介 在网络状态变化的时候&#xff08;数据或WiFi&#xff09;&#xff0c;会更新SPN。 基于Android U的代码分析。 分类&#xff1a;SPN Data_Dic-的博客-CSDN博客 功能逻辑 状态说明 飞行模式下注册上WFC的话&#xff0c;注册状态MD上报 regState: NOT_REG_MT_NOT…

SpringBoot 自定义映射规则resultMap collection一对多

介绍 collection是封装一对多关系的&#xff0c;通常情况下是一个列表&#xff0c;association是一对一&#xff0c;通常情况是一个对象。例如&#xff1a;查询班级下所有的学生&#xff0c;一个班级可以有多个学生&#xff0c;这就是一对多。 案例 有一个学生表&#xff0c…

NineData云原生智能数据管理平台新功能发布|2024年2月版

SQL开发&#xff1a;全功能支持百度云 GaiaDB 介绍&#xff1a;支持通过 SQL 开发所有能力管理 GaiaDB 实例。更多信息&#xff0c;请参见&#xff1a;真香&#xff01;NineData SQL 开发全面适配 GaiaDB 场景&#xff1a;企业使用 GaiaDB 管理企业数据&#xff0c;需要一个一…

第五篇:组件更新:完整的 DOM diff 流程是怎样的?(下)

下面我们来继续讲解上节课提到的核心 diff 算法。 新子节点数组相对于旧子节点数组的变化&#xff0c;无非是通过更新、删除、添加和移动节点来完成&#xff0c;而核心 diff 算法&#xff0c;就是在已知旧子节点的 DOM 结构、vnode 和新子节点的 vnode 情况下&#xff0c;以较…

Sora核心之一:可变时长、分辨率、尺寸

Overview 一、总览二、摘要三、引言四、方法4.1、架构改动4.2、训练改变4.3、NaViT的效率 NaViT 一、总览 题目: Patch n’ Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution 机构&#xff1a;Google DeepMind 论文: https://arxiv.org/pdf/2307.06304…

python72-Python的函数入门,为函数提供文档

之前介绍过可以使用Python内置的help()函数查看其他函数的帮助文档,我们也经常通过help()函数查看指定函数的帮助信息&#xff0c;这对于Python开发者来说非常重要。 我们还可以为函数编写说明文档一只要把一段字符串放在函数声明之后、函数体之前&#xff0c;这段字符串将被作…

LVGL:切换页面

static lv_obj_t *contanier1 NULL; static lv_obj_t *contanier2 NULL;static void win_btn_event_callback(lv_event_t* e) {lv_event_code_t code lv_event_get_code(e);if (code LV_EVENT_CLICKED){lv_obj_t * obj lv_event_get_target(e);//按钮if(lv_obj_get_child(co…

回溯算法03-电话号码的字母组合(Java)

3.电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;d…

#define MODIFY_REG(REG, CLEARMASK, SETMASK)

#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) 这个宏 MODIFY_REG 是在嵌入式编程中&#xff0c;它用于修改一个寄存器的特定位&#xff0c;而不影响其他位。这个宏接受三个参数&#xff…

onav_rim 复现记录

onav_rim 复现记录 任务复现过程克隆项目&#xff0c;创建环境源码安装habitat-sim从github上安装CLIP环境配置收尾工作数据集下载模型评估其他问题训练训练模型 任务 上次复现one4all失败&#xff0c;但我就是想看看我的电脑能不能做end2end的视觉导航任务。这次看到了《Obje…

Java多线程——信号量Semaphore是啥

目录 引出信号量Semaphore &#xff1f;Redis冲冲冲——缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Java多线程——信号量Semaphore是啥 信号量Semaphore &#xff1f; Semaphore 通常我们叫它信号量&#xff0c; 可以用来控制同时访问特…

Java实现布隆过滤器示例

布隆过滤器&#xff08;Bloom Filter&#xff09;是一种用于快速检查一个元素是否属于一个集合的数据结构。它基于哈希函数的思想&#xff0c;可以在空间和时间上实现高效的元素判断。 布隆过滤器通常用于解决以下问题&#xff1a; 1.快速查询&#xff1a;布隆过滤器可以在常数…

3. 在Go语言项目中使用Zap日志库

文章目录 一、介绍二、 默认的Go Logger1. 实现Go Logger2. 设置Logger3. 使用Logger4. Logger的运行5. Go Logger的优势和劣势 三、Uber-go Zap1. 为什么选择Uber-go zap2. 安装3. 配置Zap Logger4. 定制logger4.1 将日志写入文件而不是终端4.2 将JSON Encoder更改为普通的Log…