1、 高级软件人才实作培训专家 ! Java 学习与就业指导 讲师: 张孝祥 高级软件人才实作培训专家 ! 北京传智播客教育 讲座大纲 Java技术体系与学习路线 Java面试题分析 就业与面试技巧 职业规划 高级软件人才实作培训专家 ! 北京传智播客教育 Java技术体系与学习路线 UI层 业务逻辑层 数据库访问层 数据库 AWT/SWING SWT/JFACE WEB 浏览器: 基础 Html/css/javascript/Ajax Ajax框架: prototype/jquery/dwr/dojo/ext 工 具 : A N T 、 L O G 、 J U N I T Web服务器: 基
2、础: Servlet/jsp/http协议 框架: Struts/Struts2/JSF/Spring MVC 服务器: tomcat/JBoss/WebLogic/WebSphere J A V A 核 心 基 础 、 X M L 与 编 程 设 计 模 式 远程调用: Dwr/WebService JDBC/Hibernate/DbUtil /JPA/JdbcTemplate/Ibatis Spring/EJB Sql/MySql/Oracle/Sql Server/DB2 Lucene/JavaMail WebService/JBPM 其他 高级软件人才实作培训专家 ! 北京传智播客教育
3、 Integer与 int的区别 面向对象的特征有哪些方面 设计一个一百位 的计算器 ArrayList和 Vector的区别, ,HashMap和 Hashtable的区别 去掉一个 Vector集合中重复的元素 STRING与 STRINGBUFFER的区别 Class.forName的作用?为什么要用? HTTP请求的 GET与 POST方式的区别 JSP中动态 INCLUDE与静态 INCLUDE的区别? Java面试题分析 高级软件人才实作培训专家 ! 北京传智播客教育 就业与面试技巧 简历一开始就描述自己的性格、专长、先给人一个好的总体印象。要是有两年工作经验就比较好,如果是应
4、届毕业,可以说是在大学就跟着某老师(有名有姓)做项目,这有两方面的好处:有经验,老师已经考核过你。如果是学生干部或拿过奖学金一定要写上。 做笔试题时,不要以为把程序写出来了,回来在计算机上一运行,结果正常就觉得做得很好了,应该把做笔试题当作是一个展现你才华,性格、办事风格、工作态度和良好习惯的平台,要把做笔试题当作给人讲课和写书一样的方式来写,要知无不言,言无不尽,把自己所掌握的内容阐述得淋漓尽致,同一套答案可以应付多个问题。做笔试题只是为了展现自己的思路和才华,人家并不会把你的题拿到计算机上去运行,关键看你是否有思路。所以,用注释把自己的思路描述出来非常重要,以便人家理解,程序有点小错误反而
5、不重要。 人家问,说你可以来石家庄上班吗?你说反正是打工,在哪打工都可以,这非常不好,这显得自己对待工作没有热情,无所谓的态度。 会说的通常比会做得更有机会,有人说,自己不会吹,其实是你的技术没有学透和学扎实,只有不会的人才需要吹,因为人家问题都是技术问题,只要你真的明白且条理清晰,很自然就能口若悬河。 遇到自己擅长的问题要主动滔滔不绝,别人一高兴,忘问你后面的问题。 单位的招工启示往往也是抄的,虽然写的是本科,但他们只是想招聘到合适的人才,只要你技术上和面试上通过了,人家通常并不真正特别关心你的文凭。 提交给人家的项目题目要有个 readme.txt说明文件,给别人提供方便,就是给自己提供机
6、会。 手机要长期保持开机,别因为地下室没信号,人家联系不上你,还说面试通知电话少。 高级软件人才实作培训专家 ! 北京传智播客教育 职业规划 如果有明确的目标,并为之努力奋斗,你就会发现时间其实是过得很快。人生需有目标,每周要有目标,每天要有目标,没有目标怎么办,想法找目标,例如,打开我们的视频看。 年轻是最大的财富,身体是革命的本钱,想干什么都可以,如果自己现在不珍惜,那肯定会老大徒伤悲。 要确定明确的目标,通常需要自己先有一定的专业技能,能独当一面做事,就会越做越开心,越做越感觉时间不够用。 高级软件人才实作培训专家 ! 北京传智播客教育 显示省 Onchange xhr servle
7、t data 处理数据 servlet 高级软件人才实作培训专家 ! 北京传智播客教育 SSL/TLS的工作原理 RegUI Reg Reg.jsp UserForm ? 高级软件人才实作培训专家 ! 北京传智播客教育 数字摘要的基本应用:数据的完整性校验 高级软件人才实作培训专家 ! 北京传智播客教育 Tomcat体系结构 高级软件人才实作培训专家 ! 北京传智播客教育 为 Tomcat配置 SSL功能的实验步骤 使用 keytool创建或导入 Web服务器所需要的证书。 修改 server.xml文件,为 Tomat增加一个支持 SSL功能的连接器。取消其中对 SSL连接器的注释,
8、并根据安装的数字证书信息对一些参数进行调整即可。 编写一个用于检查访问协议是否是 https的 jsp程序,如果不是,则将请求重定向为 https协议。 高级软件人才实作培训专家 ! 北京传智播客教育 Tip3: 为站点增加自动登录和单点登录功能 自动登录的实现原理 自动登陆的几种编码技术 单点登录的概念与功能 单点登录的两种解决方案 高级软件人才实作培训专家 ! 北京传智播客教育 自动登录功能与实现原理 需求分析 用户一旦使用浏览器登录某个站点和关闭浏览器后,在以后两个星期内,只要用户启动该浏览器访问该站点的任何页面时,都将自动完成登录。 很显然,该功能要求浏览器一旦登录以后的两个星期内
9、,浏览器所在客户机上必须保留有用户帐号信息,并且,浏览器在以后设定的时间期限内访问该站点时,必须自动向服务器提交保留在客户机上的用户帐号信息。 实现原理 想一想:用 什么样的 Web技术 可以实现这样的功能呢? 保存在浏览器所在客户机上的信息必须尽可能的安全,即使被人窃取,也无法识别其中的信息。 Cookie值采用如下算法来生成: username + “:“ + expiryTime + “:“ + Md5Hex(username + “:“ + expiryTime + “:“ + password + “:“ + key) 高级软件人才实作培训专家 ! 北京传智播客教育 Cookie的
10、传送过程示意图 第一次访问不存在 Server1的 Cookie 写入 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内容,但是按照
11、 Netscape规范实现 Cookie功能的 WEB服务器,使用的是 Set-Cookie头字段,两者的语法和作用类似。 Set-Cookie2头字段中设置的 cookie内容是具有一定格式的字符串,它必须以 Cookie的名称和设置值开头,格式为“名称 =值”,后面可以加上 0个或多个以分号( ;)和空格分隔的其它可选属性,属性格式一般为“属性名 =值”。 举例: Set-Cookie2: user=it315; Version=1; Path=/ 除了“名称 =值”对必须位于最前面外,其它的可选属性的先后顺序可以任意。 Cookie的名称只能由普通的英文 ASCII字符组成,浏览器不用关
12、心和理解 Cookie的值部分的意义和格式,只要 WEB服务器能理解值部分的意义就行。 大多数现有的 WEB服务器都是采用某种编码方式将值部分的内容编码成可打印的 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“
13、Secure Version=value 高级软件人才实作培训专家 ! 北京传智播客教育 自动登录的 几种编码技术 模板方法设计模式 所有的 Servlet或者 Struts框架的 Action采用模板方法设计模式进行设计,且要求所有的请求只能指向 Servlet或者 Struts框架的 Action 自定义标签 在所有的 JSP页面中都要加入自动登录的标签,且要求客户端的所有请求都只能指向 JSP页面。 过滤器( Filter) 可以对指向各种资源的访问请求进行拦截,并附加实现自动登录功能,不要求对现有的 Servlet和 JSP进行任何改造,对以后编写的任何 Servlet和 JSP也没
14、有特殊要求。过滤器( Filter)应该成为自动登录功能的首先编程技术。 高级软件人才实作培训专家 ! 北京传智播客教育 单点登录 单点登录的概念与功能 单点登录的英文简称为 SSO( single sign on),即用户只要登陆系统一次,该用户的身份信息就可以被系统中的多台计算机所识别,不需要在访问每台计算机时再分别进行登陆。 单点登录的两种解决方案 在某个域范围内的全局 Cookie 例如: Set-Cookie2: user=it315; Version=1; Path=/; Domain=.it315.org 通过专用的代理服务器进行登录 高级软件人才实作培训专家 ! 北京传智播客
15、教育 通过代理服务器实现的 SSO SSO Server Web Server Browser https:/SSOServer/login?service=http%3A%2F%2FWebServer/visitingUrl http:/WebServer/visitingUrl?ticket=xxxxxxxxxxxxxxxxxxx 高级软件人才实作培训专家 ! 北京传智播客教育 Tip4: 解决 Web开发中的相对路径问题 如果 logon.jsp页面的内容如下, LogonServlet内部在登录失败时将请求又转发给 logon.jsp, 元素中的 action属性设置会有什么问题
16、? *第二次访问的路径相对 logon.jsp的路径为 servlet/servlet/LogonServlet 解决方案: 张孝祥 高级软件人才实作培训专家 ! 北京传智播客教育 Tip5: 为网站配置相同页眉和页脚的技巧 常见的应用: 与 一般人不知道的应用: *.jsp /header.jsp /footer.jsp 高级软件人才实作培训专家 ! 北京传智播客教育 页面布局代码的重用 要生成一批如左图所示的具有相同页眉,页尾,以及左侧栏的页面,这些页面的内容不同,要想充分实现 HTML代码的复用,每个页面应该用几个局部网页来合成呢? 页面布局代码: header Menu” foot
17、er 页面布局代码的重用方式: Apache的 Tiles框架 Filter + 布局文件(例如, Sitemesh) 高级软件人才实作培训专家 ! 北京传智播客教育 Tip6: Web开发中的各种字符乱码问题 字符编码的基本理论 举例:记事本的中文乱码问题, xml的字符编码问题 Java程序编译时的中文乱码分析 Java程序运行时的中文乱码分析 举例:更改操作系统的 Locale,利用 PrintWriter/PrintStream输出字符串 Servlet输出时的中文乱码分析 Servlet读取请求参数时的中文乱码分析 JSP的乱码分析 Servlet实现文件下载时的中文文件名的乱码分
18、析 Apache文件上传组件所遇到的中文乱码分析 利用 Javamail API创建 MIME邮件时的中文乱码分析 Mysql数据库的中文乱码分析 Ajax中的字符乱码问题分析 请求参数不进行 url编码导致长度为奇数的中文字符串的最后一个字符混乱 高级软件人才实作培训专家 ! 北京传智播客教育 JSP程序所涉及到的字符编码转换 高级软件人才实作培训专家 ! 北京传智播客教育 字符乱码与解决办法的原理分析 高级软件人才实作培训专家 ! 北京传智播客教育 推荐我所编写的书籍 Java就业培训教程 Javascript网页开发 Java邮件开发详解 深入体验 Java Web开发内幕 核心基础 深入体验 Java Web开发内幕 高级特性 高级软件人才实作培训专家 ! 北京传智播客教育 结束语 热烈欢迎各软件公司到传智播客公司预定和招聘软件开发人才! 谢谢!