一、Web概述
- WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
- Internet上供外界访问的Web资源分为:静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
- 静态web资源开发技术:Html、CSS、javaScript
- 常用动态web资源开发技术:JSP/Servlet、ASP、PHP等,在Java中,动态web资源开发技术统称为Javaweb
- WEB服务器,学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。
二、常见WEB服务器
- 不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。
- WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,用户只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。
- WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求
- 另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范
- 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范
三、JAVAEE
- java的大方向就是JavaEE,JavaEE不仅仅是socket编程,具体包括13中核心技术。
- JAVAEE的核心API与组件
- JAVAEE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对JAVAEE中的13种技术规范进行简单的描述(限于篇幅,这里只进行简单的描述):
1、JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。
2、JNDI(Java Name and Directory Interface) JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
3、EJB(Enterprise JavaBean) JAVAEE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现JAVAEE的唯一途径。正是由于JAVAEE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
4、RMI(Remote Method Invoke) 正如其名字所表示的那样,RMI协议调用远程对象上方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
5、Java IDL/CORBA 在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开, 或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
6、JSP(Java Server Pages) JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
7、Java Servlet Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
8、XML(Extensible Markup Language) XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。 XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
9、JMS(Java Message Service) JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,有支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另 一种方式来对您的应用与旧的后台系统相集成。
10、JTA(Java Transaction Architecture) JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
11、JTS(Java Transaction Service) JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
12、JavaMail JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
13、JAF(JavaBeans Activation Framework) JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF
四、Tomcat服务器
- Tomcat官方站点:http://tomcat.apache.org/
- 获取Tomcat安装程序包:tar.gz文件是Linux操作系统下的安装版本,exe文件是Windows系统下的安装版本,zip文件是Windows系统下的压缩版本
- 常见启动问题:
- Java_home环境变量,在windows中设置java_home环境变量,只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。
- 端口占用问题,netstat -ano命令,查看占用端口的进程pid,再用任务管理器关闭
- Catalina_home环境变量设置默认的tomcat服务器
- Tomcat 的目录层次结构:
五、 WEB应用程序
- WEB应用程序指供浏览器访问的程序,通常也简称为web应用,是为了提供某一特定功能而按照一定方式组织起来的web资源的组合。
- 一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件、Jsp文件、java程序、支持jar包、配置文件
- 一个web应用所使用的web资源我们通常使用目录进行组织,这个目录我们通常称为 web应用所在的目录
- Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚拟目录的映射。
六、虚拟目录的映射方式
- 在server.xml文件的host元素中配置,例如:
- conf/Catalina/主机名/ 下创建一个 虚拟路径名.xml的文件在其中配置Context,注意这里的Context不用配置path了
- 让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。
- 注意
- 在server.xml做配置的时候,如果path设为空,则当前应用被配置成了缺省web应用
- 在conf/Catalina/主机名/ 下创建一个 虚拟路径名.xml的文件的时候,只要把文件名改为ROOT.xml则该应用为缺省web应用
- 在webapps中将应用文件夹名改为root则为缺省web应用
七、WEB应用的组成结构
- 开发web应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错。
- web应用中,web.xml文件是其中最重要的一个文件,它用于对web应用中的web资源进行配置。
八、web.xml文件
通过web.xml文件,可以将web应用中的:
- 某个web资源配置为web应用首页
- 将servlet程序映射到某个url地址上
- 为web应用配置监听器
- 为web应用配置过滤器
- 但凡涉及到对web资源进行配置,都需要通过web.xml文件
九、配置虚拟主机
- 配置虚似主机就是配置一个网站。
- 如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:<Host name=”site1” appBase=”c:\app”></Host>
- 配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
- 缺省虚似主机
十、IE与服务器交互图
十一、其它问题
- 打包web应用 war
- jar -cvf news.war *
- 通用Context配置、通用web.xml配置
- 配context元素的reloadable元素,让tomcat自动加载更新后的web应用,当java程序修改后不用重启,服务器自动从新加载。
- Tomcat服务器的管理平台,可以在conf/tomcat-users.xml下配置用户名密码及权限
十二、Tomcat体系架构
- 软件开发的两种架构:c/s和b/s
十四、context元素常用属性