dream_follower的博客

一个不羁的程序员的学习历程

JAVA Servlet笔记

Servlet技术是基于Java编程语言的Web服务端编程技术,一个Servlet程序就是一个在Web服务器端运行的特殊Java类,这个特殊的Java类必须实现javax.servlet.Servlet接口,

Servlet接口定义了Servlet引擎与Servlet程序之间通信的协议约定。为了简化Servlet程序的的编写,ServletAPI中也提供了实现Servlet接口的最简单的Servlet类,其完整名称为

javax.servlet.GenericServlet,这个类实现了Servlet程序的基本特征和功能。Servlet API中还提供了一个专用于HTTP协议的Servlet类,其名称是javax.servlet.http.HttpServlet,它是GenericServlet类的子类,为了充分利用HTTP协议的功能,一般情况下,都应让自己编写的Servlet类继承HttpServlet类。

Servlet的创建

   创建servlet的时候,需要继承HttpServlet类。同时需要到如今Servlet API的两个包:javax.servlet和javax.servlet.http。javax.servlet包提供了控制Servlet生命周期所必需的Servlet接口,是编写Servlet时必须实现的;javax.servlet.http包提供了从Servlet接口派生出的专门用于处理HTTP请求的抽象类和一般的工具类。

根据数据的发送方式,覆盖doGet()、doPost()方法之一或全部。doGet()和doPost()方法都有两个参数,分别为HttpServletRequest和HttpServletResponse类型。这两个

参数分别用于表示客户端的请求和服务器端的响应。通过HttpServletRequest,可以从客户端中获得发送过来的信息;通过HttpServletResponse,可以让服务器端对客户端做出

响应。

Servlet的生命周期

ServletAPI中定义了关于Servlet生命周期的3个方法

init():用于Servlet初始化。当容器创建Servlet实例以后,会自动调用此方法。//只运行一次

service():用于服务处理。当客户端发出请求时,容器会自动调用此方法进行处理,service()方法有2个参数,分别接受ServletRequest接口和ServletResponse接口的对象来处理

请求和响应。

destroy():用于销毁Servlet。当容器销毁Servlet实例时自动调用此方法,释放Servlet实例,清除当前Servlet所持有的资源。

1、装载Servlet:该项操作一般是动态执行。

2、创建一个Servlet实例;容器创建Servlet的一个实例对象

3、初始化:容器调用init()

4、服务:当容器接收到对此Servlet请求的时,将调用service()方法响应客户的请求。

5、销毁:容器调用destroy()方法销毁Servlet实例

HttpServletRequest接口中用于读取表单数据的方法

getParameter(String name)     //单值读取

getParameterValues(String name) //多个值的读取返回字符串的数组

getParameterNames() //返回Enumeration 的形式参数名列表

getReader()/getInputStream() //获得输入流。如果以这种方法读取数据,不能保证可以同时使用getParameter().当数据来自于上载的文件时,可以用此方法。

重定向和请求转发

重定向是通过HttpServletRespnse对象的sendRedirect()来实现

请求转发使用RequestDispatcher接口中的forward()方法来实现,RequestDisplatcher()接口中有一个include()方法:引入其他Servlet

RequestDispatcher是一个接口,通过使用HttpRequest对象的getRequestDispatcher()方法可以获得该接口的实例对象。

forward()和sendRedirect()两者的区别

forward()方法只能将请求转发给同一个web应用中的组件,而sendRedirect方法不仅可以重定向但当前应用程序中的其他资源,还可以重定向到其他站点的资源。

sendRedirect()方法重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL 地址变成重定向的目标URL,而调用forward()方法的请求转发过程

结束后,浏览器地址栏保持初始的URL地址不变。

forward()方法的调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个请求和响应过程;而sendRedirect()方法的调用者和被调用者使用各自的

request和response对象,他们属于同一个请求和响应过程;而sendRedirect()方法的调用者和被调用者所以用各自的request对象和response对象,它们属于两个独立的请求

和响应过程。






阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dream_follower/article/details/53991830
个人分类: JAVA Web
想对作者说点什么? 我来说一句

Java servlet课堂笔记

2009年12月17日 25KB 下载

java web笔记servlet生成验证码

2015年03月11日 11KB 下载

动力节点JAVAWEB全套PDF笔记

2018年04月15日 27.58MB 下载

servlet源码和笔记

2013年04月25日 14.48MB 下载

servlet入门经典笔记

2011年07月26日 76KB 下载

web开发笔记

2015年08月09日 19KB 下载

韩顺平 细说servlet 笔记 完整版

2012年12月07日 1.3MB 下载

韩顺平2011细说servlet完整笔记

2013年04月07日 3.57MB 下载

没有更多推荐了,返回首页

不良信息举报

JAVA Servlet笔记

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭