JAVA Servlet笔记

原创 2017年01月03日 10:49:21

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对象,它们属于两个独立的请求

和响应过程。






版权声明:本文为博主原创文章,未经博主允许不得转载。

JavaWeb之Servlet课堂笔记[自己总结的]

1、什么是Servlet? Servlet是javax.servlet包下的一个接口 而Servlet程序是我们自定义的java类,它必须实现Servlet接口,或者继承GenericServle...
  • u013296413
  • u013296413
  • 2014年07月23日 13:32
  • 687

韩顺平2011细说Servlet笔记1

韩顺平2011细说Servlet笔记1 2012-06-16 18:18 1278人阅读 评论(0) 收藏 举报 servlettomcat浏览器web服务stringweb u...
  • p656456564545
  • p656456564545
  • 2013年11月03日 10:54
  • 1931

Servlet学习笔记

最近在看Servlet的相关知识,好记性不如烂笔头,有些东西还是记下来比较靠谱。。。 一、Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是...
  • ls5718
  • ls5718
  • 2016年06月09日 15:16
  • 4624

Servlet详解——学习笔记(一)

此为是我接触Java web的第一篇博客,希望能坚持
  • tongxinxiao
  • tongxinxiao
  • 2014年05月10日 16:15
  • 876

Servlet学习笔记(一)

Servlet一、服务器1.Tomcat(Apache)2.JBoss3.WebLogic4.Webphare 二、Tomcat的使用1.Linux下:(1)配置环境变量:安装JDK、配置CLASS_...
  • qq_20112609
  • qq_20112609
  • 2017年03月23日 10:59
  • 122

Servlet学习笔记《三》

关于servlet处理客户端请求的转发forward,include,redirect的区别 以及在任意目录部署web应用程序时,配置文件的书写...
  • dabai_cai
  • dabai_cai
  • 2017年03月23日 00:07
  • 629

尚学堂马士兵servlet/JSP笔记(二、servlet)

分类: s 目录(?)[+] 一、servlet相关的包 tomcat8.0里面的servlet-api.jar在tomcat安装目录下的lib目录下;在写部署在...
  • cztq15
  • cztq15
  • 2014年05月24日 23:21
  • 726

JSP九大内置对象与Servlet学习笔记

JSP九大内置对象用途、作用域、生命周期、常用方法、重点知识总结,JSP与Servlet关系心得笔记,望各位大神提出宝贵意见。...
  • zhangliangzi
  • zhangliangzi
  • 2015年11月21日 16:04
  • 4935

JavaWeb学习总结——JavaWEB_Servlet(尚硅谷_佟刚老师)

JavaWEB_Servlet(尚硅谷_佟刚老师) (本文档是在学习尚硅谷_佟刚老师的JavaWeb教学视频时写的,特此感谢) 1. 使用 JavaEE 版的 Eclipse 开发动态的 WEB 工程...
  • lishuan182
  • lishuan182
  • 2016年10月08日 22:37
  • 2324

Servlet和JSP学习笔记

Servlet和JSP学习笔记   2012-10-29 21:33:48|  分类: Servlet/jsp|字号 订阅           Java EE概述:...
  • psiitoy
  • psiitoy
  • 2013年12月13日 01:54
  • 1394
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA Servlet笔记
举报原因:
原因补充:

(最多只允许输入30个字)