1、JavaWeb开发入门,北京传智播客教育 ,WEB开发的相关知识,WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。 Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 静态web资源开发技术 Html 常用动态web资源开发技术: JSP/Servlet、ASP、PHP等 在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技
2、术开发动态的web资源,即动态web页面。,北京传智播客教育 ,WEB服务器,学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。,北京传智播客教育 ,常见WEB服务器,WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持JavaEE规范,而且不断的完善以适应新的开发要求,启动界面如图,北京传智播客教育 ,常见WEB服务器,另一个常用的Web服务器是IBM公司的WebSphereAS,支持JavaEE规范,启动界面如图,常见WEB服务器,大名鼎鼎的红帽的产品,原来属于开源组织JbossAS,后被红帽收购。支持Java
3、EE规范,免费。,北京传智播客教育 ,常见WEB服务器,在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范,启动界面如图,Tomcat简介,Tomcat是在SUN公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用Java语言编写。目前是Apache开源软件组织的一个软件项目,它的官方网址为http:/tomcat.apache.org。得到了广大开源代码志愿者的大力支持,且可以和目前大部分的主流Web服务器(IIS、Apache服务器)一起工作,它运行
4、稳定、可靠且高效。已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。 我们后面的JavaWeb学习都是基于Tomcat服务器的。,北京传智播客教育 ,Tomcat服务器,Tomcat官方站点:http:/tomcat.apache.org 获取Tomcat安装程序包tar.gz文件是Linux操作系统下的安装版本exe文件是Windows系统下的安装版本zip文件是Windows系统下的压缩版本,Tomcat的版本,Tomcat的版本随着SUN公司推出的Servlet/JSP规范不同而不同,基本上是SUN公司每推出一个版本,Tomcat也会发行新的版本以适应新的规范。,安装
5、Tomcat,Tomcat6本身是基于JDK1.5的应用程序,因此在安装和使用之前必须先行安装1.5及以上版本的JDK(JRE) 解压安装 Exe安装,Tomcat启动方式,使用Tomcat服务程序(安装版) 使用Tomcat程序组中的快捷菜单(安装版) 使用Tomcat.exe程序(安装版) 使用批处理程序(使用解压版),北京传智播客教育 ,Tomcat服务器,双击 bin 目录下的 startup.bat 文件 输入 http:/localhost:8080/,显示如下界面代表安装成功,北京传智播客教育 ,常见启动问题,Java_home环境变量 在windows中设置java_home环
6、境变量 只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。 端口占用问题(更改默认端口) Catalina_home环境变量的设置问题,北京传智播客教育 ,Tip:Tomcat目录结构,Tomcat 的目录层次结构,存放启动和关闭 Tomcat 的脚本文件,存放 Tomcat 服务器的各种配置文件,存放 Tomcat 服务器的支撑jar 包,存放 Tomcat 的日志文件,存放 Tomcat 运行时产生的临时文件,web应用所在目录,即供外
7、界访问的web 资源的存放目录,Tomcat 的工作目录,北京传智播客教育 ,JavaWEB应用程序,WEB应用程序指供浏览器访问的程序,通常也简称为web应用。一个web应用由多个静态web资源和动态web资源组成,如: html、css、js文件 Jsp文件、java程序、支持jar包、 配置文件 Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。,北京传智播客教育 ,JavaWEB应用的组成结构,开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。,Web应用所在
8、目录,这些文件一般存在web应 用根目录下,根目录下的 文件外界可以直接访问,java类、jar包、web应 用的配置文件存在这个 目录下,该目录下的文 件外界无法非法直接访 问,由web服务器负责 调用,web应用中,web.xml文件是其中最重要的一个文件,它用于对web应用中的web资源进行配置。,发布JavaWeb应用,演示建立一个web应用 发布JavaWeb应用(开放式目录和war),Web组件的URL,无论是开放式目录结构还是打包文件方式发布web应用,web应用的默认URL入口都是Web应用的根目录名。例如要访问MyApp应用,它的URL入口为/MyApp,如访问本地服务htt
9、p:/localhost:8080/MyApp(http:/127.0.0.1:8080/MyApp),Tomcat的组成结构,Tomcat本身由一系列可配置的组件构成,其中核心组件是Servelt容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下用XML的形式展示了各种Tomcat组件之间的关系,Tomcat的组成结构,北京传智播客教育 ,Tomcat体系架构,北京传智播客教育 ,虚似目录的映射方式,在server.xml文件的host元素
10、中配置,例如:,在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看tomcat服务器关于context元素的说明。 让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。,虚似目录名称,Web应用所在目录,Context元素,Tomcat6.x提供了多种配置元素的途径。当其加载一个web应用时,会依次按照以下五种方式尝试查找Web应用的元素,直到找到为止: 1)到Tomcat安装目录/conf/context.xml文
11、件中查找元素。 2)到Tomcat安装目录/conf/enginename/hostname/context.xml.default文件中查找元素。 enginename:表示的name属性 hostname:表示的name属性。 3)到Tomcat安装目录/conf/enginename/hostname/contextpath.xml文件中查找元素。 contextpath:表示单个Web应用的URL入口。,Context元素,4)到Web应用的META-INF/context.xml文件中查找元素。 5) 到Tomcat安装目录/conf/server.xml文件中查找元素。只适用于单个
12、Web应用。 如果仅仅为单个Web应用配置元素,可以优先采用第三种配置方式。,Context元素的属性,北京传智播客教育 ,web.xml文件,通过web.xml文件,可以将web应用中的: 某个web资源配置为网站首页 将servlet程序映射到某个url地址上 但凡涉及到对web资源进行配置,都需要通过web.xml文件举例:通过web.xml文件配置网站首页。注意:web.xml文件必须放在web应用WEB-INF目录下。,北京传智播客教育 ,配置虚似主机,假如两家公司Web应用都发布在同一个Tomcat服务器上,可以为每家公司分别创建一个虚拟主机 www.it315.org 尽管以上
13、两个虚拟主机位于同一个主机,但是当客户通过以上两个不同虚拟主机名访问Web应用时,会感觉到这两个应用分别拥有独立的主机 如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。 配置多个网站。 缺省虚似主机。,北京传智播客教育 ,Web应用的生命周期,用Tomcat的管理平台管理Web应用的生命周期 Tomcat的管理平台是Tomcat本身的一个Web应用,管理平台对应manager应用,它位于Tomcat安装目录/webapps/manager目录下。 manager应用会对用户进行安全验证。它要求用户
14、具有manager角色。因此,应该先在Tomcat中添加具有manager角色的用户信息,方法为打开Tomcat安装目录/conf/tomcat-users.xml文件,在其中增加以下内容:,北京传智播客教育 ,WEB开发的前景,软件开发的两种架构:c/s和b/s,WEB开发的前景,在Tomcat中配置SSL,在网络上,信息在由源主机到目标主机的传输过程会经过其他计算机,网络上的信息有可能被非法分子监听,从而导致个人隐私泄露。随着电子商务的发展,对信息安全的要求越来越高,于是Netscape公司提出了SSL(Server Socket Layer)协议,旨在达到在开放网络(Internet)上
15、安全、保密地传输信息的目的。 SSL是一种保证网络上的两个节点进行安全通信的协议,建立在SSL协议上的HTTP被称为HTTPS协议。HTTPS使用的默认端口是443。SSL采用加密技术来实现安全通信,保证通信数据的保密性和完整性,并且保证通信双方可以验证对方的身份。 加密技术的基本原理是:数据从一端发送到另一端,发送者先对数据加密,然后再把它发送给接受者。这样,在网络上传输的是经过加密的数据,如果有人非法截获了这批数据,由于没有解密的密钥,就无法获得真正的原始数据。接收者收到加密的数据后,先对数据解密,然后再处理。,在Tomcat中配置SSL,SSL通过安全证书来证明客户或服务器的身份。当客户
16、通过安全的连接和服务器通信时,服务器会先向客户出示它的安全证书,而每一个证书在世界范围内都是唯一的。 为了扩大用户群,一些服务器向客户出示证书后,并不要求客户出示安全证书,但在某些情况下,服务器也会要求客户出示安全证书,以便核实该客户的身份。 安全证书的获得有两种方式: 1、从权威机构获得证书 Certificate Authority,CA和VeriSign和Thawte,它们保证了证书的可信性。申请证书时,需要付费,且一个证书只针对一个IP有效。 2、创建自我签名的证书 如果只关心数据在网络上的安全传输,而不需要对方身份验证,可以创建自我签名的证书。与权威机构颁发的证书采用的加密技术是一样
17、的。,在Tomcat中配置SSL,可以根据安全需要,为Tomcat配置SSL,它包含以下两个步骤: 1、准备安全证书 2、配置Tomcat的SSL连接器(Connector) 创建自我签名的证书。 SUN公司提供了制作证书的工具keytool。在JDK1.4以上版本中都包含了这一工具。通过这个工具生成证书的命令为: keytool -genkey -alias tomcat -keyalg RSA 以上命令将生成包含一对非对称密钥和自我签名的证书,这个命令中参数的意思 -genkey:生成一对非对称密钥。 -alias:指定密钥对的别名,该别名是公开的。 -keyalg:指定加密算法,此处采用
18、通用的RSA算法。 以上命令将在操作系统的用户目录下生成名为”.keystore”的文件。 如果希望生成的keystore文件放在其他目录中,可以使用-keystore参数 keytool -genkey -alias tomcat -keyalg RSA -keystore d:.keystore,在Tomcat中配置SSL,配置SSL连接器 在Tomcat的servlet.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把注释去掉即可其他属性: keystoreFile:指定keystore文件的存放位置,可以指定绝对路经。如果此项没有设定,在默认情况下,Tomcat将从当前操作
19、系统用户的用户名目录下读取名为”.keystore”的文件。 keystorePass:指定keystore的密码,如果此项没有设定,在默认情况下,Tomcat将使用”changeit”密码。,在Tomcat中配置SSL,访问支持SSL的Web站点 https:/localhost:8443 当Tomcat接收到这一HTTPS请求后,会向客户的浏览器发送服务器的安全证书,IE浏览器接收到证书后,将向客户显示安全警报。,错误,在配置tomcat的SSL双向握手中,由于6.0.33版本中默认启用了APR(APR是通过JNI访问的可移植库,可以提高Tomcat的性能和伸缩性),所以采用传统的配置方式(如下)会报异常;,