复习
1、web应用程序
Web应用程序只有在服务端存在的情况下才能工作。
服务端:装有web容器的一台电脑这是最低配置,这个web容器可以是tomcat
客户端:浏览器。
我们利用java所写出来的程序成为:java web应用程序。
2、日后我们会深入学习:java、servlet、jsp、html、css、js、dom、ajax
3、Web服务器tomcat服务器她也被称作:web容器和servlet容器。
a) Web服务器的目录结构:
bin,lib,webapps,word,temp,config,webapps所部属的web应用程序。
4、web工程(web应用程序)
Web工程的目录结构:
虚拟目录:文件夹,可以有:html、css、image
Jsp
WEB-INF 包含:1、classes
2、lib
3、标签
4、web.xml
黑体字表示必须包含的路径。因为这些文件要被tomcat解析,所以不能缺省、写错。
5、通过集成开发环境创建 web工程。
利用eclipse创建web工程需要指定服务器。
6、web应用程序中实现动态网页技术的是:servlet。
servlet是一个用java编写的类,它在服务器端运行,用以处理客户端发来的请求。Servlet继承自HttpServlet,这个类基于HTTP协议,因此可以通过,浏览器发送请求和接收反馈。也就是说还有其他的Servlet类型。基于其他的协议比如说文件协议、等等。
7、servlet中的两个对象:
request和 response。
Request这个对象在tomcat接收到请求的时候创建,并且把传递的数据都以键值对的形式封装在request中。
Response同样也是一个对象,创建的时机也是tomcat接收到请求的时候。但是此时是没有数据的,当servlet做出响应的时候,需要往客户端发送数据的时候才给response对象中设置数据。
这两个对象都是服务器的,由服务器接收到请求创建,并且传递给servlet程序。所以我们又称服务器为servlet容器或者web容器。【每有一个请求就在服务器端创建这样一组对象?交给servlet管理?】
8、servlet在web应用程序中要做的事情是:接受请求信息,调用业务层处理数据,根据处理结果作出响应。
9、对于我们创建的servlet类来说,必须在web.xml中配置一个servlet配置一个访问的映射路径。这个配置用以告诉服务器,说明存在对应的servlet,并且需要按照给定的路径进行访问。故:web.xml是应用程序和tomcat之间的桥梁。
10、如果在页面中写了web.xml中出现过的映射路径,tomcat服务器就会根据这个路径找到对应的servlet类,并根据这个类创建对应的对象,因为这个类是继承自HttpServlet的,在执行过程中,默认执行service()方法。由service()方法决定调用doGet()或者doPost()的方法,根据我们在form表单中method中填写的get或者post方法。因为我们重写了这两个方法,所以会调用我们重写以后的方法。
11、故:doGet()和doPost()是web应用程序的入口。
12、Servlet的生命周期:
(1)什么时候创建servlet这个对象?
默认是进行第一次请求的时候,也就是在浏览器中第一次填写这个路径或者按下了开启对应action的表单的提交按钮。
在web.xml中设置:<load-on-startup>0</load-on-startip>
Servlet对象就会在web容器启动的时候自动创建,
或者重新加载项目的时候创建。【什么情况算是重新加载项目?】
(2)执行这个对象应该完成相应任务(接收、处理、响应、doGet() doPost())
(3)什么时候销毁这个对象,(垃圾回收机制)(服务重新加载这个项目的时候,或者服务停止的时候)
修改web.xml文件,这个文件所对应的这个工程就会被服务器重新加载。
13、对于servlet对象的创建,我们一般采用默认的方式。【?】
14、练习:
请求一个servlet,在请求过程中携带数据。
Servlet中怎么接收数据,接收完数据以后如何处理,响应?
1、什么是servlet?
Servlet是一个用java编写的程序运行在服务器端用以处理客户端发送的请求。其响应过程是:1、接受客户端(浏览器)的请求信息
2、调用业务处理
3、翔客户端(浏览器)发送HTTP响应。
2、servlet的声明周期:
实例化:Servlet容器创建Servlet的实例
初始化:该容器调用init()方法
服务:如果请求Servlet,则容器调用service()方法
销毁:销毁实例之前调用destory()方法
不可用:销毁实例并标记为垃圾
3、所谓servlet的生命周期:
是指servlet的实例被创建直到消失之间的时间及各个阶段。
当服务器接收到客户端的请求时,Servlet容器负责创建servlet实例,以多线程的方式进行响应。
在servlet的实例的生命周期的各个阶段中可以调用3个方法:init(),service(),destroy()
4、 (1)servlet接口中定义了init()、service()、destroy()方法,要求每一个servlet对象都必
须实现这些方法。
(2)抽象类GenericServlet为所有的Servlet对象提供了一个通用基类。(不限于HTTP协议)
(3)针对HTTP协议的特性,抽象类HTTP协议的特性,抽象类HttpServlet为HTTP协议下的web应用提供了一个servlet的基类.
对应uml图,并不知道三角符号是实心还是空心。
5、HttpServlet类是一个抽象类,他实现了service()方法,我们写servlet继承HttpServlet用以写出可以响应Http请求的servlet。一般情况下要重写doGet(),和doPost()方法,用以真实响应客户端发来的请求,通常不重写service()方法。因为HttpServlet已经实现好了service方法,根据客户端的请求方式来调用doGet()或者doPost()方法。
6、javax.servlet包的接口为:
ServletConfig接口:在初始化过程中由Servlet容器使用
ServletContext接口:定义在Servlet中用于获取来自其容器的信息的方法。
ServletRequest接口:向服务器发送的请求信息
ServletResponse接口:客户端请求的响应
7、javax.servlet包的类为:
ServletInputStream类:用于从客户端读取二进制数据
ServletOutputStream类:用于将二进制数据发送到客户端
8、Javax.servlet.http包的接口为:
HttpServletRequest接口: 提供HTTP请求信息
HttpServletResponse接口:提供HTTP响应
9、Request对象
(1)封装了客户端对服务器的请求信息
(2)实现了javax.servlet.http.HttpServletRequest接口
(3)使用HTTP协议处理客户端的请求
10、request对象常用方法:
void setCharacterEncoding(String charsetname)//设置客户端发来的数据的编码格式
String getParameter(String name)
根据页面表单组件名称获取请求页面提交数据
String[] getParameterValues(String name)
获取 页面请求中一个表单组件对应多个值时的用户的请求数据
RequestDispatcher getRequestDispatcher(String path) 请求转发的路径
11、response对象
(1)由服务器端生成的响应,
(2)通过HTTP协议将响应发送给客户端
12、response对象常用方法:
void setContentType(String name) 设置响应生成的内容的类型。
例子:response.setContentType("text/html");
Void setContentType(String name)设置响应的字符编码格式。
例子:response.setCharacterEncoding("utf-8");
Void sendRedirect(String name) 发送一个响应给浏览器,指示其应请求另一个URL(重定向)