<<< 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 安装并启动 ...
随机推荐
- SQL Server Reporting Services:无法检索应用程序文件。部署中的文件已损坏
如果在客户端计算机上启动Microsoft SQL Server 2012的 ClickOnce 版本的 Microsoft SQL Server 报表生成器时出现"无法检索应用程序文件.部 ...
- Linux命令学习总结:dos2unix - unix2dos
命令简介: dos2unix是将Windows格式文件转换为Unix.Linux格式的实用命令.Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2 ...
- javascript-桥接模式
桥接模式 1.在系统沿着多个维度变化的同时,又不增加其复杂度并以达到解耦 2.最主要特点:将实现层(如元素绑定的事件)与抽象层(如修饰页面UI逻辑)解耦分离,使两部分独立变化 3.避免需求的改变造成对 ...
- Linux下java进程CPU占用率高-分析方法
今天登陆同事的一台gateway 开始以为hive环境登陆不了了,仔细一看看了下是因为机器很卡,我每次等几秒没登陆就ctrl+c了,看了下是有个java进程cpu:340.4% mem:14.6% ...
- netty3升netty4一失眼成千古恨
老项目是netty3的,本来想直接改到netty5,但是netty5居然是只支持jdk1.7,很奇怪jdk1.6和jdk1.8都不行..为了兼容jdk1.6加上netty4本来和netty5就差别不大 ...
- 跨云应用部署第一步:使用IPSEC VPN连接AWS中国版和Windows Azure中国版
随着公有云的普及,越来越多的客户将关键应用迁移到云端.但是事实证明,没有哪家云服务提供商可以提供100%的SLA,无论是例行维护还是意外中断服务,对于客户的关键应用而言,都会受到不同程度的影响.此外, ...
- java设计模式之外观模式
外观模式概念 外观模式又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个搞层次接口,使得这一个子系统更加容易使用.这一模式完美的体现了依赖倒转原则和迪米特法则的思想,所以是非常常 ...
- 【原】移动web页面使用字体的思考
回想2年前刚开始接触手机项目,接到PSD稿后,发现视觉设计师们喜欢用微软雅黑作为中文字体进行设计,于是我写页面的时候也定义 font-family 为微软雅黑,后来发到线上后,细心的产品经理发现页面的 ...
- UVALive 4670 Dominating Patterns --AC自动机第一题
题意:多个模板串,一个文本串,求出那些模板串在文本串中出现次数最多. 解法:AC自动机入门模板题. 代码: #include <iostream> #include <cstdio& ...
- Qt——一些工具的使用
一.使用Qt需要安装哪些软件 如果不使用VS,那么只需Qt组件就行了,安装完成后使用QtCreator进行编程. 如果使用VS,则需要安装下面几个: 1.Visual Studio 2.Qt组件 3. ...