Javaàservlet(以java为基础,为了支持java的Web开发)àJsp(以servlet为基础,为了支持servlet的界面化)[技术总是有一个演变过程的]
回顾一下现在已经学过的技术:
1、Java基础部分(面向对象、集合、swing、线程、文件流、网络)【根本】
2、Jdbc(java的数据库编程)
3、Oracle/mysql/sql server
4、Html/css/javascript(Web开发)à网页设计
5、Xml
Servlet+jsp->java web开发[用java技术做web ]
现在开始Servlet第一讲
-
WEB开发介绍
WEB,在英语中即表示网页的意思,它用来表示Internet主机上供外界访问的资源,即浏览器访问的资源。
->静态Web资源(Html):
->动态Web资源:
①用户可以输入数据和页面交互(比如注册、购物、发帖…);
②不同时间打开页面内容是变化的。
③常用的动态Web资源开发技术:
Jsp/Servlet、ASP、PHP(lamp架构,现在用的也很多)、asp.net、cgi等。
●动态网页技术的发展历程
由于html只支持静态的文字和图片,不能与用户进行交互,为弥补这个不足,陆续出现了下列网页技术:
-
cgi(commongateway interface)特点:
-
cgi技术是早期动态技术使用最多的,发展的比较成熟并且功能强大
-
效率比较低,编程比较困难
-
Cgi可以用不同的语言编程(vb,Delphi,c/c++,perl)常用的c/c++和perl语言
-
现在使用cgi做动态网页比较少,但是还是有,主要用linux/unix操作系统中
-
-
asp
asp是html+javascript+com组件的形式,asp功能强大,不在于能使用相关的脚本语言而是com组件,但是com组件的开发是比较困难的
asp的优势:
-
简单易学
-
安装使用方便(windows+iis)在win98是使用(pws作为asp的服务器)
-
效率比cgi要高
asp的不足:
-
功能扩张比较困难,因为asp的功能扩展在com组件,而开发com组件是比较困难的。
-
安全性,因为asp是与windows系统和iis一起工作的,所以windows和iis的安全漏洞会对asp造成影响
-
跨平台性(只能在windows上运行)
-
实现企业级的功能困难:如服务器的集群,负载均衡
一般中小型项目可以用asp,大型的多用php和jsp
(3)php
官方网站:www.php.net
Php的优势:
-
跨平台性良好,多种数据库支持
-
效率比较高,具有良好的安全性
-
免费试用
Php的不足:
-
安装复杂(php的很多功能需要安装相应的应用库如要更好支持图形就要安装gd库)
-
缺少企业级的支持(php是由php开发组支持的,如果要增加新的功能就要开发相应的组件)
-
Php是自由软件开发的,缺少正规的公司对其负责
(4)jsp
jsp =html + java片段+jsp语法+js
jsp的优势:
-
一次编写,到处运行
-
良好的跨平台性
-
多种开发工具支持
-
强大的可伸缩性(jsp+javabean)的方式
Jsp的不足:
-
jsp产品的复杂度高(jsp入门比asp难)
-
jsp要求运行的机器配置较高,因为jsp是用class常驻内存的方式运行的,效率高,但是占用更多的内存。
(所以一般jsp的网络空间比php、asp的贵)
Jsp和asp的比较:
| Jsp | asp |
运行的速度 | 速度快 | 速度较快 |
安全性 | 高 | 较高 |
跨平台性 | 很好 | 支持windows |
对数据库的支持 | 支持所有主流数据库 | 支持所有主流数据库 |
对组件的支持 | 良好 | 良好 |
Xml的支持 | 良好 | 良好 |
●b/s与c/s的比较
b/s的优势:
-
开发成本低
-
管理维护简单
-
产品升级便利
-
对用户的培训费用低
-
用户使用方便,出现故障的概率小
b/s的不足:
-
安全性不足
-
客户端不能随心变化,受浏览器限制
-
不利于管理用户
●Web服务器
-
为什么需要Web服务器,Web服务器究竟是干什么的?
模拟一个Web服务器 MyWebServer
import java.io.*;
import java.net.*;
public class MyWebServer{
public static void main(String [] args) throws Exception{
ServerSocket ss = new ServerSocket(9999);
System.out.println("等待连接...");
Socket s = ss.accept();
//提示一句话
System.out.println("在9999上等待连接...");
OutputStream os = s.getOutputStream();//输出流
BufferedReader br = new BufferedReader(new FileReader("E:\\data\\Servlet\\day1--\\hello.html"));
String buf ="";
while((buf=br.readLine())!=null){
os.write(buf.getBytes());
}
br.close();
os.close();
s.close();
}
}
编译运行后看到如下效果:
这时在浏览器中输入:http://localhost:9999,回车,可以看到:
刚刚运行起来的java程序如下:
这时程序已经运行完成,刚刚编写java程序起到了一个简单的服务器的作用。Tomcat也就是起到了这样一个作用,只不过Tomcat的功能要强大的多。
●常见的Web服务器
Jboss,开源,2006年被Red Hat收购;
WebLogic是BEA公司的产品,需付费试用;
WebSphere是IBM公司的,需付费。
Tomcat,用于小型/中型应用系统,支持JSP和Serverlet,免费。
●Tomcat
Tomcat是一个免费的开源Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在世界的地位。
Tomcat的配置:
JAVA_HOME:=JDK安装路径
TOMCAT_HOME:=Tomcat安装路径
测试是否成功:
在浏览器地址栏中输入http://localhost:8080,出来一只小猫就成功了。