Servlet基础 Tomcat配置 和常见错误代码
1、什么是Servlet?
sun公司开发的一种用于扩展web服务器功能的
组件规范。
1)扩展web服务器功能
a,CGI (早期用这个 现在不用了) :
common gateway interface(公共网关接口)。
当浏览器发送请求给web服务器(比如apache web
server),web服务器判断请求是否是动态资源的请求,
如果是,则调用相应的CGI程序(使用perl,c等语言
开发的,符合CGI接口定义的程序,该程序需要事
先保存到web服务器端特定的目录下面)去处理。
问题:
编程相对比较麻烦(CGI程序需要处理
web服务器传递过来的参数,即需要分
析原始的请求参数)。另外,CGI写的程序
可移植性也比较差。
b,组件技术
组件:
符合一定规范,实现部分功能的软件模块,该
模块必须要部署到相应的容器当中才能运行。
容器:
提供组件的运行环境,并且管理组件的
生命周期的一种程序。
2)组件规范
Servlet是一种组件,不依赖于容器来运行,
也就是说,我们开发的Servlet,可以在符合
相同的规范的不同的容器当中运行。
当web服务器(比如apache webserver)收到请求之后,
会依据请求的类型(比如,是动态资源的请求)
会调用容器(比如tomcat),容器会调用Servlet来处理。
容器在调用Servlet之前,会先将请求参数分析出
来,这样,Servlet不用再去分析请求参数(
相对于CGI技术,开发起来更方便)。
2、如何开发一个Servlet?
step1 写一个java类,实现Servlet接口或者
继承HttpServlet。
step2 编译
step3 打包
建一个文件夹
appname(名称任意,最好有一定的含义)
WEB-INF
classes(.class文件)
lib(放.jar文件,可选)
web.xml(描述servlet,比如如何访问)
step4 部署
将step3对应的整个文件夹(或者
对整个文件夹使用jar命令压缩成
.war文件)拷贝到web服务器(
所有的servlet容器,比如tomcat,
除了是一个容器以外,同时,也
具有web服务器的相应的功能,所以,
以后,不再区分servlet容器与web
服务器,统称为web服务器)特定的
文件夹下面。
step5 启动服务器,访问servlet
http://ip:port/appname/servlet url-pattern
http://localhost:8080/firstweb/hello
3、tomcat的安装与简单的使用
1)安装
a,将tomat.zip解压到/home/soft01下。比如
解压之后 /home/soft01/apache-tomcat5.5(
主文件夹)。
b,配置环境变量
cd /home/soft
vi .bash_profile
JAVA_HOME: jdk的安装路径
CATALINA_HOME:/home/soft01/apache-tomcat5.5
PATH:/home/soft01/apache-tomcat5.5/bin
c,启动tomcat
cd /home/soft01/apache-tomcat5.5/bin
sh startup.sh (startup.bat)
sh catalina.sh run(如果上面命令有问题,换这个)
在浏览器地址栏输入http://localhost:8080
d,关闭tomcat
cd /home/soft01/apache-tomcat5.5/bin
sh shutdown.sh
2)tomcat各个文件夹的作用(了解)
a,bin : 可执行文件,比如启动和关闭服务器的命令。
b,common: 可以将一些jar文件放到这儿,所有
部署在这台服务器上程序都可以访问这些jar文件。
c,conf:服务器的配置文件(比如server.xml,
web.xml,这些配置文件会影响到服务器的运行,
一般需要重新启动服务器才能生效)。
d,webapps: tomcat的部署文件夹。
e,work:服务器在运行过程当中生成的一些临时
文件。
4、Servlet是如何运行的
在浏览器地址栏输入了
http://localhost:8080/firstweb/hello
step1 浏览器依据ip,port建立与服务器之间的连接。
step2 浏览器会将一些数据(包括请求资源路径、
请求参数、浏览器自身的一些信息)按照http
协议打成一个数据包(请求数据包),然后发送
给服务器。
step3 服务器分析请求数据包(解包),将分析的
结果封装成一个对象(是一个符合
HttpServletRequest接口的对象,一般称为请求
对象),然后再创建一个响应对象(是一个
符合HttpServletResponse接口的对象)。然后,
step4 服务器分析请求资源路径(/firstweb/hello),
称依据firstweb(应用名)找到webapps下面对应的
文件夹,然后,使用/hello去web.xml文件中查找
对应的Servlet配置。依据Servlet类名创建
相应的实例。接下来调用该实例的service方法,
在service方法里面,可以通过request(请求对象)
方便地获取请求参数,也可以将处理结果存放到
response(响应对象)。服务器会将response中的数据
取出来,打包(按照http协议,将处理结果转换成
一个数据包),然后发送给浏览器。
step5 浏览器从响应数据包中取出数据,生成相应的
界面。
5、使用myeclipse来开发servlet
1)配置myeclipse
让myeclipse管理tomcat(启动、关闭、部署)
2)建一个web工程
3)部署
4)访问servlet
6、常见错误
1) 404错误:
404(是一个状态码,由w3c定义,不同的数字
代表不同的含义)
产生这个错误的原因:
输入的路径不正确。
解决方式:
检查你输入的路径。
正确的路径应该是:
http://ip:port/appname/servlet url-pattern
2) 500错误:
产生这个错误的原因:
程序编写错误或者系统内部出错
解决方式:
检查源文件,包括相应的配置文件。
3) 405错误:
产生这个错误的原因:
服务器只认识service方法,如果没有提供这个
方法,则服务器会调用HttpServlet的service方法。
该方法会报错。
解决方式:
检查service方法的签名
1、什么是Servlet?
sun公司开发的一种用于扩展web服务器功能的
组件规范。
1)扩展web服务器功能
a,CGI (早期用这个 现在不用了) :
common gateway interface(公共网关接口)。
当浏览器发送请求给web服务器(比如apache web
server),web服务器判断请求是否是动态资源的请求,
如果是,则调用相应的CGI程序(使用perl,c等语言
开发的,符合CGI接口定义的程序,该程序需要事
先保存到web服务器端特定的目录下面)去处理。
问题:
编程相对比较麻烦(CGI程序需要处理
web服务器传递过来的参数,即需要分
析原始的请求参数)。另外,CGI写的程序
可移植性也比较差。
b,组件技术
组件:
符合一定规范,实现部分功能的软件模块,该
模块必须要部署到相应的容器当中才能运行。
容器:
提供组件的运行环境,并且管理组件的
生命周期的一种程序。
2)组件规范
Servlet是一种组件,不依赖于容器来运行,
也就是说,我们开发的Servlet,可以在符合
相同的规范的不同的容器当中运行。
当web服务器(比如apache webserver)收到请求之后,
会依据请求的类型(比如,是动态资源的请求)
会调用容器(比如tomcat),容器会调用Servlet来处理。
容器在调用Servlet之前,会先将请求参数分析出
来,这样,Servlet不用再去分析请求参数(
相对于CGI技术,开发起来更方便)。
2、如何开发一个Servlet?
step1 写一个java类,实现Servlet接口或者
继承HttpServlet。
step2 编译
step3 打包
建一个文件夹
appname(名称任意,最好有一定的含义)
WEB-INF
classes(.class文件)
lib(放.jar文件,可选)
web.xml(描述servlet,比如如何访问)
step4 部署
将step3对应的整个文件夹(或者
对整个文件夹使用jar命令压缩成
.war文件)拷贝到web服务器(
所有的servlet容器,比如tomcat,
除了是一个容器以外,同时,也
具有web服务器的相应的功能,所以,
以后,不再区分servlet容器与web
服务器,统称为web服务器)特定的
文件夹下面。
step5 启动服务器,访问servlet
http://ip:port/appname/servlet url-pattern
http://localhost:8080/firstweb/hello
3、tomcat的安装与简单的使用
1)安装
a,将tomat.zip解压到/home/soft01下。比如
解压之后 /home/soft01/apache-tomcat5.5(
主文件夹)。
b,配置环境变量
cd /home/soft
vi .bash_profile
JAVA_HOME: jdk的安装路径
CATALINA_HOME:/home/soft01/apache-tomcat5.5
PATH:/home/soft01/apache-tomcat5.5/bin
c,启动tomcat
cd /home/soft01/apache-tomcat5.5/bin
sh startup.sh (startup.bat)
sh catalina.sh run(如果上面命令有问题,换这个)
在浏览器地址栏输入http://localhost:8080
d,关闭tomcat
cd /home/soft01/apache-tomcat5.5/bin
sh shutdown.sh
2)tomcat各个文件夹的作用(了解)
a,bin : 可执行文件,比如启动和关闭服务器的命令。
b,common: 可以将一些jar文件放到这儿,所有
部署在这台服务器上程序都可以访问这些jar文件。
c,conf:服务器的配置文件(比如server.xml,
web.xml,这些配置文件会影响到服务器的运行,
一般需要重新启动服务器才能生效)。
d,webapps: tomcat的部署文件夹。
e,work:服务器在运行过程当中生成的一些临时
文件。
4、Servlet是如何运行的
在浏览器地址栏输入了
http://localhost:8080/firstweb/hello
step1 浏览器依据ip,port建立与服务器之间的连接。
step2 浏览器会将一些数据(包括请求资源路径、
请求参数、浏览器自身的一些信息)按照http
协议打成一个数据包(请求数据包),然后发送
给服务器。
step3 服务器分析请求数据包(解包),将分析的
结果封装成一个对象(是一个符合
HttpServletRequest接口的对象,一般称为请求
对象),然后再创建一个响应对象(是一个
符合HttpServletResponse接口的对象)。然后,
step4 服务器分析请求资源路径(/firstweb/hello),
称依据firstweb(应用名)找到webapps下面对应的
文件夹,然后,使用/hello去web.xml文件中查找
对应的Servlet配置。依据Servlet类名创建
相应的实例。接下来调用该实例的service方法,
在service方法里面,可以通过request(请求对象)
方便地获取请求参数,也可以将处理结果存放到
response(响应对象)。服务器会将response中的数据
取出来,打包(按照http协议,将处理结果转换成
一个数据包),然后发送给浏览器。
step5 浏览器从响应数据包中取出数据,生成相应的
界面。
5、使用myeclipse来开发servlet
1)配置myeclipse
让myeclipse管理tomcat(启动、关闭、部署)
2)建一个web工程
3)部署
4)访问servlet
6、常见错误
1) 404错误:
404(是一个状态码,由w3c定义,不同的数字
代表不同的含义)
产生这个错误的原因:
输入的路径不正确。
解决方式:
检查你输入的路径。
正确的路径应该是:
http://ip:port/appname/servlet url-pattern
2) 500错误:
产生这个错误的原因:
程序编写错误或者系统内部出错
解决方式:
检查源文件,包括相应的配置文件。
3) 405错误:
产生这个错误的原因:
服务器只认识service方法,如果没有提供这个
方法,则服务器会调用HttpServlet的service方法。
该方法会报错。
解决方式:
检查service方法的签名