1.什么是Servlet?

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

(1)扩展web服务器功能

 早期的web服务器(apache web server,iis)
只能处理静态资源的请求(即需要事先将html文件
写好并添加到服务器上),不能够处理动态资源的
请求(即需要计算,生成html)。所以,需要扩展
这些web服务器的功能。
(了解)
    早期使用CGI程序来扩展。
    CGI(Common Gateway Interface):
    通用网关接口,可以使用c,perl等来开发符合
    CGI接口规范的程序。CGI程序开发繁琐,不好
    移值,所以用得比较少了。

(2)组件规范

1)什么是组件?

符合规范,具有部分功能,并且需要部署到相应的
容器里面才能运行的软件模块。
Servlet就是一个符合Servlet规范的组件,需要部署
到Servlet容器里面才能运行。

2)什么是容器?

符合规范,提供组件的运行环境的程序。
Servlet容器(比如Tomcat 雄猫)也是要符合
相应的Servlet规范。
Servlet容器提供Servlet组件的运行环境(提供
网络相关的服务)。

Servlet学习笔记01——什么是servlet?-LMLPHP

(了解)

a.tomcat也是一个简单的web服务器(其实,
大部分的Servlet容器同时也是一个简单的web
服务器)。
b.对于大型的web应用,最好要安装一个专业的
web服务器(比如apache web server),由这些
服务器来抗压(并发请求量很大),另外,将
静态资源(html)存放到这些web服务器上面,
Servlet容器只负责计算。

2.如何写一个Servlet?

step1.写一个java类,实现Servlet接口或者

继承HttpServlet抽象类。

step2.编译。

step3.打包(即将Servlet变成一个组件)

要创建一个具有如下结构的文件夹:
appname (应用名,可以自定义)
    WEB-INF (固定写法)
        classes(固定写法,存放 .class文件)
        lib(可以没有,存放 .jar文件)
        web.xml(固定写法,部署描述文件)

step4.部署 

将step3创建好的整个文件夹拷贝到容器指定的位置。
注:
    可以将step3创建好的整个文件夹使用jar
命令压缩成.war文件,然后再拷贝。

step5.启动容器,访问Servlet。

打开浏览器,输入
http://ip:port/appname/url-pattern。
注:
    ip,port:容器所在的机器的ip地址,容器所
        监听的端口号(tomcat默认的端口是
        8080)。
    url-pattern:在web.xml中定义。

3. Servlet运行过程

比如,在浏览器地址栏输入
http://ip:port/day01/hello?username=Giving
hello Giving

Servlet学习笔记01——什么是servlet?-LMLPHP

Servlet学习笔记01——什么是servlet?-LMLPHP

4. 常见问题及解决方式

(1)404

a. 404是一个状态码,表示服务器找不到对应的资源。

b. 产生的原因:
    b1.请求路径写错。
    b2.没有部署成功。

(2)500

a. 500也是一个状态码,表示服务器运行出错。
b. 产生的原因:
    b1.配置文件写错。
    b2.源代码出错。
        比如没有继承HttpServlet。
        代码不严谨,比如对用户的输入的数据
        没有做检查就做强制转换。

(3)405

a.405也是一个状态码,表示服务器找不到处理方法。
b.产生的原因:
    a.service方法不合法:

Servlet学习笔记01——什么是servlet?-LMLPHP

05-08 08:15