Servlet原理、开发步骤及常见错误

1. 什么是Servlet?

sun公司制订的一种用来扩展web服务器功能的组件规范。

  • 扩展web服务器功能:
    早期的web服务器(比如apache、iis等)只能够处理静态资源的请求(即需要事先将html准备好),不能够处理动态资源的请求(即需要通过计算,生成html)。早期使用CGI程序来扩展。
    注(了解):
    CGI(Common Gateway Interace 通用网关接口): 可以使用perl、c、c++等语言来开发符合CGI接口要求的程序来扩展web服务器的功能,但是,开发繁琐,并且可移植性比较差,现在用得很少了。现在使用Servlet来扩展。

  • 组件规范:
    a.什么是组件?
    符合规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。
    Servlet就是一个组件,需要部署到Servlet容器里面才能运行。
    b.什么是容器?
    符合规范,为组件提供运行环境的程序。Tomcat就是一个符合Servlet规范的容器,为Servlet提供运行环境(即提供网络相关的服务)。Servlet原理、开发步骤及常见错误_第1张图片

2.如何写一个Servlet?

  1. 写一个java类,实现Servlet接口或者继承
    HttpServlet类。
  2. 编译。
  3. 打包。
    创建一个具有如下结构的文件夹:
    appname(应用名)
    WEB-INF
    classes(放.class文件)
    lib(放.jar文件,可以没有)
    web.xml (部署描述文件)
  4. 部署。
    将step3创建好的整个文件夹拷贝到容器。
    注:
    可以使用jar命令将step3创建好的整个文件夹
    压缩成.war为后缀的文件,然后再拷贝。
  5. 启动容器,访问Servlet。
    http://ip:port/appname/url-pattern
    ip地址:端口号/应用名/业务url
    注:
    url-pattern在web.xml中设置。

3.Servlet是如何运行的?

比如,在浏览器地址栏输入http://ip:port/appname/hello
,浏览器与Servlet容器之间会按照如下步骤进行处理 :

s![在这里插入图片描述](https://img-blog.csdnimg.cn/20190527191546376.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poeXVlMjg=,size_16,color_FFFFFF,t_70)tep1.浏览器依据ip和post建立连接。
step2.浏览器将相关数据打包(即按照http协议的要求创建请求
数据包),然后将请求数据包发送给容器。
step3.容器解析请求数据包,并且将解析到的数据存放到request
对象里面,同时,还会创建一个response对象。	
step4.容器创建Servlet对象,然后调用该对象的service方法。
注:
	容器会将request和response作为参数传递进来,开发人员
	可以利用request对象获得请求数据包中的数据,然后将处理
	结果写到response对象里面即可。
step5.容器从response对象中获得处理结果,然后创建响应数据包,
	并发送给浏览器。
step6.浏览器解析响应数据包,生成相应的页面。

Servlet原理、开发步骤及常见错误_第2张图片

4.常见问题及如何处理

(1)404

含义:

服务器依据请求路径找不到对应的资源。

原因:

a.请求路径不正确。
b.应用没有部署或者部署失败。

解决方式:

a.依据http://ip:port/appname/url-pattern检查请求路径是否
写错。
b.看应用有没有正确部署。

(2)500

含义:
服务器端发生错误,一般是由于程序运行产生的一些异常。

原因:

a.Servlet没有严格按照规范来写。
比如,没有继承HttpServlet,又或者web.xml中,类名写错。

b.程序不严谨。
比如,读取请求参数值之后,没有对参数值做合法性检查。

(3)405

含义:

服务器找不到对应的方法。

原因:

service方法没有按照规范来定义。

解决方式:

检查service方法的签名(方法名、参数类型、异常类型,返回类型)。

5. 使用eclipse写Servlet的步骤

step1.创建一个maven工程,注意要选war,如下图所示:

Servlet原理、开发步骤及常见错误_第3张图片

step2.工程建立好之后,会有异常提示,是因为默认情况下,工程
没有web.xml文件,请按如下图示进行操作:
Servlet原理、开发步骤及常见错误_第4张图片

step3.指定运行环境,运行环境提供了我们开发servlet需要的一些包。
如下图所示:
Servlet原理、开发步骤及常见错误_第5张图片

step4.添加Servlet类,并在web.xml文件中添加部署描述信息,如
下图所示:
Servlet原理、开发步骤及常见错误_第6张图片

step5.部署应用,启动容器,如下图所示:
Servlet原理、开发步骤及常见错误_第7张图片

step6.打开浏览器,按照http://ip:port/appname/url-pattern
访问Servlet。

你可能感兴趣的:(学习日志)