Servlet技术

JSP的作用

    为了简化起见,某种程度上,可以将servlet看做是含有HTML的Java程序;将JSP看作是含有Java代码的HTML页面。

    JSP文档只不是编写servlet的另一种方式。JSP页面会被翻译成servlet,servlet会被编译,在请求期间运行的就是servlet。

    对于面向处理(processing)的任务,servlet是最佳选择,而对于面向表示(presentation)的任务,JSP是最佳选择。

生成HTML的servlet

    HTTP响应由状态行、一个或多个报头、一个空行和实际的文档以此次序构成。报头的出现次序并不重要,servlet会缓冲报头数据,将他们一次发送到客户端,因此,即使在设定报头之后,仍旧可以设置状态代码(属于返回内容的第一行)。但是,servlet不是一定要缓冲文档本身,因为对于篇幅较长的页面,用户或许只希望看到部分结果。servlet引擎可以缓冲部分输出,但并未规定缓冲区的大小。可以使用HttpServletResponse的getBufferSize方法去顶这个大小,或使用setBufferSize指定这个大小。也可以在缓冲区天慢慢,要发往客户时,对报头进行设置。如果不确定是否已经发送出去,也可以使用isCommitted方法来检查。即使如此,最佳方案还是将setContentType行放在任何使用PrintWriter的行之前。

servlet的生命周期

    服务器只创建每个servlet的单一实例,每个用户请求都会引发新的线程——将用户请求交付给相应的doGet或doPost进行处理。

    get请求表示要从服务器获取数据;post请求表示向服务器传递数据。

  Init方法

    默认情况下,servlet对象是在第一次被请求的时候创建的,之后就驻留在web服务器管理的内存中。首次创建时,它的init方法会得到调用,因此,init是放置一次性设置代码的地方。servlet一般在用户首次调用对应的servlet的URL时创建init方法,但也可以指定servlet在服务器启动后载入。

  Service方法

    在这之后,针对每个用户请求,都会创建一个线程,该线程调用前面创建的实例的service方法。之后,由service方法依据收到的Http请求的类型,调用doGet,doPost或其他doXXX方法。如果需要在servlet中等同地处理post和get请求,应该让doPost调用doGet即可,而不是覆盖service方法。首先,之后还可以加入doPut,doTrace等,支持其他HTTP请求方法。其次,还可以通过添加getLastModified方法,加入对修改日期的支持,由于getLastModified方法由默认的service方法调用所以覆盖service方法也就失去了这个选项。最后,service提供对HEAD、OPTION和TRACE请求的自动支持。

  Destroy方法

    服务器可能会因为管理员要求或者服务器长时间空闲决定移除之前载入的servlet实例。在服务器移除servlet的实例之前,它会调用servlet的destroy方法,从而使得servlet有机会关闭数据库连接,停止后台运行的线程、将cookie列表的点击计数写入到磁盘,并执行其他清理活动。要意识到Web服务器有可能崩溃,所以不要讲destroy机制作为向磁盘上保存状态的唯一机制。

  ServletConfig对象

    与Servlet对象一一对应,封装Servlet的初始化信息

    在doPost/doGet方法中获取ServletConfig对象:this.getServletConfig()

    <servlet>

        <servlet-name>sdaasdada</servlet-name>

        <servlet-class>ghjhgjhghg</servlet-class>

        <init-param>

             <param-name>username</param-name>

             <param-name>password</param-name>

             <param-value>123</para-value>getInitParamter("username");

        </init-param>

    </servlet>

    获取初始化参数:this.getServletConfig().

Servlet的映射方式

    Servlet的请求路径是虚拟的,与项目路径无关

        扩展映射:*.do

        路径映射:/test/*

        http://localhost:8080/n01/test.do   会调用下面的路径(路径映射优先)

在servlet中获取表单数据

    单个值的读取:调用HttpServletRequest的getParameter方法,提供大小写敏感的参数名作为方法的参数。

    多个值的读取:调用getParameterValues方法返回字符串数组。

    参数名的查找:调用getParameterNames以Enumeration的形式返回这种列表,其中每一项都可以转换成String,并可以用在getParameter或getParameterValues调用中。若当前请求中没有参数,getParameterNames返回空的Enumeration(不是null)。(Enumeration只是一个接口,确保实际的类实现了hasMoreElements和nextElement方法)它不会去报具体的实现采用何种次序。getParameterMap可以替代此方法。

请求转发、重定向、包含

    参照http://www.blogjava.net/kxx129/archive/2006/09/07/68050.html

时间: 2024-11-06 14:37:39

Servlet技术的相关文章

CGI与Servlet技术对比

CGI:Common Gateway Interface,通用网关接口. CGI处理步骤 首先,客户端(即Web浏览器)根据某资源的URL向Web服务器提出请求:Web服务器的守护进程(HTTP Daemon)将此请求的参数通过标准输入和环境变量传递给指定的CGI程序,并启动此应用程序进行处理,如要存取数据库服务器上数据库的数据,则向数据库服务器发出处理请求,数据库服务器将执行结果返回给CGI程序,CGI程序把处理结果通过标准输出返回给HTTP Daemon进程,再由HTTP Daemon进程返

漫谈Servlet技术

1.要谈到Servlet技术,不得不先谈谈动态网页的概念. 编写过网页的人都知道,浏览器能够根据HTML静态标记语言来显示各式各样的网页.但是如果我们需要在网页上完成一些业务逻辑:比如登陆验证.或者说网页显示的内容在服务器的数据库中.如果是这样,除了负责显示的HTML标记之外,必须还要有完成这些业务功能的代码存在.这种网页我们就叫做动态网页. 对于静态网页而言,服务器上存在的是一个个纯HTML文件.当客户端浏览器发出HTTP请求时,服务器可以根据请求的URL找到对应的HTML文件,并将HTML代

Java Web之Servlet技术

1.Servlet基础 针对Servlet技术开发,Sun公司提供了一些列接口和类,其中最重要的是javax.servlet.Servlet接口,两个重要的包是javax.servlet和javax.servlet.http,Servlet就是一种实现了Servlet接口的类,它由Web容器(Tomcat/Jetty等)负责调用并创建,用于接收和响应用户请求.Servlet接口中定义了5个抽象方法: 方法 功能 void init(ServletConfig config) 负责Servlet初

【Java】Java Servlet 技术简介

Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么,它们是如何工作的,如何使用它们来创建您能够想像到的任意复杂度的 Web 应用程序,以及作为一名专业编程人员,您如何才能最有效地使用 servlet. 5 评论: Roy W. Miller ([email protected]), 独立的软件开发辅导员.程序员和作者, RoleModel Software 2004 年 12 月 2

Java Servlet技术

当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要.Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客户端平台来交付动态用户体验.与此同时,开发人员也在研究如何使用服务器平台实现这个目标.开始的时候,公共网关接口(Common Gateway Interface ,CGI)脚本是生成动态内容的主要技术.虽然使用得非常广泛,但CGI脚本技术有很多的缺陷,这包括平台相关性和缺乏可扩展性.为了避免这些局限性,Java Servlet技术应运而生.它能够以一种可移植的方

javaSE学习笔记—Servlet技术(11)

如果大家要开发一个动态的网站,那么就必须要学习一种动态的网页开发技术.那么在SUN提供的JavaEE中主要包含两种开发动态网页的技术:Servlet和JSP技术. Servlet技术简介 Servlet技术是SUN提供的一种开发动态网页的核心组件之一.可以方便的开发动态网页.主要用得语言是java,开发者只需要实现相应的接口或者继承相应的类,那么你的java文件就是一个动态的网页.当然好需要一些额外的配置即可. 一个Servlet其实就是一个运行在web server上得一个java程序. Se

servlet技术学习随笔

进入这里学习的第二天!开始着手想看servlet,前面看到javabean jsp 跟这个servlet的MVC框架!真心觉得很重要,技术这种东西学会了就很懂!学不会再怎么解释都不明白.看了一整上午!没怎么搞明白!才想起来以前学习c#的土办法!各种去百度!起查……终于算是有点懂得了! (1).  PrintWriter out = response.getWriter();当一个Servlet响应的时候将响应信息通过out对象输出到网页上,当响应结束时它自动被关闭.PrintWriter用处是将

Java Servlet 技术简介

Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么,它们是如何工作的,如何使用它们来创建您能够想像到的任意复杂度的 Web 应用程序,以及作为一名专业编程人员,您如何才能最有效地使用 servlet. 4 评论: Roy W. Miller ([email protected]), 独立的软件开发辅导员.程序员和作者, RoleModel Soft

Servlet技术-请求转发,重定向和包含的关系

Web组件之间的关系包含3种,请求转发,URL重定向和包含 1.请求转发 请求转发允许把请求转发给同一应用程序的其他web组件,这种技术通常用于Web应用控制层的Servlet流程控制器,可检查HTTP请求的数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作并生成响应结果. 实例: 如果当前的Servlet组件要把请求转发给一个jsp组件,如hello.jsp,可在Servlet中的service方法中执行一下代码: RequestDispatcher rd=request.ge

Web---演示servlet技术(servlet生命周期),解决中文乱码问题

本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼?(^?^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Tra