• Tomcat&Web程序结构&Http协议(一)


    JavaWeb开发入门之Tomcat

    1. 两种架构方式

    1. C/S: 客户端/服务器
    	1. 需要安装客户端
    	2. 维护与升级不方便
    	3. 运行速度更快
    2. B/S:浏览器/服务器
    1. 不需要安装
    2. 维护与升级方便
    3. 运行相对慢
    
    JavaWeb开发,就是使用b/s架构来实现开发
    	服务器中可以放入资源
    		1. 静态资源		html/css/js/图片
    		2. 动态资源		jsp/asp/asp.net/jsf/php

    2. 常见Web服务器

    WebLogic Platform,是BEA公司的产品,支持JavaEE规范
    WebSphererAs,IBM公司,支持JavaEE规范
    JBoss,红帽收购,支持JavaEE规范,免费
    小型服务器Tomcat,该服务器支持JSP/Servlet规范

    3. JavaEE规范

    由13种技术构成,一组相关的技术构成的集合
    (JSP/Servlet/JDBC/EJB/JNDI/JTA/JMS等)
    规范: 由相应的类和接口构成
    
    SUN提供接口规范,具体实现类(服务器厂商)
    程序员: 学习JavaEE规范

    4. Tomcat服务器介绍

    经常用Tomcat	JSP/Servlet规范做了实现,是Apache公司的产品
    注意: 安装时解压路径下: 不要有中文,不要有空格
    
    启动步骤:
    	1. 找解压路径bin目录:
    	2. 进入这个目录
    	3. 运行startup.bat这个批处理文件
    	4. 启动成功后,访问服务器: http://localhost:8080/
    
    Tomcat版本 6.0.x	Servlet/JSP规范2.5/2.1	JDK版本1.5以上
    Tomcat版本 7.0		Servlet/JSP规范3.0/2.2	JDK版本1.6以上
    启动步骤:
    	1. 找解压路径bin目录:
    	2. cmd命令行cd 进入这个目录
    	3. 运行startup命令启动服务器
    	4. 启动成功后,访问服务器: http://localhost:8080/
    	5. 停止服务器: shutdown(netstat -ano | findstr 8080) taskkill /F /pid 1234
    常见启动问题
    配置环境变量JAVA_HOME值jdk安装路径(bin上一级目录),不加分号

    5. Tomcat目录结构

    bin		主要放批处理文件 startup.bat, shutdown.bat停止
    conf 	存放Tomcat相关的配置文件 server.xml/web.xml/context.xml
    lib		存放jar包
    logs	日志信息
    temp	存放临时文件(文件上传)
    webapps	(apps: applications)存放Tomcat中所包含的应用,有几个文件夹就有几个应用
    work:	Tomcat工作时所产生的目录

    6. 常用web项目所包含的目录结构

    |部署的应用根目录
    	|-WEB-INF: 	必须要有(该目录中所包含的内容,外界不能访问)
    		|-lib			jar包
    		|-classes
    		|-web.xml		必须要有(conf/web.xml复制常用标签)
    			<web-app xmlns="http://java.sun.com/xml/ns/javaee"
    			   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    			   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    			   version="2.5"> 
    			</web-app>
    	|-css文件夹
    	|-html文件夹
    	|-js
    	|-images
    	
    	访问路径: http://ip地址:8080/应用名(放在webapps下文件夹名字)/资源地址
    	
    	部署方式
    		1. 直接将应用程序文件夹拷贝到Tomcat的webapps
    		2. 打war包
    			1). 进入应用程序所在的文件夹
    			2). 运行: jar -cvf web应用程序名字(itheima.war) .
    			3). 把war包拷贝到webapps目录下
    

    7. 虚拟目录

    http://localhost:8080/itheima/images/coding.jpg
    协议   本机地址	  端口  应用名	文件夹   资源名	
    1. 在conf/server.xml
    	<Context path="" docBase=""/> 
    	在Host中加入<Context path="" docBase="">
    		path代表应用的访问路径,注意一定要有"/"
    		docBase代表的是应用的真实路径
    	   缺点:
    		要重新启动服务,才能加载进来
    2. 做一个虚拟目录第二种方式
    	conf/Catalina/localhost/应用名.xml
    	xml文件内容<Context docBase=""/>
    	注意:一定不是webapps下面的应用,是在外面的应用
    
    访问URL地址解析的过程 
    http://localhost:8080/应用名/html/1.html
    	http:
    		<Connector   protocol="HTTP1.1">
    			<Engine name="Catalina" defaultHost="localhost">	 
    			<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    			port代表http协议使用端口号		localhost:代表主机是本地主机
    			定位文件夹:
    			<Host name="localhost"  appBase="webapps"
    				unpackWARs="true" autoDeploy="true"
    				xmlValidation="false" xmlNamespaceAware="false">
    
    3. Root.xml,自己的应用为默认的应用,注意是外部应用目录,不是webapps下的应用目录
    	1. conf/catalina/localhost/ROOT.xml先解析
    	2. 设置主页配置web.xml---设置当前这个应用程序的默认主页
    		<welcome-file-list>
    			<welcome-file>index.html</welcome-file>
    		</welcome-file-list>
    4. 修改端口号
    	conf/web.xml改端口69行  port="80" 这样就不需要写端口了,原因http默认用80端口号
    	
    5. 修改虚拟主机
    	1. conf/server.xml
    	<Host name="www.itcast.cn"  appBase="E:/itcast"
    		unpackWARs="true" autoDeploy="true"
    		xmlValidation="false" xmlNamespaceAware="false" />
    	
    	 <Host name="www.itheima.com"  appBase="E:/itheima"
    		unpackWARs="true" autoDeploy="true"
    		xmlValidation="false" xmlNamespaceAware="false" />
    	2. 修改一个重要文件 C:WindowsSystem32driversetchost
    		127.0.0.1	www.codingPark.com
     

    Web开发入门之HTTP协议详解

    1. 什么是HTTP

    HyperText Transport Protocol超文本传输协议(请求消息头,它传输的主体内容是超文本,响应消息头)
    复习: ECMA: Javascript	W3C:HTML/CSS/HTTP进行维护的
    是由W3C组织进行维护的,使用端口80,是无状态协议
    无状态: 就是不能记住它的状态
    
    作用: 主要是用于描述请求和相应的数据格式
    
    HTTP1.0/HTTP1.1区别
    HTTP1.1,一次链接中允许有多个请求和响应

    2. 请求和响应消息头

    请求的资源中含有 <img > <link> <script>浏览器会自动发出请求
    1.客户端请求消息
    	一个请求行(请求类型(GET/POST) 请求资源 HTTP版本  如(GET /myapp/index.html HTTP/1.1))
    	多个请求消息头
    	-----------一个空行-----------
    	响应内容(post提交)
    2. 服务器响应消息
    	响应头(状态行)
    	多个消息头
    	-----------一个空行-----------
    	响应实体内容

    3. 数据提交方式

    get,post,delete,put等
    GET与POST方式对比
    	哪些方式是提交数据?
    		<form>表单中的method="post"就是post提交,其他都是get提交
    		1. GET提交数据长度有限制,1K,而POST没有长度限制
    		2. GET在地址栏可见,所以不安全。POST提交数据在请求主体内容中,地址不可见,所以安全

    4. 请求消息头

    *Accept-Encoding: gzip(客户端告诉服务器支持的压缩方式),deflate(无损压缩)
    *Cookie: 这是最重要的请求头信息之一
    *Referrer: 包含一个URL,该URL标示当前页来源	应用:统计广告投放效果/防盗链
    *Content-Type:请求正文内容的类型(适应于Post请求)
    	默认是application/x-www-form-urlencoded(username=sa&pwd=123)
    	<form method="post" enctype="application/x-www-form-urlencoded"></form>
    
    Accept: (客户端告知服务器能接受哪些类型数据),浏览器可接受的MIME类型(Multipurpos Internet Mail Extensation)多用途互联网邮件扩展类型
    	MIME类型: 文件系统文件类型用文件的扩展名来区分
    	MIME类型由大类型/小类型组成的,比如ext/html text/css text/javascript image/bmp image/jpeg  * /*
    	可以在conf/web.xml找支持的类型,服务器有这一个标准
    Accept-Charset: 支持的字符集 (UTF-8/GBK/ISO-8859-1)
    Accept-Language: zh-CN,en-US;q=0.7,ja-JP;   q=0.3(语言出现的频率)调整语言栏(小写的语言_大写的国家)
    Connection: Keep-active	保持连接
    If-Modified-Since: 请求时的时间
    User-Agent: 代表浏览器相关版本信息
    Host: localhost 请求服务器的地址
    

    5. 服务器响应头

    *Refresh: 指定服务器刷新时间
    *Location: http://www.itheima.com/index.jsp 告知浏览器,新的资源的位置(302跳转)
    	***重定向:是浏览器重新定位到一个新的服务器资源
    	原理: 302状态码+Location
    	状态码
    		200(正常)	302/307(临时重定向)	304(未修改)	404(找不到)	500(服务器内部错误)
    *Content-Length:  服务器发送的数据长度
    *Content-Encoding: gzip代表服务器采用什么方式进行数据压缩	JDK提供支持压缩的类GZIPOutputStream
    *Content-Type: text/html;charset=GB2312服务器发送的内容MIME类型		<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
    *Content-Disposition: attachment;filename=aa.zip指示客户端下载	
    
    *Expires: -1清理缓存(1970-1-1一个毫秒数,小于它都过期)
    *Cache-Control:no-chace(http1.1)	没有缓存
    *Pragma: no-cache (http1.0) 没有缓存
    
    ***set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie
    (配合Cookie请求头一起使用)
    
    Content-Language: zh-CN服务发送的文本的语言
    Last-Modified 最后一次修改资源时间
  • 相关阅读:
    JS中的事件
    页面中图标的使用
    关于git,你需要知道一点命令
    H5一二事
    对js中Function的浅见
    浅谈JS中的继承
    关于JS变量提升的一些坑
    java自旋锁
    vue数据绑定原理
    JavaScript中的设计模式:状态模式
  • 原文地址:https://www.cnblogs.com/codingpark/p/4229770.html
Copyright © 2020-2023  润新知