初识servlet

servlet

复习

1、web应用程序

Web应用程序只有在服务端存在的情况下才能工作。

服务端:装有web容器的一台电脑这是最低配置,这个web容器可以是tomcat

客户端:浏览器。

我们利用java所写出来的程序成为:java web应用程序。

2、日后我们会深入学习:javaservletjsphtmlcssjsdomajax

3、Web服务器tomcat服务器她也被称作:web容器和servlet容器。

a) Web服务器的目录结构:

bin,lib,webapps,word,temp,config,webapps所部属的web应用程序。

4、web工程(web应用程序)

Web工程的目录结构:

虚拟目录:文件夹,可以有:htmlcssimage

  Jsp

  WEB-INF 包含:1classes

  2lib

  3、标签

  4web.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、servletweb应用程序中要做的事情是:接受请求信息,调用业务层处理数据,根据处理结果作出响应。

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、 (1servlet接口中定义了init()service()destroy()方法,要求每一个servlet对象都必

须实现这些方法。

2)抽象类GenericServlet为所有的Servlet对象提供了一个通用基类。(不限于HTTP协议)

3)针对HTTP协议的特性,抽象类HTTP协议的特性,抽象类HttpServletHTTP协议下的web应用提供了一个servlet的基类.

对应uml图,并不知道三角符号是实心还是空心。

5HttpServlet类是一个抽象类,他实现了service()方法,我们写servlet继承HttpServlet用以写出可以响应Http请求的servlet。一般情况下要重写doGet(),doPost()方法,用以真实响应客户端发来的请求,通常不重写service()方法。因为HttpServlet已经实现好了service方法,根据客户端的请求方式来调用doGet()或者doPost()方法。

6javax.servlet包的接口为:

ServletConfig接口:在初始化过程中由Servlet容器使用

ServletContext接口:定义在Servlet中用于获取来自其容器的信息的方法。

ServletRequest接口:向服务器发送的请求信息

ServletResponse接口:客户端请求的响应

7javax.servlet包的类为:

ServletInputStream类:用于从客户端读取二进制数据

ServletOutputStream类:用于将二进制数据发送到客户端

8Javax.servlet.http包的接口为:

HttpServletRequest接口: 提供HTTP请求信息

HttpServletResponse接口:提供HTTP响应

9Request对象

1)封装了客户端对服务器的请求信息

2)实现了javax.servlet.http.HttpServletRequest接口

3)使用HTTP协议处理客户端的请求

10request对象常用方法:

void setCharacterEncoding(String charsetname)//设置客户端发来的数据的编码格式

String getParameter(String name)

根据页面表单组件名称获取请求页面提交数据

String[] getParameterValues(String name)

获取 页面请求中一个表单组件对应多个值时的用户的请求数据

RequestDispatcher getRequestDispatcher(String path) 请求转发的路径

11response对象

1)由服务器端生成的响应,

2)通过HTTP协议将响应发送给客户端

12response对象常用方法:

void setContentType(String name) 设置响应生成的内容的类型。

例子:response.setContentType("text/html");

Void setContentType(String name)设置响应的字符编码格式。

例子:response.setCharacterEncoding("utf-8");

Void sendRedirect(String name) 发送一个响应给浏览器,指示其应请求另一个URL(重定向)

 

原文地址:https://www.cnblogs.com/letben/p/5185229.html