javaWeb

1、javaWeb的概念

JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称。JavaWeb 是基于请求和响应来开发的。

  • 请求:请求是指客户端给服务器发送数据,叫请求 Request。

  • 响应:响应是指服务器给客户端回传数据,叫响应 Response。

  • 请求和响应的关系:请求和响应是成对出现的,有请求就有响应。

    ------服务器和客户端的数据交互

2、Web资源分类

2.1 静态web资源

  • 指web页面中供人们浏览的数据始终是不变。在这个过程中用户发送请求,然后服务器接受并找到页面,并将找到的页面返回给用户。

2.2 动态web资源

  • 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。在这个过程中用户发送请求,然后服务器接受并查找数据,最后将数据返回。

3、服务器

  • 从物理上来说,服务器就是一台PC机器。通常配置比较高。一般CPU 4核,内存8G以上,硬盘较大(T)

3.1分类

  • web服务器:在PC机器上,安装了web服务软件,提供web服务。
  • 数据库服务器:在PC机器上,安装了数据库软件(mysql/oracle/sql server),提供了数据存储的服>服务软件。
  • 邮件服务器:在PC机器上,安装了收发邮件服务软件,提供了收发邮件的功能d

3.2 web服务器原理

  • web服务软件作用:把本地的资源公开给外部访问。
/**
 * socket服务器端程序
 * 	1)把本地资源读取
 *  2)发送给不同的客户端
 * @author APPle
 *
 */
public class SocketServer {
  public static void main(String[] args) throws Exception{
		//1.创建ServerSocket
		ServerSocket server = new ServerSocket(8888);
		
		System.out.println("服务器已经启动....");
		
		while(true){
			//2.接收客户端的请求
			Socket socket = server.accept();
			
			//3.读取本地的文件
			File file = new File("e:/myweb/test.html");
			
			FileInputStream fis = new FileInputStream(file);
			
			//4.构建数据发送通道
			OutputStream out = socket.getOutputStream();
			
			//5.开始发送数据
			byte[] buf = new byte[1024];
			int len = 0;
			while( (len=fis.read(buf))!=-1 ){
				out.write(buf, 0, len);
			}	
			//6.关闭资源
			fis.close();
			out.close();
		}
	}
}
  • 图示:


在这里插入图片描述

3.3 常用的市面上web服务软件

Tomcat
  • 由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。开源免费的tomcat用在中小应用。
WebLogic
  • 是BEA公司的产品。支持JavaEE规范。收费的。
  • 符合javaSE规范:支持 IO流,集合,网络编程,线程技术
  • javaEE规范: 支持13种技术。servlet、jsp、ejb、jdbc
WebSphere
  • 是IBM公司的产品。支持JavaEE规范。收费的。解决方案
  • 一条龙服务:WebSphere -> IBM操作系统(aix)- IBM服务器PC - IBM数据库(DB2)
JBos
  • 是Redhat公司的产品。纯 Java 的 EJB 服务器,支持JavaEE规范。linux。软件免费开源的。服务收费的。
GlassFis
  • 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少)
Resin
  • 是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持,性能也比较优良,resin 自身采用 JAVA 语言开发(收费,应用比较多)。

3.4 Tomcat服务器

1、配置
  • Tomcat官方站点:http://jakarta.apache.org

  • 获取Tomcat安装程序包

    • tar.gz文件是Linux操作系统下的安装版本
    • exe文件是Windows系统下的安装版本
    • zip文件是Windows系统下的压缩版本
  • 启动

    • 图示


在这里插入图片描述

  • 找到%tomcat%/bin/startup.bat,双击,弹出一个窗口停止不动。

  • 确认窗口上显示没有任何错误,然后打开浏览器输入:http://localhost:8080 看到一只猫,证明tomcat服务器启动成功

  • 另一种:

    • 1、打开命令行
    • 2、cd 到 你的 Tomcat 的 bin 目录下
    • 3、敲入启动命令: catalina run
  • 关闭

    • 找到%tomcat%/bin/shutdown.bat,双击。
2、tomcat服务器作用
  • tomcat服务器作用:把本地资源公开给外部访问

  • webapps: 把需要公开访问的文件放到该目录部

  • URL

  • URL: 统一资源定位符。用于定位基于http协议的资源。

  • http:// : 协议,http协议执行流程: 在本地找hosts文件,如果找不到,联网找网络运营商的DNS服务器

  • localhost 域名。localhost: 本地域名 ;www.baidu.com: 外地域名

  • 8080 定位具体的一个软件。

    • tomcat: 8080
    • mysql:3306
    • oracle: 1521
  • myweb : web应用的根目录。

  • test.html: web资源

  • 图示


在这里插入图片描述

3、tomcat服务器常见问题
  • 闪退

    • 原因: 在tomcat服务器启动时(运行startup命令),在本地环境变量中查找一个叫JAVA_HOME的环境变量。(tomcat用java开发,需要用jvm运行)
    • 解决办法: 在本地环境变量中添加一个JAVA_HOME
  • 端口占用问题

    • 原因: tomcat服务器启动所需端口被其他软件所占用

    • 解决办法:

      • 把占用端口的软件停止掉(进程杀死)
      • 改变tomcat服务器启动端口
      • 找到%tomcat%/conf/server.xml
      <Connector port="8081" protocol="HTTP/1.1" 
                     connectionTimeout="20000" 
                     redirectPort="8443" />
      
  • CATALINA_HOME环境变量

    • 原因: tomcat在启动后会通过CATALINA_HOME环境变量加装tomcat的根目录下的文件(例如conf、webapps)
    • 解决办法:建议不要设置CATALINA_HOME环境变量
    • 注意:安装版的tomcat会自动设置CATALINA_HOME环境变量
  • jdk版本较高,和Tomcat不匹配

    • 安装jdk 10 以下的版本

    • Tomcat 服务器和 Servlet 的相关版本
      在这里插入图片描述

    4、Tomcat的站点配置
  • 站点的配置属性:

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
    
            </Host>
    
    • name: 表示站点的名称。访问站点就使用站点名称
    • appBase: 表示站点的根目录。用于存放所有web应用。一个站点下可以包括多个web应用。
  • 如何在tomcat下配置一个站点:

    1. 修改%tomcat%/conf/server.xml>

        <!--- 配置一个新的站点: www.baidu.com 
           		name: 站点的名称
           		appBase:站点的根目录
           	  -->
           	  <Host name="www.baidu.com"  appBase="C:\baidu"
                       unpackWARs="true" autoDeploy="true"
                       xmlValidation="false" xmlNamespaceAware="false">
           			
                 </Host>
      
      
      
      
    2. 修改本地域名和ip的映射文件hosts文件,加上 本地IP www.baidu.com

    3. 启动tomcat,访问测试,在浏览器访问:新站点:http://www.baidu.com:8080/news/index.html,(默认站点: http://localhost:8080)

5、目录介绍
目录存放文件
bin专门用来存放 Tomcat 服务器的可执行程序
conf专门用来存放 Tocmat 服务器的配置文件
lib专门用来存放 Tomcat 服务器的 jar 包
logs专门用来存放 Tomcat 服务器运行时输出的日记信息
temp专门用来存放 Tomcdat 运行时产生的临时数据
webapps专门用来存放部署的 Web 工程。
work是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化的目录。
6、Tomcat体系架构

在这里插入图片描述

4、web开发

4.1 软件开发的两种架构


在这里插入图片描述

  • b/s架构
    • (浏览器/服务器架构)就是指数据和程序都在服务器端,客户端通过浏览器访问程序并获取数据。
      • 优点:服务器端程序一旦修改,所有客户端访问的都最新的程序,开发人员只管维护服务器就行了,不用管客户端维护的事。
      • 缺点:由于客户端都是使用浏览器来访问服务器程序的,数据最终显示在浏览器中,浏览器有多强,数据就能显示成什么样式,数据的显示样式最终由浏览器决定。由于这种特性,所以b/s架构很少用来开发一些对显示有特殊要求的程序,例如游戏。
  • c/s架构
    • 就是指程序运行在客户机上,数据在服务器上。
      • 缺点:程序一旦修改,需要更新所有的客户机程序,客户机多,维护的工作量相当恐怖。
      • 优点:由于数据的计算在客户机上,服务器的压力小,并且由于数据的显示也由程序员自己编写gui程序完成,显示不受限制。所以c/s架构适合用于开发像游戏这样的程序。
  • 但是,随着网络带宽的不断提升,云计算概念的提出,浏览器只要足够强大,c/s架构立马就会被淘汰,不仅c/s架构会被淘汰,软件最终都会消失、操作系统都可以没有,最终将会是b/s架构的天下,也就是浏览器+搜索引擎的天下。所有现在桌面软件提供的功能,最后都由网站提供,也就是说,将来打开电脑就是一个浏览器,想要什么服务,通过搜索引擎一找,就可以在网上找到相应的服务,用就是了。所以web开发人员是现在最流行的岗位。

4.2 web应用目录结构(规范)

在这里插入图片描述

web.xml 文件
  • 通过web.xml文件,可以将web应用中的:
    • 某个web资源配置为网站首页
    • 将servlet程序映射到某个url地址上
    • 但凡涉及到对web资源进行配置,都需要通过web.xml文件
    • 注意:Web.xml文件必须放在web应用\WEB-INF目录下。

4.3 web应用部署三种方法

1、直接把web应用拷贝到webapps目录下
  • 默认web应用:ROOT是默认应用。访问默认应用,不需要web应用名称。

  • 默认资源:访问默认资源,不需要web资源名称。在web.xml文件中配置

    <!-- 默认资源-->
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>test.html</welcome-file>
    		<welcome-file>abc.html</welcome-file>
    	</welcome-file-list>
    
    
  • 问题

    • tomcat软件和web应用绑定在一起。
    • 解决办法: 把tomcat软件和web应用分离!!!使用到虚拟web应用(虚拟网站)
2、虚拟网站配置
  • 在%tomcat%/conf/server.xml文件中修改:

    <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">         
     <!--配置虚拟网站
    			docBase: web应用所在的绝对路径位置。
    			path: 访问web应用使用的名称。名称可以自定义
    			-->
    			<Context docBase="C:\projects\myweb" path="/itcast"/>
    		<!-- 如果path为空字符串,那么也不需要名称访问该web应用,而且优先于ROOT应用。-->	
    </Host>
    
  • 问题

    • 修改了server.xml核心配置文件,风险比较高。
    • 解决办法: 添加配置文件方法配置虚拟网站。
3、添加配置文件方法配置虚拟网站(推荐使用)
  • 在%tomcat%/conf/Catalina/localhost目录下,添加abc.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <!-- 配置虚拟网站
    	访问web应用名称就是xml的文件名abc
    -->
    <Context docBase="C:\projects\myweb"/>
    
  • context元素常用属性
    在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值