<<< web里面Servlet高级应用的基础介绍
Servlet中的页面跳转?
两种方式,实现跳转:内部跳转(请求转发)、外部跳转(重定向)
内部跳转(请求转发)特点:在服务器内部完成页面之间的跳转;请求只有一次;浏览器地址不会改变。
request.getRequestDispatcher(“路径”).forward(reuqest,response);
request.getRequestDispatcher(“路径”).include(reuqest,response);
外部跳转(重定向)特点:通知客户端重新发送请求;请求次数为二次;浏览器地址栏会改变。
response.sendRedirect(“路径”);
内部跳与外部跳最重要的区别:
内部跳转,请求为一次——request对象是同一个(不同页面中);可以利用request传递数据。
外部跳转,请求为二次——request对象不是同一个;不能使用request传递数据。
中文问题?
支持中文的编码格式:GBK(简体+繁体)、GB2312(简体)、UTF-8(unicode编码,支持国际通用语言编码)
MyEclipse工具中出现乱码?
菜单栏打开Window--->首选项(最后一个)-->基本选项(第一个)-->content Types -->Text(java source file)
程序中的乱码:
post提交处理方式:
在程序中的第一行写入:
request.setCharacterEncoding(“与jsp页面编码必须一致”);
response.setCharacterEncoding(“与jsp页面编码必须一致”);
get提交处理方式:
get提交不能按照post方式进行处理;原因是:数据提交到服务器之前,已经被浏览器设定了编码。(ISO-8859-1编码,标准英语)
String txtname = request.getParameter("txtname");
txtname = new String(txtname.getBytes("ISO-8859-1"),"与jsp页面编码必须一致");
Session的会话跟踪技术?
1. 什么是Session?
Session(会话)——客户端一次请求,服务器端一次响应;这个过程称之为会话。
什么是JavaWeb的会话跟踪技术?
在服务器端记录客户端的相关信息,客户端第二次以后的访问;服务器能够识别每一个客户端。
如何使用会话跟踪技术?
使用会话跟踪技术核心对象:Session对象。
Session对象:每一个客户端第一次访问服务器的时候,服务器分配一个唯一的SessionID给用户,下一次访问服务器的时候,根据SessionID区分每一个用户。(跟银行类似)
注意:每一个Session对象,相互独立;默认以浏览器为单位(同一个浏览器默认为同一个用户,浏览器关闭session消失)。
Session用来存、取数据使用,常用方法:
setAttribute(“名字”,”值”);
getAttribute(“名字”);
注意:只要能够获取到session对象,都可以使用session中的数据(跟跳转方式无关)。
设置Session有效时间(Session默认30分钟):
setMaxInactiveInterval(时间值单位秒)。
invalidate();当前Session立即失效(退出)。
会话跟踪技术:
Cookie(原理:通过浏览器往客户端写入Cookie文件,来识别不同的用户;也可以设置 有效日期)
Session(利用Session对象,完成客户追踪;浏览器关闭session就消失(不可用); session.invalidate() session立即失效)
URL重写、隐藏域技术(URL重写是通过地址栏,不断的传递SessionID来区分用户)。
Cookie 与 Session 异同:
相同:都可以实现会话跟踪(存放用户的相关信息)。
不同点:Cookie不以浏览器关闭为标准;以设置的有效时间为标准(可以实现离线跟踪)。
Session必须保证浏览器不关闭的情况,才能获取到。
Servlet中的线程安全
Servlet在运行时,只有一个实例对象(通过Servlet的生命周期);保证用户能够独立访问Servlet,采用了多线程技术。
作用:效率更高,用户与用户之间独立开。
缺点:线程安全问题(多个线程,同时操作一个变量(数据))
解决方案:尽量不要在Servlet中使用全局变量。
<<< web里面Servlet高级应用的基础介绍的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 在Mac电脑上为iPhone或iPad录屏的方法
在以前的Mac和iOS版本下,录制iPhone或者iPad屏幕操作是一件稍微复杂的事情.但是随着Yosemite的出现,在Mac电脑上为iPhone或iPad录屏的方法就变得简单了.下面就介绍一下具体 ...
- MongoDB学习笔记~自己封装的Curd操作(查询集合对象属性,更新集合对象)
回到目录 我不得不说,mongodb官方驱动在与.net结合上做的不是很好,不是很理想,所以,我决定对它进行了二次封装,这是显得很必然了,每个人都希望使用简单的对象,而对使用复杂,麻烦,容易出错的对象 ...
- Tokudb 参数优化
tokudb_row_format tokudb_fast: 使用quicklz 库的压缩模式.(推荐)tokudb_small: 使用 lzma 库的压缩模式.tokudb_zlib: 使用 zli ...
- PHP中的回调函数和匿名函数
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- FFmpeg编译找不到库文件
在编译FFmpeg的时候,用./configure 进行配置,经常会出现找不到库文件的情况,原因大概就两个: 1.没有安装库文件或者安装的库文件版本不对 2.FFmpeg没有找到库文件 前者的问题好解 ...
- Mysql主从复制,读写分离(mysql-proxy),双主结构完整构建过程
下面介绍MySQL主从复制,读写分离,双主结构完整构建过程,不涉及过多理论,只有实验和配置的过程. Mysql主从复制(转载请注明出处,博文地址:) 原理是master将改变记录到二进制日志(bina ...
- C++使用binder实例
Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的.所以搞明白Binder的话,在很大程度上就能理解程序运行的流程. ...
- jquery2源码分析系列
学习jquery的源码对于提高前端的能力很有帮助,下面的系列是我在网上看到的对jquery2的源码的分析.等有时间了好好研究下.我们知道jquery2开始就不支持IE6-8了,从jquery2的源码中 ...
- 【java开发】分支语句、循环语句学习
一.Java分支语句类型 if-else 语句 switch 关于if-esle语句可以拆分为三种 if语句 if(条件){语句块;} if-else语句if(条件语句){语句块;} if-else ...
- 【问题&解决】fonts/fontawesome-webfont.woff2 404 (Not Found)
问题: 虽然网页正常显示和运行,但是有2个字体文件出现404错误.像笔者这种强迫症是接受不了的. 解决: 因为笔者的服务器是虚拟主机,只需要在主机控制器平台添加对应的MIME类型即可. 这样服务器就支 ...