1、在web项目目录中创建了Web-INF子目录和在Web-INF子目录中创建了Web.xml文件。另外,还需要在Web-INF目录中事先创建好一个名为classes的子目录,编写的所有Servlet都应发布到这个classes子目录中。
2、动态页面:如果浏览器在不同时刻或者不同条件下访问Web服务器上的某个页面,浏览器所获得的页面内容可以发生变化,那么这个页面就称之为动态网页。
动态网页与静态网页最明显的区别就是针对页面的访问请求,Web服务器在不同条件下返回给客户端的网页内容是否总是相同。
3、动态网页程序可以完成各种程序逻辑控制、获取客户端传递的数据、对数据库进行操作、创建输出内容等功能。
4、Web程序开发就是指使用某种编程语言来编写完成上述功能的动态网页程序。
5、动态网页程序需要有一个专门的web服务器程序模块来解释执行,专门解释执行某种动态网页程序的web服务器程序习惯上被称为引擎,譬如ASP引擎、Servlet引擎、JSP引擎等等。只有引擎才会与浏览器直接进行信息交换,动态网页程序不直接与浏览器进行信息交换,动态网页程序只与引擎进行信息交换,由引擎将浏览器的信息传递给动态网页程序,并将动态网页程序生成的结果回送给浏览器。
6、编写与编译Servlet程序
一个Servlet程序就是一个在web服务器端运行的特殊Java类,这个特殊的Java类必须实现javax.servlet.Servlet接口,Servlet接口定义了Servlet引擎与Servlet程序之间通信的协议约定。
为了简化Servlet程序的编写,Servlet API中也提供了一个实现Servlet接口的最简单的Servlet类,其完整名称为javax.servlet.GenericServlet,这个类实现了Servlet程序的基本特征和功能。
Servlet API中还提供了一个专门用于HTTP协议的Servlet类,其名称是javax.servlet.http.HttpServlet,它是GenericServlet的子类,在GenericServlet类的基础上进行了一些针对HTTP特点的扩充。
显然,一个java类只要继承了GenericServlet类或者HttpServlet,它就是一个Servlet。为了充分利用HTTP协议的功能,在一般情况下,都应让自己编写的Servlet类继承HttpServlet类,而不是继承GenericServlet类。
7、service方法
当客户端每次访问一个Servlet程序时,Servlet引擎都将调用这个方法来进行处理,我们自己编写的Servlet程序通常只需要在HttpServlet类的基础上覆盖这个方法。service方法接受两个参数:一个是用于封装HTTP请求消息的对象,其类型为HttpServletRequest;
另一个是代表HTTP相应消息的对象,其类型为HttpServletResponse。
调用HttpServletResponse对象的getWriter方法可以获得一个文本输出流对象,向这个流对象中写入的数据将作为HTTP响应消息的实体内容部分发送给客户端。
8、Servlet调用步骤:
当在ie浏览器中输入:http://localhost:8080/ServletDemo
1)、ie与web服务器之间进行两个操作:
①连上web服务器
②发送http请求
2)、web服务器做的操作:
③解析出想访问的主机名
解析出想访问的web应用
解析出想访问的web资源
3)、web服务器与ServletDemo之间进行的操作:
④第一次创建servlet实例对象
调用servlet的init方法完成对象初始化
⑤创建代表请求request和代表相应的response,然后调用servlet的service方法向响应客户端的请求
⑥service方法执行,向代表客户端响应的response对象写入了向 客户机输出的数据。
然后service方法返回
⑦服务器从response中取出数据,构建一个http响应,回写给客户机
⑧web服务器回写给浏览器http响应
⑨ 浏览器解析http响应,提取数据显示
我的笔记中如果有不足之处,请博友一定给我指出来哦,非常感谢!保持学习,继续努力!