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服务器的方法来实现.搜索后终于找到个好方法 ...
随机推荐
- IOS - NSURLSession
NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...
- IOS-触摸事件
UITouch UITouch类中包含五个属性 •window:触摸产生时所处的窗口.由于窗口可能发生变化,当前所在的窗口不一定是最开始的窗口 •view:触摸产生时所处的视图.由于视图可能发生变化, ...
- 生成Geometry
// 由一组点集生成一张三角面片网格Geometry osg::Geometry* createTRIANGLESGeometry(MyMesh &mesh) { osg::ref_ptr&l ...
- Redis事件管理(三)
Redis的事件管理和定时器的管理都是自己来实现的,Redis的事件管理分为两部分,一部分是封装了系统的异步事件API,还有一部分是在这基础上封装了一个通用的事件管理器,根据具体的系统来决定具体使用哪 ...
- Swift - 文本输入框(UITextField)
1,文本框的创建,有如下几个样式: UITextBorderStyle.none:无边框 UITextBorderStyle.line:直线边框 UITextBorderStyle.roundedRe ...
- PHP魔术方法在框架中的应用
class usermodel{ protected $email='user@163.com'; protected $data=array(); public function __set($k, ...
- find 查找文件 -exec 然后压缩 查看tar包的内容
[root@cs Downloads]# find ./ -name "banner*" -exec tar -cvf k.tar "{}" \; ./bann ...
- 15.命令模式(Command Pattern)
using System; namespace ConsoleApplication8 { class Program { /// <summary> /// 在软件系统中,“行为请求者” ...
- 重温WCF之流与文件传输(七)
WCF开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了. TransferMode其实是一个举枚,看看它的几个有效值: Buffer ...
- 使用Asyncio的Coroutine来实现一个有限状态机
如图: #!/usr/bin/env python # -*- coding: utf-8 -*- import asyncio import datetime import time from ra ...