- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
servlet_С-
1.什么是servlet?
a sun公司制定的一种用来扩展web服务器功能的组件规范。
由java编写的server端程序,它与协议和平台无关,Servlet运行于java服务器中,
可以动态的扩展服务器的能力,并且采用请求-响应模式提供web服务。
b 扩展web服务器功能:
web服务器(比如apache webserver,iis):
只能处理静态资源的请求(所谓静态资源,指的是这些资源事先就存放在服务器上面,比如一些.html文件),
不能够处理动态资源请求(所谓动态资源,指的是需要依据客户的请求进行计算,然后返回相应的处理结果)
扩展web服务器功能:
指的是,让web服务器也能够处理动态资源的请求
方式一(早期):
使用CGI(common gateway interface)程序来扩展。CGI程序一般采用c,perl等语言来开发。
比较复杂,并且,如果处理不好,有可能会严重影响性能,还有一个问题,可移值性比较差。
方式二(现在):
使用容器+组件
A 组件:符合某种规范,并且可以单独部署的软件模块
B 组件的特点:
aa 需要依赖容器才能运行
bb 实现相应的业务逻辑,基础服务(比如网络通讯问题)不需要考虑,由容器来提供
C 容器:符合某种规范,提供组件的运行环境,并且管理组件的生命周期的程序
D 规范
JSR(文档)(java specification request)
JCP(组织)(java communication process)
2.如何开发一个servlet
step1 写一个java类(实现Servlet接口或者继承HttpServlet。Servlet只能使用java语言来开发)
step2 编译(需要使用servlet-api.jar;java -cp servlet-api.jar -d . HelloServlet.java)
step3 打包
建立一个文件夹(名称自己定义,一般称为应用名appname)
WEB-INF(必须是这个名称)
classes(存放字节码文件,也就是servlet的字节吗文件)
lib(可选,存放的.jar文件)
web.xml(部署描述文件)
step4 部署
将step3所生成的整个文件夹或者使用jar命令将整个文件夹压缩(会生成.war的文件),
将其拷贝到web服务器特定的文件夹下面
step5 启动服务器,访问
在浏览器地址栏输入:
http://ip:port/appname/servlet-url
3.web服务器(Tomcat)的使用
a 安装
将tomcat压缩文件解压到某个文件夹下面,比如解压到/home/soft1下
b 配置环境变量
cd /home/soft01
vi .bash_profile
添加
JAVA_HOME: jdk的主目录
CATALINA_HOME: tomcat的主目录
然后使用配置生效
. .bash_profile
c 启动和关闭服务器
启动/关闭 cd apache-tomcat-5.5.23 /bin
sh startup.sh / shutdown.sh
在浏览器地址栏中输入:http://localhost:8080/
d tomcat的各个文件夹
bin:一些可执行文件(包括启动、关闭服务器的脚本)
common:常用的jar包
conf:服务器类型文件
webapps:部署文件夹。服务器启动后,会将该文件夹下面的应用程序进行加载
work:服务器运行时,生成的一些临时文件
4.servlet运行过程
比如,向浏览器输入:
http://ip:port/helloweb/sayhello?name=zs
step1:浏览器依据ip,port向服务器请求建立一个连接。
step2:浏览器将请求数据打包(按照http协议的要求,将请求数据封装成一个http请求数据包)。
step3:服务器收到请求数据包,会将数据包中的数据封装成request对象
(request对象是HttpServletRequest的实例),然后,再创建一个
response
文档评论(0)