Servlet(一)实现在浏览器上运行
1. 什么是Servlet?sun(oracle)公司制订的一种用来扩展web服务器功能的组件规范。(1)扩展web服务器功能web服务器(比如apache webserver,iis等)只能够处理静态资源的请求(需要事先将静态页面写好),不能够处理动态资源的请求(需要进行计算,然后生成相应的页面)。所以,需要扩展web服务器的功能。注:早期使用CGI(Common Gateway Int...
·
1. 什么是Servlet?
sun(oracle)公司制订的一种用来扩展web服务器功能的组件规范。
(1)扩展web服务器功能
web服务器(比如apache webserver,iis等)只能够处理静态资源的
请求(需要事先将静态页面写好),不能够处理动态资源的请求(需要
进行计算,然后生成相应的页面)。所以,需要扩展web服务器的功能。
注:早期使用CGI(Common Gateway Interface通用网关接口)程序来
扩展,因为性能不好,可移值性差,已经不怎么用了。
servlet可以用来扩展web服务器功能(web服务器收到请求之后,如果
需要计算,则调用servlet容器来处理,servlet容器会调用servlet来
计算)。
(2)组件规范
1)什么是组件?
符合规范,实现部分功能,需要部署到相应的容器里面才能运行的
软件模块。
2)什么是容器?
符合规范,提供组件的运行环境的程序。
servlet是一个组件,需要部署到相应的容器里面才能运行,比如
需要部署到(Tomcat)才能运行。
2.如何写一个servlet?
step1. 写一个java类,实现Servlet接口或者继承
HttpServlet。
step2. 编译
step3. 打包
appname(应用名)
WEB-INF
classes(字节码文件)
lib(可选,放jar文件)
web.xml(描述文件)
step4. 部署
将step3创建好的文件夹拷贝到容器指定的某个文件夹下面。
注:
也可以将step3创建好的文件夹使用jar命令压缩成
以.war为后缀的文件,然后再拷贝。
step5. 启动容器,访问servlet。
注:
打开浏览器输入
http://ip:port/appname/url-pattern
3. servlet是如何运行的?
比如,打开浏览器,输入
http://ip:port/servlet-day01/hello
step1. 浏览器依据ip,port建立与web服务器之间的连接。
注:servlet容器同时也是一个简单的web服务器。
step2. 浏览器将相关数据打包(即按照http协议要求,创建一个
请求数据包),然后发送给web服务器。
step3. web服务器拆包(即按照http协议要求,将请求数据包中的
相关数据解析出来),然后将解析到的数据添加到request对象里面,
同时,创建一个response对象。
step4. web服务器创建servlet对象,然后调用该对象service方法来
处理请求。
注:在service方法里面,可以通过request对象获取请求数据包
里面的数据,同时,可以将处理结果写到response对象里面。
step5. web服务器会将response对象中的数据取出来,打包(即按照
http协议创建响应数据包),然后发送给浏览器。
step6. 浏览器拆包(按照http协议要求,将响应数据包中的数据解析
出来),然后生成相应的页面。
4.常见的错误及解决方式
(1)404
注:404是一个状态码(状态码是一个三位数字,由http协议制订,
表示服务器处理请求的一种状态),表示依据请求路径,找不到对应
的资源。
1)原因:
a.地址写错。
b.忘记部署
2)解决方式:
a.先检查应用是否已经部署
b.按照http://ip:port/appname/url-pattern检查地址
(2)500
注:500也是一个状态码,表示服务器出错。
1)原因
a.程序运行出错。
b.没有继承HttpServlet。
c.<servlet-class>配置的类名写错。
2)解决方式
a.程序代码要写严谨。比如对请求参数值作合法性检查。
b.继承HttpServlet。
c.类名一定要完整、正确。
(3)405
注:405也是一个状态码,表示找不到处理请求的方法。
1)原因
service没有按照规定去写。
2)解决方式
按照service方法的要求去写。
更多推荐
已为社区贡献2条内容
所有评论(0)