收藏 分享(赏)

Java Web之高级应用39464.ppt

上传人:dreamzhangning 文档编号:3660960 上传时间:2018-11-15 格式:PPT 页数:26 大小:393KB
下载 相关 举报
Java Web之高级应用39464.ppt_第1页
第1页 / 共26页
Java Web之高级应用39464.ppt_第2页
第2页 / 共26页
Java Web之高级应用39464.ppt_第3页
第3页 / 共26页
Java Web之高级应用39464.ppt_第4页
第4页 / 共26页
Java Web之高级应用39464.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、北京传智播客教育 ,Java Web之高级应用,讲师:张孝祥,献给中国SD2C软件技术大会,北京传智播客教育 ,中国SD2C软件技术大会之Java Web主题大纲,Tomcat中的类装载器 为Tomcat配置Https协议功能 为站点增加自动登录和单点登录功能 解决Web开发中的相对路径问题 为网站配置相同页眉和页脚的技巧 总结分析Web开发中的各种字符乱码问题,北京传智播客教育 ,Tip1:Tomcat中的类装载器,context.xml:,MailServlet.java:Context initCtx = new InitialContext();Context envCtx = (Co

2、ntext) initCtx.lookup(“java:comp/env“);Session session = (Session) envCtx.lookup(“mail/Session“);,北京传智播客教育 ,Tip2:为Tomcat配置Https协议功能,一些基本的安全知识 Keytool工具的使用 SSL/TLS的工作原理 Tomcat的体系结构,北京传智播客教育 ,一些基本的安全知识,数字摘要与MD5/SHA算法 作用:数据的完整性校验 对称加密与非对称加密 对称加密速度快,但加密和解密的钥匙必须相同,只有通信双方才能知道钥匙 非对称加密速度慢,加密和解密的钥匙不相同,某一个人持有

3、私钥,任何人都可以知道公钥 问题:想让任何陌生人都可以与你进行加密数据的交换,且加密速度要快,如何实现呢? 数字签名 功能:必须能够验证内容没有修改,必须能够验证内容确实是被发送方签署 方案:发送方的公钥可以验证发送方签名的真实性,数字摘要可以验证内容没有修改 数字证书 问题:如何确认对方提供的公钥的真实性。 方案:每个人或机构的公钥和私钥由一些权威的机构产生!,北京传智播客教育 ,数字摘要的基本应用:数据的完整性校验,北京传智播客教育 ,Keytool工具的使用,KeyStore的介绍 存储多个私钥和其附带的数字证书 存储信任的第三方数字证书 KeyStore中的每一个私钥和信任的第三方数字

4、证书用一个alias进行标识 Keytool的应用 产生私钥与导入第三方证书 导出证书与生成CSR(Certificate Signing Request)文件 修改KeyStore与其中存储项的密码 打印KeyStore与其中的存储项信息 删除KeyStore中的存储项,北京传智播客教育 ,SSL/TLS的工作原理,基本概念 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议。这种协议在WEB上获得了广泛的应用。 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer S

5、ecurity),从技术上讲,TLS1.0与SSL3.0的差别非常微小。 基本原理:先非对称加密传递对称加密所要用的钥匙,然后双方用该钥匙对称加密和解米往来的数据。 工作过程 浏览器向服务器发出请求,询问对方支持的对称加密算法和非对称加密算法;服务器回应自己支持的算法。 浏览器选择双方都支持的加密算法,并请求服务器出示自己的证书;服务器回应自己的证书。 浏览器随机产生一个用于本次会话的对称加密的钥匙,并使用服务器证书中附带的公钥对该钥匙进行加密后传递给服务器;服务器为本次会话保持该对称加密的钥匙。第三方不知道服务器的私钥,即使截获了数据也无法解密。非对称加密让任何浏览器都可以与服务器进行加密会

6、话。 浏览器使用对称加密的钥匙对请求消息加密后传送给服务器,服务器使用该对称加密的钥匙进行解密;服务器使用对称加密的钥匙对响应消息加密后传送给浏览器,浏览器使用该对称加密的钥匙进行解密。第三方不知道对称加密的钥匙,即使截获了数据也无法解密。对称加密提高了加密速度。 要求 服务器端需安装数字证书,用户可能需要确认证书。 会话过程中的加密与解密过程由浏览器与服务器自动完成,对用户完全透明。,北京传智播客教育 ,Tomcat体系结构,北京传智播客教育 ,为Tomcat配置SSL功能的实验步骤,使用keytool创建或导入Web服务器所需要的证书。 修改server.xml文件,为Tomat增加一个支

7、持SSL功能的连接器。取消其中对SSL连接器的注释,并根据安装的数字证书信息对一些参数进行调整即可。 编写一个用于检查访问协议是否是https的jsp程序,如果不是,则将请求重定向为https协议。,北京传智播客教育 ,Tip3:为站点增加自动登录和单点登录功能,自动登录的实现原理 自动登陆的几种编码技术 单点登录的概念与功能 单点登录的两种解决方案,北京传智播客教育 ,自动登录功能与实现原理,需求分析 用户一旦使用浏览器登录某个站点和关闭浏览器后,在以后两个星期内,只要用户启动该浏览器访问该站点的任何页面时,都将自动完成登录。 很显然,该功能要求浏览器一旦登录以后的两个星期内,浏览器所在客户

8、机上必须保留有用户帐号信息,并且,浏览器在以后设定的时间期限内访问该站点时,必须自动向服务器提交保留在客户机上的用户帐号信息。 实现原理 想一想:用什么样的Web技术可以实现这样的功能呢? 保存在浏览器所在客户机上的信息必须尽可能的安全,即使被人窃取,也无法识别其中的信息。Cookie值采用如下算法来生成:username + “:“ + expiryTime + “:“ + Md5Hex(username + “:“ + expiryTime + “:“ + password + “:“ + key),北京传智播客教育 ,Cookie的传送过程示意图,第一次访问不存在 Server1的Coo

9、kie,写入Server1 的Cookie,第一次响应 Set-Cookie2: name=value,第一次访问请求,WEB Server1,WEB Server2,浏览器,Server1 的Cookie,Server2 的Cookie,Cookie存储区,后续访问存在 Server1的Cookie,后续访问请求 Cookie: name=value,北京传智播客教育 ,Set-Cookie2响应头字段,Set-Cookie2头字段用于指定WEB服务器向客户端传送的Cookie内容,但是按照Netscape规范实现Cookie功能的WEB服务器,使用的是Set-Cookie头字段,两者的语法

10、和作用类似。 Set-Cookie2头字段中设置的cookie内容是具有一定格式的字符串,它必须以Cookie的名称和设置值开头,格式为“名称=值”,后面可以加上0个或多个以分号(;)和空格分隔的其它可选属性,属性格式一般为“属性名=值”。 举例:Set-Cookie2: user=it315; Version=1; Path=/ 除了“名称=值”对必须位于最前面外,其它的可选属性的先后顺序可以任意。 Cookie的名称只能由普通的英文ASCII字符组成,浏览器不用关心和理解Cookie的值部分的意义和格式,只要WEB服务器能理解值部分的意义就行。 大多数现有的WEB服务器都是采用某种编码方式

11、将值部分的内容编码成可打印的ASCII字符,RFC 2965规范中没有明确限定编码方式。,北京传智播客教育 ,Set-Cookie2头字段中的属性,Comment=value Discard Domain=value 例如:Set-Cookie2: user=it315; Version=1; Path=/; Domain=.it315.org Max-Age=value Path=value Port=“portlist“ Secure Version=value,北京传智播客教育 ,自动登录的几种编码技术,模板方法设计模式 所有的Servlet或者Struts框架的Action采用模板方法

12、设计模式进行设计,且要求所有的请求只能指向Servlet或者Struts框架的Action 自定义标签 在所有的JSP页面中都要加入自动登录的标签,且要求客户端的所有请求都只能指向JSP页面。 过滤器(Filter) 可以对指向各种资源的访问请求进行拦截,并附加实现自动登录功能,不要求对现有的Servlet和JSP进行任何改造,对以后编写的任何Servlet和JSP也没有特殊要求。过滤器(Filter)应该成为自动登录功能的首先编程技术。,北京传智播客教育 ,单点登录,单点登录的概念与功能 单点登录的英文简称为SSO(single sign on),即用户只要登陆系统一次,该用户的身份信息就可

13、以被系统中的多台计算机所识别,不需要在访问每台计算机时再分别进行登陆。 单点登录的两种解决方案 在某个域范围内的全局Cookie例如:Set-Cookie2: user=it315; Version=1; Path=/; Domain=.it315.org 通过专用的代理服务器进行登录,北京传智播客教育 ,通过代理服务器实现的SSO,SSO Server,Web Server,Browser,https:/SSOServer/login?service=http%3A%2F%2FWebServer/visitingUrl,http:/WebServer/visitingUrl?ticket=x

14、xxxxxxxxxxxxxxxxxx,北京传智播客教育 ,Tip4:解决Web开发中的相对路径问题,如果logon.jsp页面的内容如下,LogonServlet内部在登录失败时将请求又转发给logon.jsp,元素中的action属性设置会有什么问题?*第二次访问的路径相对logon.jsp的路径为servlet/servlet/LogonServlet,解决方案:张孝祥 ,北京传智播客教育 ,Tip5:为网站配置相同页眉和页脚的技巧,常见的应用: 与 一般人不知道的应用:*.jsp/header.jsp/footer.jsp,北京传智播客教育 ,页面布局代码的重用,要生成一批如左图所示的具

15、有相同页眉,页尾,以及左侧栏的页面,这些页面的内容不同,要想充分实现HTML代码的复用,每个页面应该用几个局部网页来合成呢?,页面布局代码: headerMenu”footer,页面布局代码的重用方式: Apache的Tiles框架 Filter + 布局文件(例如,Sitemesh),北京传智播客教育 ,Tip6:Web开发中的各种字符乱码问题,字符编码的基本理论举例:记事本的中文乱码问题,xml的字符编码问题 Java程序编译时的中文乱码分析 Java程序运行时的中文乱码分析举例:更改操作系统的Locale,利用PrintWriter/PrintStream输出字符串 Servlet输出时

16、的中文乱码分析 Servlet读取请求参数时的中文乱码分析 JSP的乱码分析 Servlet实现文件下载时的中文文件名的乱码分析 Apache文件上传组件所遇到的中文乱码分析 利用Javamail API创建MIME邮件时的中文乱码分析 Mysql数据库的中文乱码分析 Ajax中的字符乱码问题分析 请求参数不进行url编码导致长度为奇数的中文字符串的最后一个字符混乱,北京传智播客教育 ,JSP程序所涉及到的字符编码转换,北京传智播客教育 ,字符乱码与解决办法的原理分析,北京传智播客教育 ,推荐我所编写的书籍,Java就业培训教程 Javascript网页开发 Java邮件开发详解 深入体验Java Web开发内幕核心基础 深入体验Java Web开发内幕高级特性,北京传智播客教育 ,结束语,热烈欢迎各软件公司到传智播客公司预定和招聘软件开发人才! 谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报