您的位置:首页 > 其它

web里面Servlet高级应用的基础介绍

2014-01-03 17:44 260 查看
Servlet中的页面跳转?

两种方式,实现跳转:内部跳转(请求转发)、外部跳转(重定向)

内部跳转(请求转发)特点:在服务器内部完成页面之间的跳转;请求只有一次;浏览器地址不会改变。

request.getRequestDispatcher(“路径”).forward(reuqest,response);

request.getRequestDispatcher(“路径”).include(reuqest,response);

外部跳转(重定向)特点:通知客户端重新发送请求;请求次数为二次;浏览器地址栏会改变。

response.sendRedirect(“路径”);

内部跳与外部跳最重要的区别:

内部跳转,请求为一次——request对象是同一个(不同页面中);可以利用request传递数据。

外部跳转,请求为二次——request对象不是同一个;不能使用request传递数据。

中文问题?

支持中文的编码格式:GBK(简体+繁体)、GB2312(简体)、UTF-8(unicode编码,支持国际通用语言编码)

MyEclipse工具中出现乱码?

菜单栏打开Window--->首选项(最后一个)-->基本选项(第一个)-->contentTypes -->Text(javasource file)

程序中的乱码:

post提交处理方式:

在程序中的第一行写入:

request.setCharacterEncoding(“与jsp页面编码必须一致”);

response.setCharacterEncoding(“与jsp页面编码必须一致”);

get提交处理方式:

get提交不能按照post方式进行处理;原因是:数据提交到服务器之前,已经被浏览器设定了编码。(ISO-8859-1编码,标准英语)

String txtname = request.getParameter("txtname");

txtname = newString(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中使用全局变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: