程序的演变过程:
1.单机程序:txt文档,word文档,ppt文档
2.两层CS架构
客户端client: 设计用户界面和少量逻辑代码
服务端service: 数据库(大量逻辑代码)
优点:交互简单
缺点:业务逻辑使用数据库编程语言编写在程序移植方面非常差,需要重新编写业务逻辑代码
3.三层CS架构
c: client,用户界面设计和少量的业务逻辑
s: 应用服务器 ,大量的逻辑代码
db: 数据库 ,只进行数据的交互
优点:移植性好
缺点:开发客户端成本高,维护性差
4.BS架构
B: browser,浏览器
S:server ,应用服务器,所有业务逻辑代码
db:数据库 ,只进行数据的交互
优点:只遵循浏览器的HTTP通信协议即可,无客户端开发成本,所有逻辑代码都在服务端开发,移植性好
- Servlet
概念:是Sun公司制定的用于扩展web应用服务器的一个组件规范。
web--应用服务器功能:可以部署bs架构项目的服务器。最开始,web应用服务器只能进行一些静态资源的处理。无法满足需要经过计算得到的静态资源。之后出现了CGI,通用编程接口,来实现动态技术。但是CGI编程非常复杂不利于开发与维护,之后才出现看替代CGI的技术Servlet。
组件:
通过继承或实现某些类或接口,符合一定规范,可以完成部分功能,并且需要部署到容器里的组件。
容器:就是能实现组件功能的一个程序。
- Tomcat
- 是apache基金会的一个servlet容器。也相当于一个微型web应用服务器
(未来一周涉及到的web容器,servlet容器都是同一个东西)
2.安装:
解压,放于某一路径下
3.在conf文件夹下
server.xml里的<Connector port =”8080.....”>
修改成你想要的端口号:不修改的话可能会与Oracle的http协议相撞
- 启动服务器
Window:
startup.bat
linux:
start.sh
PS:启动后窗口不要关闭
异常:
闪退:没有配置JAVA_HOME环境变量
Address already in use:.......port 端口号被占用。
5、打开任意浏览器进行测试:
http://localhost:port
例子:
出现一只猫 即成功
- 手工编写一个web程序。
web程序的组织架构
(1)appName:
--WEB-INF
--classes
---xxx.class
---lib(可选)
---xxx.jar
---web.xml
--index.html(可选)
(2) 自定义一个源文件(如:HelloWorld)
0)先导包
1)继承HttpServlet
2)重写service方法
3)获取流对象,输出信息
(3) 编译源文件
javac -classpath servlet-api.jar的全路径 源文件.java
(4) 将class文件放入组织架构里的classes文件夹下
(5) 编写web.xml
1)、注册servlet组件
<servlet>
<!-- 组件昵称 -->
<servlet-name>firstweb</servlet-name>
<!-- 组件的类全名 -->
<servlet-class>HelloWorld</servlet-class>
</servlet>
2)、注册servlet组件的映射信息
<servlet-mapping>
<!-- 必须与组件昵称一致 -->
<servlet-name>firstweb</servlet-name>
<!-- url-pattern的值与浏览器地址栏上的值必须匹配 -->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
(6)部署项目到服务器中
将(1)的整个组织架构放入webapps中
(7)启动服务器
(8)使用浏览器访问服务器中的项目
http://ip:port/appName
访问的是项目的首页
http://ip:port/appName/url-pattern
web服务器,web容器,Servlet容器都是同一个东西
三、Servlet的组织结构