10月16日培训日记
2006-10-19 16:16 java ee spring 阅读(178) 评论(0) 编辑 收藏 举报讲解了RequestDispatcher.forward方法实现请求跳转,其常见于MVC模式的WEB开发中。
通过一个情景故事讲解了什么是MVC模式和MVC模式的好处,Servlet完全业务处理,jsp完成页面显示,Servlet将jsp显示时要用到的数据放在哪呢?Servlet处理完成后通过什么样的方式将剩余的处理工作交给jsp呢?MVC模式的好处是牵一发而不用动全身。
Servlet可以将数据存储在三个地方:ServletContext,Session,Request。由这三者的区别讲解了购物车。所谓购物车,就是保存在Session中的一个容器对象。
登陆出错时的标准处理方式,forward相对路径的问题:a跳转到b,b页面内容中的相对路径将是相对于a,而不是相对b,怎么解决foward相对路径的问题?不管浏览器地址栏中的地址怎样改变,<base>让当前网页中的相对路径总是固定。
forward后面的代码是否会执行?如果想让一个方法调用后面的代码不执行,怎么办?抛出异常!
用PrintWriter对象进行输出时,输出的数据源必须是字符串,如果用PrintWriter方法输出一个文件内容,那就要把硬盘文件内容先以字符串的形式读取到内存中来。缺省Servlet在这种情况下是如何进行输入与输出的,冯伟立在这画了一个很好的总结图:某种字符编码的文件--(fileEncoding参数)-->内存中的Unicode编码字符串--(PrintWriter对象使用的输出码)-->某种字符编码的输出流。
forward方法是引擎提供的,所以,Servlet调用forward就是在给引擎回话,告诉Servlet引擎去做什么事。
forward请求转发的执行流程,foward应用中的更多细节问题。
sendRedirect请求重定向的运行原理,sendRedirect请求重新定向与forward请求转发的比较。魏奕东提问:“如果两个程序互相sendDirect,情况会怎样?”我回答是死循环,由此又给大家讲解了两个邮箱都设置自动回信时所出现的循环问题,增长大家的见识。
讲解了缺省Servlet的缓存问题。
接着为大家讲解了如何配置Tomcat,让其支持SSL协议。
首先介绍非对称的公钥/私钥加密,和对称的私钥加密,对称加密的优点和作用,非对称加密的优点和作用。
在非对称加密中,持公钥者向对方发送加密数据,持私钥者可用于身份认证。MD5与公钥/私钥结合形成的数字签名,数字证书等等。
SSL协议与TLS协议,TLS是SSL的升级替代。看Tomcat中文档SSL的介绍和JDK中的keytool的介绍。
keystore用于存储key和证书,key和证书有一个名字,称为别名,每个别名有一个密码。keystore本身也有一个密码来保护它。我课堂上的比喻是抽屉与抽屉中的笔记本。
1.客户端向服务器发送自身的一些SSL/TLS信息
2.服务器回送自己的证书
3.浏览器验证后,并比较证书的用户名与服务器名是否相同(仅作为一条提示信息,为了让此通过,在使用keytool时,当提示用户名时,应输入服务器的名称)。用服务器证书上的公钥加密一个随机数,客户端与服务器以后都用这个随数产生一个私钥,这个私钥加密双方传输的数据。
SSL是一个双向过程,服务器和浏览器送出去的所有数据都要加密。
WEB服务器的数字证书是与IP地址绑定,即每一个IP都需要一个数字证书。数字证书上还描述了公司名称,管理员的联系信息等附属内容。数字证书中有其属主的加密签名,所以,很难被人模仿。
配置Tomcat的安全连接器时,先讲解清楚了Tomcat的体系结构。
做了一下使用hibernate访问Oracle数据库的实验,起到复习hibernate和学习连接Oracle的效果。
在客户机上使用sql plus连接Oracle时,在客户机上必须使用net manager配置描述符(要注意单击保存按钮,郁闷!)
在配置文件中增加实体时的一个问题:
<mapping resource="cn/itcast/Student.hbm.xml"/>中的cn前不能有斜杠
<session-factory>设置name属性时,报告JNDI异常,怎么解决?在这种情况下,要将hibernate放置于支持JNDI的容器环境中。
讲解了hibernate.hbm2ddl.auto属性的三个设置值的区别:create、create-drop、update。