Servlet(1)
来源:互联网 发布:cc攻击防御 php 编辑:程序博客网 时间:2024/06/16 07:54
一、Servlet概述
2.Java Servletk可以动态地扩展服务器的能力,并采用请求-响应模式提供Web服务。
3.Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序。它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。4.Servlet装入Web服务器并在Web服务器内执行。
5.Servlet是以Java技术为基础的服务器端应用程序组件,Servlet的客户端可以提出请求并获得该请求的响应,他可以是任何Java程序、浏览器或者任何设备。
![](http://img.blog.csdn.net/20170116204616933?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ2NTE3NjQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1 当Web服务器接收到一个HTTP请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端。
2.执行效率高:Servlet请求到来的时候激活Servlet,请求处理完,等待新的请求,新的请求将生成一个线程而不是进程。
3.使用方便:Servlet可以轻松地处理HTML表单数据,并读取和设置HTTP头,处理Cookie,跟踪会话。
4.可扩展:Java语言是面向对象的编程语言,Servlet由Java语言编写,所以它继承了Java的面向对象的优点。在业务逻辑处理中,可以通过封装、继承等来扩展实际的业务需要,其扩展性非常强。
四、Servlet代码结构
说明:开发中常用到的方法是doGet()与doPost()。这两个方法分别处理Http的Get和Post请求。
五、Servlet的加载和实例化
1.Servlet容器负责实例化和加载Servlet,这个过程可以在Servlet容器加载时执行,可以在Servlet响应请求时执行,也可以在两者之间的任何时候执行
2.Servlet还可以实现ServletRequest和ServletResponse接口。ServletRequest接口可以让Servlet获取客户端请求中的参数,如request信息、协议类型等。Servlet可以从ServletInputStream流中读取request数据。ServletResponse接口允许Servlet设置response headers和status codes。实现这个接口可以使Servlet能访问ServletOutputStream流,用来向客户端返回数据。
Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面。它担当Web浏览器或其他http客户程发出请求、与http服务器上的数据库或应用程序之间交互的中间层。
1.Servlet是用Java编写的Server端程序, 它与协议和平台无关。Servlet运行于Java服务器中。2.Java Servletk可以动态地扩展服务器的能力,并采用请求-响应模式提供Web服务。
3.Servlet是使用Java Servlet应用程序设计接口及相关类和方法的Java程序。它在Web服务器上或应用服务器上运行并扩展了该服务器的能力。4.Servlet装入Web服务器并在Web服务器内执行。
5.Servlet是以Java技术为基础的服务器端应用程序组件,Servlet的客户端可以提出请求并获得该请求的响应,他可以是任何Java程序、浏览器或者任何设备。
二、Servlet运行原理
1 当Web服务器接收到一个HTTP请求时,它会先判断请求内容——如果是静态网页数据,Web服务器将会自行处理,然后产生响应信息;如果牵涉到动态数据,Web服务器会将请求转交给Servlet容器。此时Servlet容器会找到对应的处理该请求的Servlet实例来处理,结果会送回Web服务器,再由Web服务器传回用户端。
2 针对同一个Servlet,Servlet容器会在第一次收到http请求时建立一个Servlet实例,然后启动一个线程。第二次收到http请求时,Servlet容器无须建立相同的Servlet实例,而是启动第二个线程来服务客户端请求。所以多线程方式不但可以提高Web应用程序的执行效率,也可以降低Web服务器的系统负担。
三、Servlet的优点
2.执行效率高:Servlet请求到来的时候激活Servlet,请求处理完,等待新的请求,新的请求将生成一个线程而不是进程。
3.使用方便:Servlet可以轻松地处理HTML表单数据,并读取和设置HTTP头,处理Cookie,跟踪会话。
4.可扩展:Java语言是面向对象的编程语言,Servlet由Java语言编写,所以它继承了Java的面向对象的优点。在业务逻辑处理中,可以通过封装、继承等来扩展实际的业务需要,其扩展性非常强。
四、Servlet代码结构
package hu;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/ServletDemo01")public class ServletDemo01 extends HttpServlet { private static final long serialVersionUID = 1L; //初始化方法 public void init() throws ServletException{ } //处理HTTP Get请求 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } //处理HTTP Post请求 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } //处理HTTp Put请求 protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } //处理HTTP Delete方法 protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } //销毁方法 public void destory(){ super.destroy(); }}ServletDemo01类显示了一个Servlet对象的代码结构,其中ServletDemo01继承HttpServlet类被声明为一个Servlet对象。该类包含6个方法,其中init()方法与destory()方法为Servlet初始化与声明周期结束所调用的方法,doGet()、doPost()、doPut()和doDelete()方法为Servlet针对处理不同的HTTP请求类型所提供的方法。
说明:开发中常用到的方法是doGet()与doPost()。这两个方法分别处理Http的Get和Post请求。
五、Servlet的加载和实例化
1.Servlet容器负责实例化和加载Servlet,这个过程可以在Servlet容器加载时执行,可以在Servlet响应请求时执行,也可以在两者之间的任何时候执行
2.Servlet 容器加载完Servlet之后,首先必须初始化它。初始化时Servlet调用init()方法,该方法可以以一个ServletConfig类型的引用为参数,该参数可以让Servlet从部署描述符文件中读取一些键值对形式的参数值,以初始化这些数据,ServletConfig对象的引用还可以让Servlet接受ServletContext对象。
六、Servlet处理请求
2.Servlet还可以实现ServletRequest和ServletResponse接口。ServletRequest接口可以让Servlet获取客户端请求中的参数,如request信息、协议类型等。Servlet可以从ServletInputStream流中读取request数据。ServletResponse接口允许Servlet设置response headers和status codes。实现这个接口可以使Servlet能访问ServletOutputStream流,用来向客户端返回数据。
0 0
- Servlet & JSP(1) Servlet
- 【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期
- Servlet总结(1)--Servlet的生命周期
- Servlet学习(1)
- SERVLET(1)
- Servlet分析(1)
- servlet入门(1)
- Servlet 过滤器(1)
- Servlet(1)
- JavaWeb Servlet(1)
- Servlet总结(1)
- servlet练习(1)
- Servlet基础(1)
- Servlet(1)入门
- JSP&Servlet--Servlet(1)
- javaweb-day05-1(Servlet - GenericServlet、Servlet调用过程图)
- 马士兵 Servlet & JSP(1) Servlet (源代码)
- Java Web基础知识之Servlet(1):初识Servlet
- 设计模式之策略模式
- linux设置IP
- RxJava框架
- [BZOJ2111][ZJOI2010]Perm 排列计数(组合数学+lucas定理)
- Python学习
- Servlet(1)
- Caffe新手教程傻瓜系列(9):训练和测试自己的图片
- 表示不同文件类型的魔术数字
- JZOJ 3871. 【NOIP2014八校联考第4场第1试10.19】无聊的游戏(game)
- influxdb快速入门
- hive权限控制介绍
- Linux下java程序的依赖运行(上)
- winform程序页面打开初始化时各事件的执行顺序
- 深入理解CSS中的层叠上下文和层叠顺序