1、c/s和b/s两种架构的优势和不足
c/s
优势:1、界面和架构很丰富
2、安全性高
3、响应速度快
不足:1、维护成本高,升级一次则所有客户端的程序都需要改变
2、用户群固定,由于程序需要安装才可使用,因此不适合面向一些不可知的用户
优势:1、开发成本低
2、管理维护简单
3、产品升级便利
4、对用户的培训费用低
5、用户使用方便,出现故障的概率小
不足:1、安全性不足
2、客户端不能随心变化,受浏览器的限制
2、HTTP协议
http协议的两个重要特性:
1、基于请求/响应模型
http是一种基于请求/响应的通信协议,客户端对服务器发出一个取得资源的请求,服务器将要求的资源响应给客户端,
每次的联机只作一次请求/响应,是一种很简单的通信协议,没有请求就不会有响应。
2、无状态通信协议
在http协议之下,服务器端是个健忘的家伙,服务器响应客户端之后,就不会记得客户端的信息,更不会去维护与客户
端有关的状态,因此http又称为无状态的通信协议。
get请求和post请求:
get请求就是向服务器取得(get)指定的资源,在发出get请求时,必须一并告诉服务器所请求资源的url,以及一些标
头(header)信息。
post请求就是在请求时发布(post)信息给服务器,对于大量或复杂的信息发送(如文件上传),基本上会采用post来进行
发送。
注意:get请求应该用于等幂操作;get请求纯粹取得资源,而不改变服务器上的数据或状态。
post请求应该用于非等幂操作;post请求发送的数据,可能会影响服务器上的数据或状态,例如修改(增、删、
更新)数据库的内 容,或是在服务器上保存文件。
等幂操作:请求的操作是否改变服务器状态,同一个操作重复多次,是否传回同样的结果。
3、MyTomcat编写:
MyTomcat.java
<span style="font-family:SimSun;font-size:14px;"><span style="font-family:SimSun;font-size:14px;">package com.llb.server;
import java.net.*;
import java.io.*;
public class MyTomcat {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(80);
//提示
System.out.println("MyTomcat在80端口上等待连接......");
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\llb88\\Desktop\\hello.html"));
String buf = "";
while((buf=br.readLine()) != null){
os.write(buf.getBytes());
}
//关闭流
br.close();
os.close();
s.close();
}
}</span></span>
直接在浏览器地址栏输入地址即可访问,hello.html为MyTomcat返回给浏览器的文件。(这里写MyTomcat的用意是为了弄清楚tomcat的本质,为能够更好地了解tomcat的工作原理打下基础。当然tomcat远远比MyTomcat复杂多了,但任何一个软件或系统又何尝不是从简单到复杂的呢!)
4、tomcat的目录层次结构:
bin:存放启动和关闭Tomcat的脚本文件
conf:存放Tomcat服务器的各种配置文件
lib:存放Tomcat服务器的支撑jar包
logs:存放Tomcat的日志文件
temp:存放Tomcat运行时产生的临时文件
webapps:web应用所在目录,即供外界访问的web资源的存放目录
work:Tomcat的工作目录
注意:tomcat可以管理多个主机
5、tomcat管理虚拟目录:
配置虚拟目录在tomcat的conf目录下的server.xml的<Host>节点间添加如下代码:
<Context path="/myweb" docBase="f:\myblog\myweb"/>
path:web应用名称
docBase:虚拟目录的绝对路径
注意:需要重启tomcat才能生效
6、url组成:
http://localhost:8080/myweb/hello.html --url(统一资源定位)
myweb/hello.html --uri
http --协议
localhost --主机(域名)
8080 --端口
myweb --web应用名称
hello.html --资源文件
7、web程序的目录结构: