1.1 Servlet
简介
Servlet
是服务器端的小程序,它是相对于
Applet
而言的,
Applet
是客户端小程序。
应用传统的
CGI
(
Common Gateway Interface ,
公共网关接口)程序,针对每个
HTTP
请求都
要启动一个新的进程。如果
CGI
程序自身相对比较简单,那么启动进程的开销会占用大部分
执行时间。而使用
servlet
,
Java
虚拟机会一直运行,并用轻量级的
Java
线程处理每个请求,
而非重量级的操作系统进程。
Servlet
是接受来自网络的请求(
form
表单或其他的请求),并作出响应。
Servlet
可以实现动态的页面,可以针对不同的请求作出不同的响应,可以实现页面的
流转,
Servlet
可以充当
MVC
模式中的
Ctrl
模块,可以控制信息的流向。
1.2 Web
服务器
1.2.1
介绍
Servlet
运行在
web
容器中,
web
容器可以控制
Servlet
对象的生命周期,控制请求由
Servlet
对象处理。
web
服务器是软件,常用的
web
服务器有
Tomcat
,
JBoss
等,我们所用的
Tomcat
是一个开
源的服务器,用
java
语言编写的
web
服务器,所以需要有相应的
java
运行环境,也就是
JVM
,
还要配置
tomcat
的具体路径
1.2.2 Tomcat
服务器介绍
(1)
tomcat
的默认监听端口是
8080
,每当接受到一个连接请求,就会为其分配一个线程。
(2)
Tomcat
的
web
应用文件夹放在
webapps
下。
每个
web
应用的文件夹下都要有
WEB-INF
文件夹,
WEB-INF
文件夹下有
classes
,和
lib
文件夹,以及一个
web.xml
文件,
类文件放在
classes
中,
jar
文件可以放在
lib
中。
(3)
tomcat
中配置了
root
缺省应用,也就是在不指定的情况下会默认访问这个应用。
(
4
)访问应用时,在端口号后加上
web
应用文件夹的名字
http://localhost:8080/xxxxx/xxxx.html
,
静态页面只能放在
web
应用的文件夹下,不能放在
WEB-INF
文件夹下,
WEB-INF
文件夹中
的资源是受保护的,不能够通过网络访问到
1.2.3 Web 工程的配置文件 web.xml
web 服务器接受到用户发出的请求,会根据用户访问的路径,从 web.xml 配置文件中查
找所需要的类,服务器会从 web 应用的 WEB-INF 文件夹下的 classes 文件夹中搜索要加载的
class 文件。
web.xml 文件的配置,一个 web.xml 中可以配置多个 Servlet
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>servlet 的名字</servlet-name>
<servlet-class>servlet 类全名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet 的名字(要和 servlet 标签中的相同)
</servlet-name>
<url-pattern>指定 servlet 相对于应用目录的路径</url-pattern>
</servlet-mapping>
</web-app>
web 服务器接受到用户发出的请求,会根据用户访问的路径,从 web.xml 配置文件中查
找所需要的类,服务器会从 web 应用的 WEB-INF 文件夹下的 classes 文件夹中搜索要加载的
class 文件。
web.xml 文件的配置,一个 web.xml 中可以配置多个 Servlet
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>servlet 的名字</servlet-name>
<servlet-class>servlet 类全名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet 的名字(要和 servlet 标签中的相同)
</servlet-name>
<url-pattern>指定 servlet 相对于应用目录的路径</url-pattern>
</servlet-mapping>
</web-app>