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 最后一次修改资源时间