07 JavaWeb
* C/S client/server 客户端/服务器 例子:QQ 快播 暴风影音...
* 优点:交互性非常好,服务器压力小。
* 缺点:客户端软件,下载客户端软件。
* B/S Browser/server 浏览器/服务器 例子:购物网站 12306购票 淘宝
* 缺点:交互性不好(ajax),服务器压力大。
* 优点:服务器端进行更新,打开浏览器刷新。
Web开发的相关知识
* 静态的WEB资源
* HTML CSS JAVASCRIPT
* 动态的WEB资源
* Servlet/JSP SUN提供了
* ASP 微软
* PHP 模板(mysql php )
* RUBY 日本
* JAVA: 处理大数据。淘宝。
* 服务器的概念:
* 底层原理:网络编程。
* 硬件:一台主机。
* 软件:安装服务器软件。
* 访问:
* ip+端口号
* 119.75.217.56 -- 域名
* 常见的服务器
* WebLogic BEA的公司开发 但收费 支持JAVAEE的所有规范。被oracle收购(sun(java) mysql(数据库) WebLogic)
* WebSphere IBM的公司开发 但收费 支持JAVAEE的所有规范。
* Tomcat apache(开源组织,非常伟大)支持Servlet/JSP的规范。
使用tomcat的6.x的版本
* 前提条件:安装JDK,配置JAVA_HOME
* 安装tomat,(解压版),启动服务器:tomcat/bin/startup.bat。双击启动了。C:\Program Files (x86)\Java\jdk1.6.0_16
* 如果黑色窗口一闪而过,需要配置JAVA_HOME。
* 常见的启动问题
* 安装JDK,配置JAVA_HOME
* 端口占用的问题。
* 端口被占用。
* java.net.BindException: Address already in use: JVM_Bind
* 解决问题:
* 在dos窗口中输入 netstat -ano命令,查找8080端口,找到PID
* 任务管理器结束PID就OK了。
* 修改tomcat服务器的端口号。修改tomcat的配置文件。
* tomcat/conf/server.xml修改tomcat的端口号。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
* 重新启动服务器。
* 带 World wide web publish IIS服务。
* tomcat的目录结构
* bin(**) 存放批处理的文件
* conf(*****) tomcat配置文件
* lib(***) 存放jar包
* logs(***) 日志
* temp(**) 临时文件
* webapps(*****) web applications存放项目的
* work(*****) jsp的时候,翻译serlvet
* 开发一个动态的WEB资源,固定的目录结构
* 在webapps的目录下,创建一个目录。
website
| --- 静态的页面(HTML CSS JAVASCIPT JSP)
| --- WEB-INF
| --- web.xml 配置文件 必须有的
| --- lib (文件夹,第三方的jar包) 可选的
| --- classes (文件夹,存放.class文件) 可选的
myeclipse配置tomcat
* window -- 选择 -- (搜索servers)MyEclipse -- Servers -- tomcat -- 选择tomcat6.x的版本
* 选择Enable -- 配置tomcat的路径 -- 选择tomcat的根路径
* 配置JDK(点tomcat的+号) -- 配置JDK -- 选择JDK就ok了。
* 新建的WEB项目,部署tomcat服务器中,启动服务器。
* 虚拟路径:访问路径(项目名称)。
* 直接复制web项目,修改虚拟路径。
* 右键 -- 属性 -- MyEclipse -- web -- 修改虚拟路径。
* tomcat管理员的配置(了解)
* 在tomcat/conf/tomcat-user.xml
<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>
* 部署web应用程序(三种方式)(重点)
* 直接复制项目到webapps目录下。
* 通过conf/server.xml中配置虚拟路径的方式(开发中使用,但是tomcat不推荐使用)
* 标签<Context docBase="项目的真实路径" path="访问路径" ></Context>
* Context需要配置Host标签下。
* 在指定的文件夹下编写 xxx.xml,把xxx作为访问路径。(推荐使用的)
* 在哪个文件夹下:($CATALINA_HOME/conf/[enginename]/[hostname]/ directory.)
* tomcat/conf/Catalina/localhost/xxx.xml
* 编写的xml:
* <Context docBase="项目的真实路径" ></Context>
* 通信
* 百度的ip:119.75.217.56
* 翻译ip,先去自己的电脑hosts文件,如果找不到,网络上。
* 了解配置虚拟主机。
* 先找到hosts文件。C:\WINDOWS\system32\drivers\etc\hosts 修改为: 127.0.0.1 www.baidu.com
<Host name="www.taobao.com" appBase="C:\taobao"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context docBase="\mytaobao" path="/" ></Context>
</Host>
* 协议:遵循一定规范的数据格式。
* 特点:
* 基于请求和响应的模式。(先有请求再有响应)
* 基于tcp的链
* 默认端口是80
* 使用telnet命令完成http入门
* 开启telnet命令。
* telnet localhost 80
* 会产生乱码,解决问题:ctrl+],回车。
* telnet命令,不支持删除。
* 服务器发送一次请求
GET /aa/1.html HTTP/1.1
host:localhost
* 服务器做出了响应
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
ETag: W/"20-1413703905727"
Last-Modified: Sun, 19 Oct 2014 07:31:4
Content-Type: text/html
Content-Length: 20
Date: Sun, 19 Oct 2014 07:37:51 GMT
<h1>hello world</h1>
* HTPP协议的版本(面试题)
* HTTP/1.0
* 发送一次请求,拿到web资源后,链接会自动断开。
* HTTP/1.1
* 发送一次请求,拿到web资源后,链接不会断开,如果长时间不操作,会自动断开。
GET /aa/1.html HTTP/1.0
host:localhost
GET /aa/1.html HTTP/1.1
host:localhost
* 请求:
* 请求行:
* 请求方式
* POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
* 常用post和get
* 区别:....
* 请求路径
*
* 协议版本
* HTTP/1.1
* 请求头
Accept: text/html,image/*
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip
Accept-Language:zh-cn
Host: www.itcast.com:80
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.itcast.com/index.jsp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
* 重点的头
* If-Modified-Since 可以控制缓冲,需要和响应的头一起来使用。
* Referer 记住当前网页的来源。(防止盗链)
* User-Agent 判断当前的浏览器类型
* 空行
* 请求体:就是post提交时,保存参数列表的。
* 响应:
* 响应行
* 协议版本
* 状态吗
200 :请求成功处理,一切OK
302 :请求重定向
304 :服务器端资源没有改动,通知客户端查找本地缓存
404 :客户端访问资源不存在
500 :服务器内部出错
* 状态码描述
* 响应头
Location: http://www.it315.org/index.jsp
Server:apache tomcat
Content-Encoding: gzip
Content-Length: 80
Content-Language: zh-cn
Content-Type: text/html; charset=GB2312
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT
Refresh: 1;url=http://www.it315.org
Content-Disposition: attachment; filename=aaa.zip
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
* 重点:
* Location 可以与302完成重定向的操作
* Content-Type
* Last-Modified 根请求头一起来完成控制缓冲的操作
* Refresh 完成页面的定时刷新
* Content-Disposition 做下载功能时,必须使用该头。
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
* 禁用浏览器的缓冲。
* 空行
* 响应体:服务器向客户端响应的所以内容。
07 JavaWeb的更多相关文章
- JavaWeb学习总结-07 Filter 学习和使用
一 Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态 ...
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...
- 阿里云 centos 部署javaweb 应用
今天在阿里云上部署了个javaweb应用,在此记录下步骤,以供下次使用. 服务器版本: 1.root登陆服务器 2.服务器安装FTP服务,或者直接使用winscp上传文件(简单),本文介绍安装FTP服 ...
- Linux下javaweb
Linux下javaweb环境搭建 步骤: 1.使用远程工具连接上服务器,例如xsheel(ssh).filezilla(ftp) 2.JDK安装及相关配置 3.Mysql安装及相关配置 4.Tomc ...
- javaWEB总结(12):JSP页面的九个隐含对象
前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...
- Javaweb 第7天 Servlet课程
Servlet课程 三日大纲 ● 网络概念,专业术语 ● Tomcat使用,发布网站,使用Myeclispe发布网站(搭建环境) ● 编写Servlet,Servlet生命周期 ● 用户注册,显示所有 ...
- javaWeb学习总结(1)- Tomcat服务器学习和使用(2)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- javaweb部署多个项目(复制的项目)
最近需要在一台服务器部署两个已经编译完了的javaweb项目,但是因为项目名一样,仅修改文件夹的名字无法实现两个项目共存,最后只能考虑采用部署多个tomcat服务器的方法来实现.搜索后终于找到个好方法 ...
随机推荐
- asp.net Excel数据导入到数据库中
protected void Btn_Import_Click(object sender, EventArgs e) { bool Result_Import = false; bool Resul ...
- Mac 安装 eclipse
总是看着安卓的代码感觉手痒痒,闲来无事在 Mac 端安装了一下eclipse 提高逼格. 1.官网(http://www.eclipse.org/downloads/)下载所需的安装包,具体步骤如图: ...
- python基础——使用模块
python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...
- 1.1 STL 概述
综述 STL = Standard Template Library,标准模板库,惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R M ...
- hdu 1711Number Sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 数字KMP,原来还能这么用 #include<stdio.h> ],b[]; ]; ...
- hdu 1257 最少拦截系统
#include<time.h> #include <cstdio> #include <iostream> #include<algorithm> # ...
- 趣味C++
用三段 140 字符以内的代码生成一张 1024×1024 的图片 Kyle McCormick 在 StackExchange 上发起了一个叫做TweetableMathematical A ...
- JS添加MD5,JS提示框
http://pan.baidu.com/s/1kTmSp9t
- 与你相遇好幸运,mbview的mbtiles文件分析
mbview是一个查看.mbtiles文件的本地程序. https://github.com/mapbox/mbview .mbtiles文件就是一个Sqlite文件,用Navicat Premium ...
- Shell编程基础教程4--控制流结构
4.控制流结构 4.1.控制结构 4.2.if then else语句 格式: if 条件1 //如果条件1为真 then 命令1 //那么,执行命令1 el ...