一、javaweb的基本概念
- javaweb开发的基本概念
-
WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。在Internet上供外界访问的Web资源分为:
– 静态网页(web)资源:页面的数据无论用户何时浏览都不回发生改变。(如html)–动态网页(web)资源:页面的数据 是由程序产生的,用户浏览到的数据会随时间发生一定的的变化。(JSP/Servlet、ASP、PHP等)
-
在Java中,动态web资源开发技术统称为Javaweb。
2)WEB应用程序
WEB应用程序指供浏览器访问的程序,通常也简称为web应用。例如有a.html 、b.html……多个web资源,这多个web资源用于对外提供服务,此时应把这多个web资源放在一个目录中,以组成一个web应用(或web应用程序)一个web应用由多个静态web资源和动态web资源组成,如:html、css、js文件,Jsp文件、java程序、支持jar包、配置文件等等。
Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射.
- 动态web实现的手段
动态WEB现在的实现手段非常多,较为常见的有以下几种:
- Microsoft ASP、ASP.NET
微软公司动态WEB开发是比较早的,而且最早在国内最流行的是ASP。ASP就是在HTML语言之中增加了VB脚本,但是标准的开发应用应该是使用ASP+COM,但是实际情况来看,在开发ASP的时候基本上都在一个页面中写上成百上千的代码,页面代码极其混乱。
ASP本身有开发平台的限制:Windows+IIS+SQL Server/Access,ASP只能运行在Windows操作系统上,ASP现在基本上已经淘汰,现在基本上都是使用ASP.NET进行开发,ASP.NET在性能有了很大的改善,而且开发迅速,但是依然受限于平台。ASP.NET中主要是使用C#语言。 - PHP
PHP开发速度很快,功能强大,跨平台(平台指的就是运行的操作系统),而且代码也简单。 - Servlet/JSP
这是SUN公司(SUN现在已经被Oracle公司收购)主推的B/S架构的实现语言,是基于JAVA语言发展起来的,因为JAVA语言足够简单,而且很干净。
Servlet/JSP技术的性能也是非常高的,不受平台的限制,各个平台基本上都可以使用。而且在运行中是使用多线程的处理方式,所以性能非常高。
SUN公司最早推出的WEB技术推出的是Servlet程序,Servlet程序本身使用的时候有一些问题,所有的程序是采用JAVA代码+HTML的方式编写的,即,要使用JAVA输出语句,一行一行地输出所有的HTML代码,之后,SUN公司受到了ASP的启发,发展出了JSP(Java Server Page),JSP某些代码的编写效果与ASP是非常相似的。这样可以很方便地使一些ASP程序员转向JSP的学习,加大市场的竞争力度。
二、web服务器介绍
- Web服务器是指驻留于因特网上某种类型计算机的程序,是可以向发出请求的浏览器提供文档的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
- 服务器是一种被动的程序:只有当在Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应。
三、常用的服务器介绍
1) IIS
Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在ⅡS的平 台上。IIS提供了一个图形界面的管理工具,称为Internet信息服务管理器,可用于监视配置和控制Internet服务。 IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
2) WebLogic
WebLogic是美国bea公司出品的一个application server。BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。是目前应用最广泛的Web服务器,支持J2EE规范,而且不断的完善以适应新的开发要求.
3) Tomcat
TomcatTomcat是一个实现了JAVA EE标准的最小的WEB服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且开源免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。学习JavaWeb开发一般都使用Tomcat服务器,该服务器支持全部JSP以及Servlet规范.
4) WebSphere
WebSphere Application Server 是一种功能完善、开放的Web应用程序服务器,是IBM公司电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。这一整套产品进行了扩展,以适应 Web应用程序服务器的需要,范围从简单到高级直到企业级。
四、搭建JavaWeb应用开发环境——Tomcat服务器
- 学习Javaweb,装服务器的必要性。不管什么web资源,想被远程计算机访问,都必须有一个与之对应的网络通信程序,当用户来访问时,这个网络通信程序读取web资源数据,并把数据发送给来访者。WEB服务器就是这样一个程序,它用于完成底层网络通迅。使用这些服务器,We应用的开发者只需要关注web资源怎么编写,而不需要关心资源如何发送到客户端手中,从而极大的减轻了开发者的开发工作量。
- Tomcat服务器的下载和安装
- Tomcat官方站点:http://jakarta.apache.org
- 下载Tomcat安装程序包:http://tomcat.apache.org/
得到下载好的安装包:
将压缩包解压后,得到的就是如下图所示的文件夹,这样就完成了Tomcat服务器的安装。
2) 启动和测试Tomcat服务器
启动Tomcat服务器
双击 bin 目录下的 startup.bat 文件启动Tomcat服务器
测试Tomcat服务器
打开浏览器,输入http://localhost:8080/,能显示如下界面代表安装成功。
3) Tomcat启动常见几种问题
- 启动乱码问题
- **解决办法:**conf/logging.properties中增加了一句java.util.logging.ConsoleHandler.encoding = UTF-8,导致在有些windows系统中出现中文乱码。修改方法:
- JAVA_HOME环境变量设置问题
要想双击bin目录下的startup.bat文件启动Tomcat服务器,首先要做的就是在windows中设置JAVA_HOME环境变量,因为Tomcat服务器的启动需要用到这个JAVA_HOME环境变量,如果windows中不存在JAVA_HOME环境变量,则Tomcat服务器是无法启动的。一般我们在学习Java最开始装jdk的时候,都会在系统的path目录里配置该环境变量。所以,引起无法成功启动的原因就是因为当时在进行jdk安装的时候,没有规范的安装,所以会导致Tomcat服务器的非正常启动。
总结:当Tomcat服务器无法正常启动时,首先检查是否配置了JAVA_HOME环境变量,然后再检查Tomcat服务器启动时的端口是否被别的应用程序占用了。
五、Tomcat服务器的端口配置
Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。
如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改
例如:将Tomcat服务器的启动端口由默认的8080改成8081端口,在该文件中找到以下的配置说明:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000" redirectPort="8443" />
将Tomcat服务器端口修改成8081端口:
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。因为已经在server.xml文件中将Tomcat的启动端口修改成了8081,所以Tomcat服务器启动时就以8081端口启动了,如下图所示:
这个时候,我们要访问Tomcat主页就得通过新的端口来进行访问:
浏览器和服务器交互的过程
当我们打开浏览器,在浏览器的地址栏中输入URL地址"http://www.baidu.com"去访问服务器上的1.jsp这个web资源的过程中,浏览器和服务器都做了神马操作呢,我们是怎么在浏览器里面看到1.jsp这个web资源里面的内容的呢?
浏览器和服务器做了以下几个操作:
1、浏览器根据主机名"www.baidu.com"去操作系统的Hosts文件中查找主机名对应的IP地址。
2、浏览器如果在操作系统的Hosts文件中没有找到对应的IP地址,就去互联网上的DNS服务器上查找"www.baidu.com"这台主机对应的IP地址。
3、浏览器查找到"www.baidu.com"这台主机对应的IP地址后,就使用IP地址连接到Web服务器。
4、浏览器连接到web服务器后,就使用http协议向服务器发送请求,发送请求的过程中,浏览器会向Web服务器以Stream(流)的形式传输数据,告诉Web服务器要访问服务器里面的哪个Web应用下的Web资源.
5、浏览器做完上面4步工作后,就开始等待,等待Web服务器把自己想要访问的这个Web资源传输给它
6、服务器接收到浏览器传输的数据后,开始解析接收到的数据,服务器解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的内容时知道客户端浏览器要访问的是web应用里面的Web资源,然后服务器就去读取Web资源里面的内容,将读到的内容再以Stream(流)的形式传输给浏览器.
7、浏览器拿到服务器传输给它的数据之后,就可以把数据展现给用户看了.
Javaweb应用的基本组成结构
开发JavaWeb应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错
当然现在很多编译工具软件给我们提供的编译环境都是十分友好的,我们在开发时,可以不是很严格的按照以上的结构存放资源文件,原因是这些软件会自动的将我们存放的资源文件,按照类别构成以上的结构。例如idea上的生成out目录下就是自动生成的标准的结构,像这样什的: