<<< 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 安装并启动 ...
随机推荐
- HTML5【语法要点】
一.头部设置 <!--页面窗口自动调整到设备宽度,并禁止用户及缩放页面--> <meta name="viewport" content="width= ...
- MongoDB学习笔记——分片(Sharding)
分片(Sharding) 分片就是将数据进行拆分,并将其分别存储在不同的服务器上 MongoDB支持自动分片能够自动处理数据在分片上的分布 MongoDB分片有三种角色 配置服务器:一个单独的mong ...
- windows 2012 r2下安装sharepoint 2013错误解决
日前,我在安装sharepoint 2013时,需要预部署一些软件,我们知道运行产品准备工具“prerequisiteinstaller”后就可以自动下载安装配置这些软件,但是使用系统为windows ...
- 3. Python 简介
3. Python 简介 下面的例子中,输入和输出分别由大于号和句号提示符 ( >>> 和 ... ) 标注:如果想重现这些例子,就要在解释器的提示符后,输入 (提示符后面的) 那些 ...
- NOIP2010pj三国游戏[博弈论]
题目描述 小涵很喜欢电脑游戏,这些天他正在玩一个叫做<三国>的游戏. 在游戏中,小涵和计算机各执一方,组建各自的军队进行对战.游戏中共有 N 位武将(N为偶数且不小于 4),任意两个武将之 ...
- 第12章 Java字符串
1.什么是Java中的字符串 字符串String并不是一种数据类型,而是一个类对象,在java.lang包中,只不过在默认情况下java都是自动导入的,所以可以直接使用创建一个String对象的方法有 ...
- 片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但
片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但片元着色器是一个更合适的名字, 因为此时的片元并不是一个真正意义上的像素.
- 4.bootstrap练习笔记-内容区块
bootstrap练习笔记-内容区块 1.bootstrap中,采用的全部是div布局,把你的内容首先要包含在一个大的DIV区块当中 2.然后再写一个div.container,这个div里面存放真正 ...
- bzoj[3238][ahoi差异]
Description Input 一行,一个字符串S Output 一行,一个整数,表示所求值 Sample Input cacao Sample Output HINT 2<=N<=5 ...
- httpd配置.md
httpd-2.2 配置 监听端口和IP 配置文件: Listen [IP:]PORT 省略IP表示为0.0.0.0 Listen指令可重复出现多次 修改监听socket,重启服务进程方可生效 可以监 ...