`
prodream
  • 浏览: 105665 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

servlet-动态页面

    博客分类:
  • J2EE
阅读更多

一、动态页面与动态html页面的区别<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

动态页面:如果浏览器在不同时刻或不同条件下访问web服务器上的某个页面浏览器所获得的页面内容可以发生变化,那么这个页面称之为动态页面

动态html页面:使用客户端脚本实现的视觉上变化,他的动态是浏览器程序执行实现的结果,而不是源文件改变后的结果

### 查看刷新后的源代区码就可以看出别

二、动态页面程序与引擎(1)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1026" style="WIDTH: 513pt; HEIGHT: 268.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata></shape>

浏览器、引擎、API、动态网页之间关系

<shape id="_x0000_i1025" style="WIDTH: 524.25pt; HEIGHT: 260.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title=""></imagedata></shape>

三、动态页面程序与引擎(2)

@@ 客户端向web服务器请求的url资源路径,不仅可以指向服务器端的一个静态html文件,还可以指向服务器端的某种可以被解释运行的程序文件

@@ 如果客户端请求的url后缀名符合某个引擎所处理的资源名的特征,web服务器将把请求转交给相应的引擎去处理,然后由引擎去调用某个程序文件,并将动态产生的内容返回给客户端

@@ 动态程序文件不仅仅可以创建用于返回个浏览器的动态变化内容,还可以实现对数据库的操作

四、servlet概述


servlet是一种独立于平台和协议的服务端的java运用程序,可以生成动态的web页面。它担当web浏览器或其他http客户程序发出请求与该web服务器上的数据库或运用程序之间的中间层。

servlet与传统的从命令行idong的java御用程序不同,servlet由web服务器进行加载


五、servlet特点

1.他们不是独立的运用程序,没有main()方法
2.他们不是由用户或程序员调用,而是由另一个运用程序(容器)调用。
3.他们都有一个存储周期,包含init()和destrou()方法
4.高效
在传统CGI中,每一个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在servlet中,每个请求由一个轻量级的java线程处理器(而不是重量级的操作系统进程)。
5.方便
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。


六、servlet与JSP的比较
1.JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。
2.javax.servlet.http提供的HTTP Servlet应用编程接口。
  HTTP Servlet 使用一个 HTML 表格来发送和接收数据。要创建一个 HTTP Servlet,请扩展 HttpServlet 类, 该类是用专门的方法来处理 HTML 表格的 GenericServlet 的一个子类。 HTML 表单是由 <FORM> 和 </FORM> 标记定义的。表单中典型地包含输入字段(如文本输入字段、复选框、单选按钮和选择列表)和用于提交数据的按钮。当提交信息时,它们还指定服务器应执行哪一个Servlet(或其它的程序)。 HttpServlet 类包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是继承的。
  (1) init() 方法
  在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,以在启动服务器或客户机首次访问 Servlet 时装入 Servlet。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。
  缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法来覆盖它,典型的是管理服务器端资源。 例如,可能编写一个定制 init() 来只用于一次装入 GIF 图像,改进 Servlet 返回 GIF 图像和含有多个客户机请求的性能。另一个示例是初始化数据库连接。缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应确保已完成了 init() 方法。
  (2) service() 方法
  service() 方法是 Servlet 的核心。每当一个客户请求一个HttpServlet 对象,该对象的service() 方法就要被调用,而且传递给这个方法一个"请求"(ServletRequest)对象和一个"响应"(ServletResponse)对象作为参数。 在 HttpServlet 中已存在 service() 方法。缺省的服务功能是调用与 HTTP 请求的方法相应的 do 功能。例如, 如果 HTTP 请求方法为 GET,则缺省情况下就调用 doGet() 。Servlet 应该为 Servlet 支持的 HTTP 方法覆盖 do 功能。因为 HttpServlet.service() 方法会检查请求方法是否调用了适当的处理方法,不必要覆盖 service() 方法。只需覆盖相应的 do 方法就可以了。
  当一个客户通过HTML 表单发出一个HTTP POST请求时,doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。
当一个客户通过HTML 表单发出一个HTTP GET请求或直接请求一个URL时,doGet()方法被调用。与GET请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。
  Servlet的响应可以是下列几种类型:
   一个输出流,浏览器根据它的内容类型(如text/HTML)进行解释。
   一个HTTP错误响应, 重定向到另一个URL、servlet、JSP。
  (3) destroy() 方法
  destroy() 方法仅执行一次,即在服务器停止且卸装Servlet 时执行该方法。典型的,将 Servlet 作为服务器进程的一部分来关闭。缺省的 destroy() 方法通常是符合要求的,但也可以覆盖它,典型的是管理服务器端资源。例如,如果 Servlet 在运行时会累计统计数据,则可以编写一个 destroy() 方法,该方法用于在未装入 Servlet 时将统计数字保存在文件中。另一个示例是关闭数据库连接。
  当服务器卸装 Servlet 时,将在所有 service() 方法调用完成后,或在指定的时间间隔过后调用 destroy() 方法。一个Servlet 在运行service() 方法时可能会产生其它的线程,因此请确认在调用 destroy() 方法时,这些线程已终止或完成。
  (4) GetServletConfig()方法
  GetServletConfig()方法返回一个 ServletConfig 对象,该对象用来返回初始化参数和ServletContext。ServletContext 接口提供有关servlet 的环境信息。
  (5) GetServletInfo()方法
  GetServletInfo()方法是一个可选的方法,它提供有关servlet 的信息,如作者、版本、版权。
当服务器调用sevlet 的Service()、doGet()和doPost()这三个方法时,均需要 "请求"和"响应"对象作为参数。"请求"对象提供有关请求的信息,而"响应"对象提供了一个将响应信息返回给浏览器的一个通信途径。
javax.servlet 软件包中的相关类为ServletResponse和ServletRequest,而javax.servlet.http 软件包中的相关类为HttpServletRequest 和 HttpServletResponse。
  Servlet 通过这些对象与服务器通信并最终与客户机通信。Servlet 能通过调用"请求"对象的方法获知客户机环境,服务器环境的信息和所有由客户机提供的信息。Servlet 可以调用"响应"对象的方法发送响应,该响应是准备发回客户机的。

<shape id="_x0000_i1027" style="WIDTH: 513.75pt; HEIGHT: 268.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png" o:title=""></imagedata></shape>

分享到:
评论

相关推荐

    javax.servlet-api-3.1.0.jar

    在Java Web开发中,`javax.servlet-api-3.1.0.jar`是一个至关重要的组件,它代表了Servlet API的3.1.0版本,是实现服务器端动态网页处理的核心库。Servlet API是Java EE规范的一部分,由Java Community Process (JCP...

    servlet-api 各种版本

    - 支持动态注册Servlet和过滤器,无需修改web.xml配置文件。 4. **Servlet 2.5**: - 发布于2006年,兼容Java EE 5标准。 - 保持了向后兼容性,同时引入了一些新特性,如依赖注入(Dependency Injection)和注解...

    javax-servlet-api-3.0.1.jar

    7. `javax.servlet.jsp`包:虽然不是直接包含在Servlet API中,但通常与Servlet一起使用,提供了一个用于创建动态网页的简化的编程模型,如JSP页面。 在实际开发中,`javax-servlet-api-3.0.1.jar`通常作为项目的...

    servlet-api.jar和jsp-api.jar文件

    Servlet-api.jar和jsp-api.jar是Java Web开发中两个非常重要的库文件,它们包含了Servlet和JSP(JavaServer Pages)的相关API,使得开发者可以构建动态Web应用程序。这两个文件通常由Java EE(Enterprise Edition)...

    javax.servlet-api-4.0.1.jar

    在JSP页面中,通过`&lt;jsp:useBean&gt;`或`&lt;jsp:taglib&gt;`指令引入标签库,然后就可以在页面中自由使用自定义标签了。 在Servlet API 4.0.1中,自定义标签可以利用新的异步功能,比如在处理请求时开启异步上下文...

    jsp-api.jar和servlet-api依赖包

    JSP(JavaServer Pages)和Servlet是Java EE(Enterprise Edition)中的两个核心技术,它们主要用于构建动态Web应用程序。这两个API,即`jsp-api.jar`和`servlet-api.jar`,是开发基于Java的Web应用时不可或缺的库...

    servlet-api-src.jar

    同时,Servlet API还与Java的JSP(JavaServer Pages)技术紧密结合,使得开发者可以在HTML页面中嵌入Java代码,实现页面的动态渲染。 总的来说,Servlet-api-src.jar是开发基于Servlet技术的Web应用必不可少的资源...

    servlet-2_4-fr-spec-doc.rar_doc_servlet 2.4 spec_servlet api_ser

    Servlet 2.4规范支持JSP 2.0,允许开发者在页面中混合HTML和Java代码,实现动态网页。 通过学习和理解Servlet 2.4规范,开发者能够创建高效、可扩展的Web应用,并确保其兼容性与各种Servlet容器。虽然Servlet 2.4...

    servlet-api-3.0.zip

    它可以用于全局配置,如安全约束、错误页面、MIME映射等。 6. **安全性**: - Servlet 3.0增强了安全性,提供了更细粒度的访问控制,如`@DeclareRoles`注解声明用户角色,以及`&lt;security-constraint&gt;`元素定义安全...

    servlet-api和jsp-api

    4. `javax.servlet.jsp.jsp-api`包下的其他接口和类:例如`PageContext`,它为JSP页面提供了一个统一的接口,可以访问Servlet和JSP的上下文对象。 在Tomcat 7.0环境中,servlet-api.jar和jsp-api.jar是运行Java Web...

    javax.servlet-3.0

    【标题】"javax.servlet-3.0" 是Java服务器页面(JSP)和Servlet技术的一个重要版本,这个版本主要关注于提升Web应用的性能、可扩展性和灵活性。它是由Java Community Process (JCP) 通过JSR(Java Specification ...

    jsp-api.jar(2.3)与servlet-api.jar (3.1)

    JSP 2.3是用于创建动态网页的Java平台标准,而Servlet 3.1则是用于构建Web应用程序的服务器端编程接口。这两个API版本的提供,意味着我们可以利用这些更新来开发更高效、功能更强大的Web应用。 **JSP API 2.3知识点...

    jsp+servlet -> 简单注册页面

    jsp+servlet -&gt; 简单注册页面jsp+servlet -&gt; 简单注册页面jsp+servlet -&gt; 简单注册页面jsp+servlet -&gt; 简单注册页面jsp+servlet -&gt; 简单注册页面jsp+servlet -&gt; 简单注册页面

    servlet-api.jar

    Servlet可以在服务器上接收HTTP请求,处理数据,生成动态内容,然后将结果返回给客户端。相比于客户端的Java Applet,Servlet更专注于服务器端的功能,如处理数据库连接、业务逻辑和会话管理。 Tomcat是一个流行的...

    jsp-api.jar和servlet-api.jar

    JSP (JavaServer Pages) 是一种Java技术,允许开发人员在HTML页面中嵌入Java代码,以创建动态Web内容。JSP-api.jar包含JSP规范定义的接口和类,例如`javax.servlet.jsp.*`和`javax.servlet.http.*`包下的类。这些...

    servlet-api 集合

    这些不同版本的Servlet-API库反映了Java Web技术的演进,从最初的HTTP处理到现在的高级特性,如异步处理和WebSocket,都为开发者提供了强大的工具来构建动态、交互式的Web应用程序。理解并掌握各个版本的区别和特点...

    servlet-api-2.5-6.1.4.jar.zip(125 k).ZIP

    - 错误页面处理:可以通过注解或web.xml配置错误处理页面,使得错误处理更加优雅。 此外,压缩包中还包含了一个`servlet.LICENSE.txt`文件,这很可能是关于Servlet API 2.5的许可证信息,通常会声明该API的使用、...

    activation.jar、jsp-api.jar、servlet-api.jar、mail.jar

    JSP-api.jar包含了JSP规范定义的接口和类,比如`javax.servlet.jsp.*`包下的类,这些类和接口提供了页面指令、脚本元素、表达式语言等JSP特性。开发者可以使用这些API来创建自定义标签库或者实现自定义JSP页面生命...

    servlet-api-2.5.jar和jsp-api-2.1.jar

    JSP API 2.1是JSP规范的第五个版本,它是用来创建动态HTML页面的Java技术。JSP 2.1的关键特性包括: 1. **JSP标签库**:JSP 2.1支持自定义标签库(Tag Libraries),如JSTL(JavaServer Pages Standard Tag Library...

    使用jsp-servlet-service-dao四层结构完成用户信息的增删改查操作

    - **修改页面**:用户可以编辑自己的信息,Servlet接收更新请求,Service层处理数据更新,DAO执行相应的SQL更新语句。 - **权限控制**:为了防止普通用户删除其他用户,系统需要实施权限控制。这通常在Servlet中实现...

Global site tag (gtag.js) - Google Analytics