你的位置:首页 > Java教程

[Java教程]初识Servlet


1.what is servlet?

sun公司指定的一种用来扩展web服务器功能的组件规范
(1)扩展web服务器功能
  apache(www.apache.org) web server、iis微软、等等。
  web服务器通常只能处理静态资源的请求(即事先将html文件准备好)
servlet扩展服务器(web服务器可以通过调用servlet来处理动态资源
的请求,比如访问数据库)
(2)组件规范
  1)什么是组件
  符合一定规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。
servlet是一个组件,需要部署到相应的servlet容器里面才能运行。
2)什么是容器
  符合一定规范,提供组件的运行环境的程序。tomcat就是容器,提供了servlet的运行环境。(比如socket网络连接)
  webserver---(动态资源)--->servlet(tomcat是其运行环境)->DB

2.安装容器Tomcat

Download:www.apache.org

linux环境下(windows下环境相同)
step01:解压
  /home/devSoft/tomcat6
  或/opt/tomcat6
step02:配置环境变量
  JAVA_HOME:jdk安装路径/opt/jdk8
  CATALINA_HOME:tomcat安装路径/opt/tomcat6
  PATH:bin文件夹所在目录/opt/tomcat6/bin
step03:启动tomcat
  cd $CATALINA_HOME/bin
  ./startup.sh OR catalina.sh run
  check:http://localhost:8080
step04:关闭tomcat
  sh sgutdown.sh

3.How to make a servlet without IDE?

step01:new一个java类
  实现Servlet接口或者继承HttpServlet抽象类(通常选择继承的方式)
step02:编译
step03:打包
  创建一个具有如下结构的文件夹:
  appname(应用名)
    |-WEB-INF(固定)
        |-classes(放class文件)
        |-lib(可选,放jar包:jdbc驱动)
        |-web. step04:部署
  将step3创建好的整个文件夹拷贝到servlet容器相应的位置
  注:可以使用jar命令将step03文件夹压缩成后缀“.war”为后缀文件,在拷贝。
step05:启动容器,访问servlet
  http://ip:port/appname/url-pattern(注:url-pattern:web.

4.servlet是如何运行的?

输入地址:http://ip:port/web01/hello
step01,浏览器根据ip和port建立连接。
step02,浏览器打包(数据包),发送请求数据包
step03,容器解析请求数据包,并将解析到的数据封装到request对象,同时创建一个response对象。
step04,容器创建servlet对象,然后调用该对象的service()方法。
    注:容器会将request和response作为参数传递进来,通过request获取请求参数,通过response保存处理结果。
step05,容器读取response中的处理结果,然后处理结果打包发送给浏览器。
step06,浏览器解析响应数据包,生成相应的界面。

5.问题处理

(1)404:一个状态码(三位数字,w3c定义,表示服务器处理请求的一种状态)。
  1)找不到请求的资源
  2)①未部署、②<servlet-name>不一致( (2)500:
  1)系统出错
  2)①没有继承、②<servlet-class>写错、③代码不严谨
(3)405:
  1)找不到处理方法
  2)service方法格式不正确