Servlet技术

Servlet技术
Servlet技术

第1讲Servlet入门

本讲主要介绍JSP技术的重要基础Servlet,通过本讲的学习,重点掌握:

●Servlet的基本工作原理

●Servlet相关类和接口

●Servlet的创建方法

●web.xml的配置方法

1.1 Servlet介绍

Servlet作为Java语言的Web编程技术,先于J2EE平台出现,而JSP则是在Servlet基础上发展而来。

Servlet,服务器小程序,是用Java编写的服务器端程序,由客户端请求、服务器调用和执行的。

1.2 Servlet的技术特点

Servlet是一个Java类,因此,Java语言能够实现的功能,Servlet基本上都能实现(不包括图形界面)。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet 具有更高的效率,更容易使用,功能更强大,具有更好的可移植性。

1. 高效

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet 类代码。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动等。

2. 方便

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。

3. 功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

4. 可移植性好

Servlet用Java编写,Servlet API具有完善的标准。

1.3 开发一个简单的Servlet

因为Servlet也是一个Java类,因此创建Servlet时也应创建到src目录下。请按照以下步骤创建一个名为HelloServlet的Servlet。

1)在src目录上单击右键,选择New Other,弹出如错误!未找到引用源。

所示窗口;

2)选择Servlet,单击Next,弹出如图1-1所示窗口,在Java package输入框

中输入包名:edu.sdfi.train.servlets,在Class name输入框中输入HelloServlet,

单击Finish,完成Servlet的创建;

图1-1 新建Servlet对话框

3)Servlet创建完成后,Eclipse自动打开该Servlet。可以看到该类中除了一个

构造函数之外,还有两个函数:doGet和doPost,这两个函数分别处理客户

端以get方式和以post方式提交的请求;

4)在doGet函数的函数体中输入如下代码:

doPost(request, response);

5)在doPost函数的函数体中输入以下代码:

response.getWriter().print("

HelloWorld

");

6)至此完成HelloServlet的创建。

1.4 执行生成的Servlet

要通过浏览器请求生成的Servlet,首先保证已按错误!未找到引用源。节的内容配置了应用程序的编译路径,否则请按要求配置编译路径。

启动Tomcat前,确保您已经将该Web应用程序配置到Tomcat的server.xml,如果没有,请阅读错误!未找到引用源。节的步骤4。

启动Tomcat。如果创建Servlet的过程中Tomcat已经启动,请重启Tomcat。

打开浏览器,在浏览器地址栏中输入:http://localhost:8080/First/HelloServlet,如果运行正确,浏览器中将以一级标题加粗显示HelloWorld。

1.5 Servlet的配置

虽然创建的Servlet已经正常运行,但有两个问题仍然没有解决:

1)Servlet作为一个Java类,它是如何被浏览器请求到的?

2)地址栏中输入的URL中,最后的字符串为何是HelloServlet,而不是其它?

这两个问题都可以通过理解web.xm来解决。

web.xml中记录了Web应用程序运行的配置信息,其中就包括servlet的相关信息。代码段1-1给出了创建了HelloServlet后web.xm中增加的信息,其中:1)servlet 节点配置了Web应用程序中的一个Servlet,其中的servlet-class代表具体的Servlet 类的完整的包路径;2)servlet-mapping节点定义了Servlet的映射信息,即将一个URL或某种URL模式映射到一个指定的Servlet。每个Servlet节点都对应一个Servlet-mapping节点,且两个节点之间通过servlet-name建立对应关系。

代码段1-1 servlet在web.xml中的配置

HelloServlet

HelloServlet

edu.sdfi.train.servlets.HelloServlet

HelloServlet

/HelloServlet

在本例中,我们在浏览器中输入http://localhost:8080/First/HelloServlet,Tomcat 捕到请求后,发现该请求与servlet-mapping中的HelloServlet的url-pattern一致,于是Tomcat根据servlet节点中的配置,调用name为HelloServlet的Servlet,并根据

servlet-class的配置调用相应的servlet类。

url-pattern的设置中,除了象上述的精确配置方法外,还有目录匹配和扩展名匹配两种方式,其具体格式为:

目录格式匹配:/目录/*

扩展名匹配:*.扩展名

Tomcat在查找Servlet的映射时,遵守以下重要规则:

容器会首先查找精确匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。

如果一个请求匹配多个“目录匹配”,容器会选择最长的匹配。

1.6 Servlet的生命周期

Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。

Servlet部署在容器里,它的生命周期由容器管理。Servlet的生命周期可以概括为以下几个阶段:

加载Servlet:Tomcat启动时,会根据web.xml中的配置信息自动加载Servlet;

创建Servlet实例:

调用Servlet的init()方法;

服务。如果Tomcat接收到对此Servlet的请求,那么它调用Servlet的service()方法;

销毁:通过调用Servlet的destory()方法来销毁Servlet。

Servlet的生命周期如图1-2所示。

图1-2 Servlet的生命周期

1.7 本讲小结

本讲主要介绍了Servlet的相关知识,包括Servlet的技术特点、开发过程,并介绍了Servlet在web.xml中的配置以及Servlet的生命周期。通过本讲的学习,要达到以下目标:

●掌握Servlet的开发过程和方法

●掌握Servlet在web.xml中的配置方法

●理解Servlet的特点及其生命周期

第2讲Servlet高级应用

本讲介绍Servlet的高级应用,包括Servlet初始化参数的使用、Servlet过滤器Filter和Servlet监听器Listener。通过本讲的学习,重点掌握以下内容:

●掌握Servlet初始化参数的配置方法和Servlet中读取参数的方法

●掌握Filter的工作原理、在web.xm中的配置方法以及开发方法

●掌握Listener的工作原理、在web.xml中的配置方法和开发方法

2.1 Servlet的初始化参数

我们可以在Web应用程序的配置文件(web.xml)中定义一些初始化参数,然后在Servlet中获得这些初始的参数。

2.1.1web.xml中的参数定义

在web.xml中配置servlet时,在之间还有一对节点可以添加,即。该节点用于为当前Servlet配置初始化参数。

在该对节点中,有两个子节点可以配置:,分别用于指定当前参数的名称和值。

一个Servlet中可以配置多个初始化参数。代码段2-1给出了一个针对1.4节中Servlet的一个参数配置代码。该代码中为名为HelloWorld的Servlet定义了一个初始化参数,参数名称为MyParam,参数值为MyParamValue。

代码段2-1 web.xml中的初始化参数配置示例

HelloWorld

edu.sdfi.train.servlets.HelloWorld

MyPara

MyParaValue

2.1.2在Servlet中读取参数

要读取web.xml中的初始化参数,可以使用Servlet的getInitParameter方法,其用法类似于request对象的getParameter方法,其输入参数为参数名称,返回值为对应参数的值。

如:在Servlet的doPost方法中可以执行如下代码:

String value = this.getInitParameter("MyPara");

System.out.println(value);

则该Servlet执行时,将在Tomcat控制台输出MyParamValue字符串。

2.1.3实际应用

实际应用中,比如我们要做一个使用JDBC连接数据库的Servlet程序,为了保证这个Servlet的通用性,可以把它的驱动程序、连接数据库的字符串配置到web.xml中。当Servlet执行操作时,可以通过读取web.xml的配置信息来获取数据库的连接信息。

2.2 Servlet过滤器

2.2.1过滤器基本原理

Servlets Filter是Servlet 2.3规范中新增加的,是实现Filter接口的一个类,该类截取用户从客户端提交的请求,在还没有到达需要访问的资源时运行。它操纵来自客户端的请求,在资源还没有被发送到客户端前截取响应,并处理这些还没有发送到客户端的响应。

需要注意的是,Filter并不是一个servlet,它不能产生一个response,它能够在一个请求(request)到达服务器之前预处理该请求,也可以在离开服务器时处

理响应(response),如图2-1所示。当有多个过滤器时,多个过滤器之间构成过滤器链(FilterChain)。

图2-1 Filter工作原理

图2-2 过滤器链

2.2.2创建一个简单的过滤器

要创建过滤器,首先创建一个实现Filter接口的类,然后将该类配置到web.xml中,以保证过滤器在web应用程序启动时既可加载。以下给出创建一个简单过滤器的步骤:

1. 创建一个实现Filter接口的类:SimpleFilter;

在FirstWebApp项目的src目录上单击右键,选择New Class,弹出错误!

未找到引用源。所示对话框。在package输入框中输入包名edu.sdfi.train.filters,在Name输入框中输入类名SimpleFilter,然后单击“Add”按钮,弹出如图2-3所示对话框,在输入框中输入filter,在自动列出的接口列表中选择Filter –javax.servlet …接口,单击OK,再单击Finish,一个空的过滤器被创建出来。

图2-3 接口选择对话框

在创建的SimpleFilter类中,共包含三个方法,分别是:init方法、destroy 方法和doFilter方法。其中,init方法和destroy方法分别执行过滤器的初始化和销毁操作,而过滤器的具体业务操作则由doFilter方法实现。

doFilter方法共有三个参数,其类型分别是ServletRequest、ServletResponse 和FilterChain。由图2-1及Filter的基本原理,过滤器首先对用户请求进行过滤,然后将请求传递给服务器(Tomcat),服务器返回一个响应(Response)时,也要被过滤器过滤后才返回客户端。因此可知,doFilter中应首先对request进行处理,然后将请求继续传递给服务器(Tomcat),最后对response进行处理。

因此,我们在doFilter方法中添加如下代码:

System.out.println("Processing Request"); // 这部分写针对request对象处理的代码

arg2.doFilter(arg0, arg1);//将请求继续传递给下一个过滤器或服务器(Tomcat)

System.out.println("Processing Response");//对服务器返回的response对象进行处理

2. 在web.xml中配置SimpleFilter类;

要想让Filter起作用,还要将其配置到web.xml中。Filter的配置与Servlet

的配置类似,如代码段2-2所示。

代码段2-2 Filter在web.xml中的配置

SimpleFilter

edu.sdfi.train.filters.SimpleFilter

SimpleFilter

/*

3. 重新启动Tomcat,在地址栏输入任何一个请求,然后查看Tomcat控制台的输出。正常运行后,其效果如图2-4所示。

图2-4 过滤器执行后的效果示意

2.2.3实用案例

客户端提交请求时,其包含的参数有可能含有数据,这时,所有接收此参数的页面(或Servlet)在接收参数前,都必须增加相应的编码转换语句:

request.setCharacterEncoding(“目标编码”)。要想不在每个页面中都增加这句代码,即减少该代码书写的次数,我们可以创建一个编码转换过滤器,对所有页面接收请求前,通过该过滤器完成编码的转换工作。其具体步骤如下:

1. 按照

2.2.2节中创建过滤器的过程创建一个过滤器CharacterFilter;

2. 在doFilter方法中添加如下代码:

arg0.setCharacterEncoding("GB18030");

arg2.doFilter(arg0, arg1);

3. 在web.xml中增加该过滤器的配置

CharacterFilter

edu.sdfi.train.filters.CharacterFilter

CharacterFilter

/*

作业2-1 实现一个用户登录过滤器

错误!未找到引用源。节中的main.jsp页面是一个受保护的页面,该页面只有在用户登录以后才能访问,反之,如果用户没有登录,该页面不允许用户访问,页面流程将被跳转到login.jsp。当系统中有多个这样的页面时,同样的保护代码(错误!未找到引用源。)就需要在多个页面中出现。

请设计一个用户登录过滤器,对需要保护的页面进行统一过滤。如果当前用户已经登录,则允许访问此页面,否则将用户请求跳转到login.jsp。

2.3 Servlet监听器

Servlet的监听器可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激发一些操作,比如可以通过监听器实现在线的用户的计数。

当前,Servlet监听器可以对request对象、session对象和ServletContext (application)对象的创建、销毁、属性的添加、修改和删除事件进行监听。

与过滤器一样,Servlet监听器也是一个普通的Java类,只是该类需要实现一个或多个特定的接口,以实现对不同的对象进行监听。同样,Servlet监听器也需要配置到web.xml中。

监听器的配置与Servlet、Filter类似,但比它们要简单的多,监听器配置中没有mapping节点的配置,因为监听器处理的对象与url-pattern无关。下面代码段2-3 listner监听器在web.xml中的配置给出了一个Listener配置的模板。

代码段2-3 listner监听器在web.xml中的配置

监听器类的包路径

2.3.1对request对象进行监听

1. Request监听器简介

对客户端请求的监听是Servlet 2.4规范中增加的技术。一旦我们可以监听客户端的请求,就可以对请求进行统一处理。比如做一个Web管理器程序,如果在本地或局域网内访问,就可以不用登录;如果是远程或外网访问那么就需要登录。要达到这个目的,我们就可以监听用户的请求,从用户请求中获取客户端的地址,并通过地址判断来做相应的处理。

要实现对request的监听,需要实现两个接口:javax.servlet.ServletRequestListener和javax.servlet.ServletRequestAttributeListener。前者主要对request的初始化和销毁事件进行监听,而后者主要对request的属性的添加、修改和删除事件进行监听。

ServletRequestListener对象在对初始化事件和销毁事件进行监听时,都将接收一个javax.servlet.ServletRequestEvent类型的参数,我们可以通过该参数获得servlet上下文和servlet请求。

ServletRequestAttributeListener在监听属性变化时,将获得一个

javax.servlet.ServletRequestAttributeEvent类型的参数,该类扩展了ServletRequestEvent类,并添加了两个新方法:getName和getValue。getName

方法返回触发事件的属性的名称,getValue返回属性的值。

2. request监听器实例

1)首先新建一个类MyRequestListener,包名为:edu.sdfi.train.listeners,选择其实现的接口为上述的两个接口;

2)在新创建的类的requestInitialized方法中添加以下代码:

代码段2-4 request监听器代码

HttpServletRequest request = (HttpServletRequest)arg0.getServletRequest();

System.out.println("Request URL: " + request.getRequestURL());

System.out.println("Remote Port : " + request.getRemotePort());

System.out.println("Local Name : " + request.getLocalName());

System.out.println("Local Addr : " + request.getLocalAddr());

System.out.println("Local Port : " + request.getLocalPort());

3)配置该监听器到web.xml中。

代码段2-5 Request监听器在web.xml中的配置

edu.sdfi.train.listeners.MyRequestListener

图2-5给出了本监听器运行的一个结果。

图2-5 Request监听器的监听结果

2.3.2对session对象进行监听

对session对象的监听主要是通过三个接口实现的,包括:HttpSessionAttrib uteListener、HttpSessionListener和HttpSessionActivationListener。下面分别介绍:

1. HttpSessionAttributeListener接口

HttpSessionAttributeListener监听HttpSession中的属性的操作。

当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBind ingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpS essionBindingEvent se) 方法。这和ServletContextAttributeListener比较类似。

2. HttpSessionListener接口

HttpSessionListener 监听HttpSession的操作。当创建一个Session时,激发session Created(HttpSessionEvent se)方法;当销毁一个Session时,激发session Destroyed (HttpSessionEvent se)方法。

3. HttpSessionActivationListener接口

主要用于同一个Session转移至不同的JVM的情形。session的passivation 是指非活动的session被写入持久设备(比如硬盘),activate自然就是相反的过程。

2.3.3对ServletContext对象(application)进行监听

对ServletContext对象的监听主要是通过两个接口实现的,包括:ServletCo ntextListener和ServletContextAttributeListener。下面分别介绍:

1. ServletContextListener

用于监听WEB应用启动和销毁的事件,监听器类需要实现javax.servlet.Ser vletContextListener 接口。

ServletContextListener是ServletContext的监听者,如果ServletContext发生变化,如服务器启动时ServletContext被创建,服务器关闭时ServletContext将要被销毁。

ServletContextListener接口的方法:

void contextInitialized(ServletContextEvent sce):通知正在接受的对象,应用程序已经被加载及初始化。

void contextDestroyed(ServletContextEvent sce):通知正在接受的对象,应用程序已经被载出。

ServletContextEvent中的方法:

ServletContext getServletContext():取得ServletContext对象。

2. ServletContextAttributeListener

用于监听WEB应用属性改变的事件,包括:增加属性、删除属性、修改属性,监听器类需要实现javax.servlet.ServletContextAttributeListener接口。

ServletContextAttributeListener接口方法:

void attributeAdded(ServletContextAttributeEvent scab):若有对象加入A pplication的范围,通知正在收听的对象。

void attributeRemoved(ServletContextAttributeEvent scab):若有对象从A pplication的范围移除,通知正在收听的对象。

void attributeReplaced(ServletContextAttributeEvent scab):若在Applicat ion的范围中,有对象取代另一个对象时,通知正在收听的对象。

ServletContextAttributeEvent中的方法:

https://www.360docs.net/doc/dc14688854.html,ng.String getName():回传属性的名称。

https://www.360docs.net/doc/dc14688854.html,ng.Object getValue():回传属性的值。

针对以上介绍,表2-1给出了常用的监听器接口及其事件类的列表。

表2-1 常用的监听器接口及其事件类

2.3.4监听器实例——网站用户计数器

本实例创建一个监听器,实现对当前网站所有访问用户和已登录用户的计

数。我们已经知道,任何一个用户从开始访问网站开始,服务器即为其分配一个session;当session被销毁时,说明该用户已经退出了本网站。因此我们可以通过对session对象的创建和销毁事件进行监听,以实现对访问网站的用户进行计数。

当用户登录成功后,session对象中将被写入一个属性(我们的程序写入的属性名为logined),因此我们可以对此特定属性进行监听,如果该属性被创建,意味着一个用户已经登录系统;若该属性被销毁,说明用户已经退出该网站。

最后,要有一个合适的时机对访问网站的用户数和登录用户数进行初始化,这个操作我们可以在Web应用程序开始加载(刚启动)时实现,因此我们需要监听ServletContext的初始化操作。

综上,我们将创建一个监听器,该监听器将实现三个接口:ServletContextL istener、HttpSessionListener和HttpSessionAttributeListener。首先创建一个实现以上三个接口的类,其主要内容如代码段2-6 网站用户计数器代码所示。

代码段2-6 网站用户计数器代码

package edu.sdfi.train.listeners;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.http.HttpSessionAttributeListener;

import javax.servlet.http.HttpSessionBindingEvent;

import javax.servlet.http.HttpSessionEvent;

import javax.servlet.http.HttpSessionListener;

public class CounterListener implements HttpSessionListener,

HttpSessionAttributeListener, ServletContextListener {

int allUsers; // 对所有用户进行计数

int loginedUser; // 对登录用户进行计数

// 一个会话被创建,说明有个用户来访

public void sessionCreated(HttpSessionEvent arg0) {

allUsers++;

arg0.getSession().getServletContext()

.setAttribute("allUser",new Integer(allUsers));

}

// 会话被销毁,说明有个用户退出

public void sessionDestroyed(HttpSessionEvent arg0) {

allUsers--;

arg0.getSession().getServletContext()

.setAttribute("allUser",new Integer(allUsers));

}

// 有个属性被创建,判断是否是logined属性,若是,一个用户已经登录public void attributeAdded(HttpSessionBindingEvent arg0) {

String name = arg0.getName();

if ("logined".equals(name)){//一个登录用户已经登录成功

loginedUser++;

arg0.getSession().getServletContext()

.setAttribute("logined",new Integer(loginedUser));

}

}

// 有个属性被销毁,判断是否是logined属性,若是,一个用户已经退出public void attributeRemoved(HttpSessionBindingEvent arg0) { String name = arg0.getName();

if ("logined".equals(name)){//一个登录用户已经登录成功

loginedUser--;

arg0.getSession().getServletContext()

.setAttribute("logined",new Integer(loginedUser));

} }

@Override

public void attributeReplaced(HttpSessionBindingEvent arg0) {

}

@Override

public void contextDestroyed(ServletContextEvent arg0) {

}

@Override

public void contextInitialized(ServletContextEvent arg0) {

loginedUser = 0;

allUsers = 0;

}

}

2.4 本讲小结

本讲主要介绍了Servlet的几个方面的高级应用,包括Servlet初始化参数的配置和使用方法,Servlet过滤器的相关概念和使用以及各种监听器的使用方法。通过本讲的学习,至少要达到以下目标:

●了解Servlet初始化参数的在web.xml中的配置方法

●了解Servlet初始化参数的访问方法

●掌握Servlet过滤器的基本原理及其创建和配置方法

掌握常用监听器的创建和配置方法

Java基础入门教程(适合所有初学者)

第1章 Java语言概述与面向对象思想 1 1.1 Java语言的发展 1 1.1.1 Java语言的产生 1 1.1.2 Java语言的发展 1 1.2 Java语言的特点 2 1.3 面向对象与面向过程的差异 3 1.3.1 面向过程思想回顾 4 1.3.2 面向对象思想介绍 4 1.4 面向对象程序设计中的主要概念和特征 4 1.4.1 主要概念 5 1.4.2 主要特征 5 *1.5 Java与C++的差异 5 1.6本章小结5 习题 5 第2章 Java语言开发环境 6 2.1 JDK 6 2.1.1 JDK的简介6 2.1.2 JDK的构成6 2.1.3 JDK的使用6 2.2 IDE 8 2.2.1 IDE简介8 2.2.2 JBuilder 9 2.2.3 Eclipse 9 2.2.4 相关资源9 2.3 Project管理9 2.3.1 Project的含义9 2.3.2 可行的Project组织模式9 2.3.3 主要开发工具的Project目录10 2.4 本章小结10 习题10 第1章 Java语言概述与面向对象思想 1.1 Java语言的发展 1.1.1 Java语言的产生以介绍面向对象编程的基本概念、基本理论为重点,结合Java语言的语法规则、编程特点和设计思想、强调容易发生错误和编程应注意的地方,使学生能对Java 技术有一个总体了解,通过本课程学习,使学生掌握Java语言的基础知识,理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作 上世纪90年代初期,Sun公司在研究一种适用于未来的智能设备的编程语言,该语言要具有一些新的特性,以避免C++的一些不足。 该语言起初命名为Oak,来源于语言作者Gosling办公室窗外的一棵橡树(Oak)。后来在注册时候遇到了冲突,于是就从手中的热咖啡联想到了印度尼西亚一个盛产咖啡的岛屿,中文名叫爪哇,Java语言得名于此。 随着Internet的迅速发展,Web应用日益广泛,Java语言也得到了迅速发展。1994年,Gosling

英文文献及翻译(Servlet和JSP技术简述)

An Overview of Servlet and JSP Technology Nagle ,Wiegley Abstract: Servlet program running in the server-side, dynamically generated Web page with the traditional CGI and many other similar compared to CGI technology, Java Servlet with a more efficient, easier to use, more powerful and has better portability, more savings to invest. . Keywords: JSP Technology;Servlet;HTTP server 1. A Servlet's Job Servlets are Java programs that run on Web or application servers, acting as a middle layer between requests coming from Web browsers or other HTTP clients and databases or applications on the HTTP server. Their job is to perform the following tasks, as illustrated in Figure 1-1. Figure 1-1Web middleware role 1.1 Read the explicit data sent by the client. The end user normally enters this data in an HTML form on a Web page. However, the data could also come from an applet or a custom HTTP client program. 1.2 Read the implicit HTTP request data sent by the browser. Figure 1-1 shows a single arrow going from the client to the Web server (the layer where servlets and JSP execute), but there are really two varieties of data: the explicit data that the end user enters in a form and the behind-the-scenes HTTP information. Both varieties are critical. The HTTP information includes cookies, information about media types and compression schemes the browser understands, and so on. 1.3 Generate the results. This process may require talking to a database, executing an RMI or EJB call, invoking a Web service, or computing the response directly. Your real data may be in a relational database. Fine. But your database probably doesn't speak HTTP or return results in HTML, so the Web browser can't talk directly to the database. Even if it could, for security reasons, you probably would not want it to. The same argument applies to most other applications.You need the Web middle layer to extract the results inside a document.

Java_Web总结

选择题: 1、Servlet类文件放置的位置是()。 A.WEB-INF/lib B.WEB-INF/servlet C.WEB-INF/web D.WEB-INF/classes 2、在JSP中,page指令的()属性用来引入需要的包或类。 A.extends B.import C.languge D.contentType 3、一个servlet源文件的后缀名是()。 A..jsp B..exe C..class D..java 4、J2EE中,JSP EL 表达式${user.loginName}的执行效果等同于()。 A.<% = user.getLoginName()%> B.<%user.getLoginName();%> C.<% = user.loginName%> D.<% user.loginName;%> 5、在Web容器中,以下哪个类的实例代表HTTP的请求()。 A.HttpRequest B.HttpServletRequest C.HttpServletResponse D.HttpPrintWriter 6、Web应用中,常用的会话跟踪方法不包括()。 A.URL重写B.Cookie C.隐藏表单域D.有状态HTTP协议 7、以下对PayServlet的定义正确的是()。 A.class PayServlet implements javax.servlet.servlet B.class PayServlet extends javax.servlet.GenericServlet C.class PayServlet extends javax.servlet.http.HttpServlet D.class PayServlet extends javax.servlet.ServletRequest 8、aa.jsp把请求转发给bb.jsp。aa.jsp在请求范围内存放了一个String类型的name 属性,bb.jsp如何获取该属性()。 A.<% String name=request.getAttribute("name"); %> B.<% String name=(String)request.getAttribute("name"); %> C.<% String name=request.getParameter("name") %> D.<% String name=(String)application.getAttribute("name") %> 9、在JSP页面中,作用域范围由小到大依次是()。

Java_Servlet入门教程

教学活动首页 基本内容 第 7 章 Java Servlet 教学目的与要求:通过本章的学习让学生了解如何用 servlet 读写文件,用 servlet 访问数据库;理解servlet 工作原理,servlet共享变量的使用;掌握编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,掌握会话管理。 教学内容: 7.1 servlet 工作原理 7.2 编译和安装 servlet 7.3 通过 JSP 页面调用 servlet 7.4 servlet共享变量 7.5 HttpServlet 类 7.6 用 servlet 读写文件 7.7 用 servlet 访问数据库 7.8 会话管理 教学基本要求: 了解:用 servlet 读写文件,用 servlet 访问数据库 理解:servlet 工作原理,servlet共享变量 掌握:编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,会话管理 教学重点教学难点: servlet 工作原理,编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,会话管理 教学方法: 教学手段:多媒体教学和计算机程序演示 教学小结:(见教学进程) 作业与思考:见课后习题 课后记载:

教学进程 第7章 Java Servlet 我们已经知道,SUN公司以Java Servlet为基础,推出了Java Server Page。JSP提供了Java Servlet的几乎所有好处,当一个客户请求一个JSP页面时,JSP引擎根据JSP页面生成一个Java文件,即一个servlet。这一章,将对servlet做一个较详细的介绍,这不仅对于深刻理解JSP有一定的帮助,而且通过学习servlet,还能使我们选择使用 JSP+javabeans+servlet的模式来开发我们的Web应用程序。 我们已经知道,用JSP支持JavaBeans这一特点,可以有效的管理页面的静态部分和页面的动态部分。另外,我们也可以在一个JSP页面中调用一个servlet完成动态数据的处理,而让JSP页面本身处理静态的信息。因此,开发一个Web应用有两种模式可以选择: (1) JSP+javabeans (2) JSP+javabeans+servlet 7.1 Servlet工作原理 servlet由支持servlet的服务器:servlet引擎,负责管理运行。当多个客户请求一个servlet时,引擎为每个客户启动一个线程而不是启动一个进程,这些线程由servlet引擎服务器来管理,与传统的CGI为每个客户启动一个进程相比较,效率要高的多。 7.1.1 Servlet 的生命周期 学习过Java 语言的人对Java Applet(Java小应用程序)都很熟悉,一个Java Applet 是java.applet.Applet类的子类,该子类的对象由客户端的浏览器负责初始化和运行。servlet的运行机制和Applet类似,只不过它运行在服务器端。一个servlet是javax.servlet 包中HttpServlet类的子类,由支持servlet的服务器完成该子类的对象,即servlet的初始化。 Servlet的生命周期主要有下列三个过程组成: (1)初始化servlet。servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个servlet对象,这对象调用init方法完成必要的初始化工作。 (2)诞生的servlet对象再调用service方法响应客户的请求。 (3)当服务器关闭时,调用destroy方法,消灭servlet对象。 init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。当后续的客户请求servlet服务时,Web服务将启动一个新的线程,在该线程中,servlet调用service方法响应客户的请求,也就是说,每个客户的每次请求都导致service方法被调用执行。 7.1.2 init方法 该方法是HttpServlet类中的方法,我们可以在servlet中重写这个方法。 方法描述: public void init(ServletConfig config) throws ServletException servlet第一次被请求加载时,服务器初始化一个servlet,即创建一个servlet对象,这个对象调用init方法完成必要的初始化工作。该方法在执行时,servlet引擎会把一个

第八章 Servlet技术习题

第八章 Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误?()A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载2.下面哪一项不在Servlet的工作过程中?()A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法?()A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?() A)提高了对开发人员的要求 B)代码复用率低C)增加了文件管理的难度 D)产生较多的文件5.下面哪一项对Servlet、JSP的描述错误?()

A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet 为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?()A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?()A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求

外文文献及翻译----Servlet和JSP技术简述

毕业设计(论文) 外文文献翻译 专业 学生姓名 班级 学号 指导教师 XX 学院

外文资料名称:An Overview of Servlet and JSP Technology 外文资料出处:Internet 附件: 1.外文资料翻译译文 2.外文原文 指导教师评语: 签名: 年月日

Servlet和JSP技术简述 Nagle and Wiegley XX译 摘要:Servlet程序在服务器端运行,动态地生成Web页面与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。 关键字:JSP技术,Servlet,HTTP服务 1.1Servlet的功能 Servlets是运行在Web或应用服务器上的Java程序,它是一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序。Servlet的工作是执行西门的任务,如图1.1所示。 图1.1Web中间件的作用 (1)读取客户发送的显式数据。 最终用户一般在页面的HTML表单中输入这些数据。然而,数据还有可能来自applet或定制的HTTP客户程序。 (2)读取由浏览器发送的隐式请求数据。 图1.1中显示了一条从客户端到Web服务器的单箭头,但实际上从客户端传送到Web服务器的数据有两种,它们分别为用户在表单中输入的显式数据,以及后台的HTTP信息。两种数据都很重要。HTTP信息包括cookie、浏览器所能识别的媒体类型和压缩模式等。 (3)生成结果。 这个过程可能需要访问数据库、执行RMI或EJB调用、调用Web服务,或者直接计算得出对应的响应。实际的数据可能存储在关系型数据库中。该数据库可能不理解HTTP,或者不能返回HTML形式的结果,所有Web浏览器不能直接与数据库进行会话。即使它能够做到这一点,为了安全上的考虑,我们也不希望让它这么做。对应大多数

JAVAWEB经验总结之SERVLET API

基本类和接口 一、javax.servlet.Servlet接口 servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。 Servlet接口的基本目标是提供生命期方法init()、service()和destroy()方法。 servlet接口中的方法 void init(ServletConfit config)throws ServletException在servlet被载入后和实施服务前由servlet引擎进行?次性调用。如果init()产生溢出UnavailableException,则servle退出服务。ServletConfig getServletConfig()返回传递到servlet的init()方法的ServletConfig对象void 果 String getServletInfo()返回描述servlet的一个字符串 void destory()当servlet将要卸载时由servlet引擎调用service(ServletRequest request, ServletResponse response)throws ServletException,IOException处理request对象中描述的请求,使用response对象返回请求结 二、javax.servlet.GenericServlet类(协议无关版本) GenericServlet是一种与协议无关的servlet,是一种跟本不对请求提供服务的servlet,而是简单地从init()方法启动后台线程并在destory()中杀死。它可以用于模拟操作系统的端口监控进程。servlet API提供了Servlet接口的直接实现,称为GenericServlet。此类提供除了service()方法外所有接口中方法的缺省实现。这意味着通过简单地扩展GenericServlte可以编写一个基本的servlet。 除了Servlet接口外,GenericServlet也实现了ServletConfig接口,处理初始化参数和servlet 上下文,提供对授权传递到init()方法中的ServletConfig对象的方法。 GenericServlet类中的方法 void destory()编飞组成单词“destory”的一个注册入口 String getInitParameter(String name)返回具有指定名称的初始化参数值。通过凋用config.getInitParameter(name)实现。 Enumeration getInitParameterNames()返回此serv]et已编码的所有初始化参数的?个枚举类型值。调用config.getInitParameterNames()获得列表。如果未提供初始化参数,则返回?个空的枚举类型值(但不是null) ServletConfig getServletConfig()返回传递到init()方法的ServletConfig对象ServletContext getServletContext()返回在config对象中引用的ServletContext String getServletInfo()返回空字符串 void init(ServletConfig config)throws ServletException在一实例变量中保存config对象。编写组成单词“init”的注册入口,然后调用方法init() void init()throws ServletException可以被跳过以处理servlet初始化.在config对象被保存后init(ServletConfig config)的结尾处自动被调用.servlet作者经常会忘记调用super.init(config) void log(String msg)编写注册servlet的入口.为此调用servlet上下文的log()方法.servlet的名字被加到消息文本的开头。 void log(String msg,Throwable t)编写一个入口和servlet注册的栈轨迹。此方法也是ServletContext中相应方法的一个副本。 abstract void service(Request request,Response response)throws ServletException,IOException 由servlet引擎调用为请求对象描述的请求提供服务。这是GenericServlet中唯一的抽象方法。因此它也是唯一必须被子类所覆盖的方法。 第1/7页

Servlet入门(一)

Servlet入门(一) ——传智播客学习笔记 1.什么是动态网页 ●如果浏览器在不同时刻或不同条件下访问WEB服务器上的某个页面,浏览器所获得的页面内容可以发生变化,那么这个页面就称之为动页面。 ●要想让浏览器访问某一WEB页面时,能够查询出一些动态变化的实时信息,例如,某日某次列车的车票剩余状况,浏览器在不同时刻所得到的WEB页面的内容必须随着车票的剩余状况进行变化,这就必须采用动态网页来实现。 ●浏览器只关心如何显示和处理WEB服务器返回的内容,浏览器处理动态网页的方式与它处理静态网页的方式完全相同、并无差异。 ●WEB服务器发送的静态内容直接来自于文本或数据文件,而动态内容需要依靠一个程序来临时产生。 2.动态网页程序与引擎 ●动态网页内容的创建过程包含两个步骤: 首先使用某种编程语言编写出相应的动态网页程序; 然后由一个专门的WEB服务器程序模块来解释执行该动态网页程序。 ●在动态网页程序的代码中可以完成各种程序逻辑控制、获取客户端传递的数据、对数据库进行操作、创建输出内容等功能,WEB程序开发就是使用某种编程语言来编写完成上述功能的动态网页程序。 ●动态网页程序需要有一个专门的WEB服务器程序模块来解释执行,专门解释和执行某种动态网页程序的WEB服务器程序模块习惯上被称为引擎,譬如ASP引擎、Servlet引擎、JSP引擎等。 ●只有引擎会与浏览器直接进行信息交换,动态网页程序不直接与浏览器进行信息交换,动态网页程序只与引擎进行信息交换,由引擎将浏览器的信息传递给动态网页程序和将动态网页程序生产的结果回送给浏览器。 ●引擎提供的API有两个基本的作用:一些API用于将访问请求的相关信息传递给动态网页程序;另一些API将动态网页程序产生的结果传递给引擎。 ●客户端向WEB服务器请求的URL资源路径,不仅可以指向服务器的一个静态HTML文件,还可以指向服务器端的某种可被解释运行的运行文件。 ●如果客户端请求的URL后缀名符合某种引擎所处理的资源名的特征,WEB服务将把请求转交给相应的引擎去处理,然后由引擎去调用某个程序文件,并将程序动态产生的内容返回给客户端。 ●动态网页程序文件中的代码不仅可以创建出用于返回给浏览器的动态变化内容,还可以实现对数据库的插入、修改、删除和查询等操作,从而让网站可实现论坛交流、产品订购、问卷调查、甚至是企业的整个管理信息系统等功能。 ●目前有不少公司提供了动态网页的解决方案,称为服务器端的WEB编程技术,常见的技术有CGI、ISAPI、ASP、.NET、Servlet/JSP、PHP等,这些技术分别使用不同的编程语言。 3.Servlet技术简介 ●Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于Java编程语言的WEB服务器端编程技术。 ●Servlet技术也是JSP技术的基础。 ●一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet的WEB服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接受客户端发出的访问请求信息和产生响应内容。 ●Applet是用于浏览器的Java小程序,Servlet是用于WEB服务器端的Java小程序。 ●Servlet程序可以完成普通Java程序所能完成的大多数任务: 获取客户端通过HTML的FORM表单递交的数据和URL后面的参数信息 创建对客户端的响应消息内容 访问服务器端的文件系统 连接数据库并开发基于数据库的应用 调用其他的JA V A类。

web技术应用基础应用复习

w e b技术应用基础应用 复习 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

填空题 1.JSP把Java作为默认的脚本语言. 2.HTTP的中文含义是超文本传输协议,它的作用是用于传输超文本标记语言 编写的文件。 3.网站一般分为三层,分别是用户界面交互层,应用程序层,数据库层。 4.Servlet的生命周期可以分为4个阶段:载入,初始化,执行,删除(销 毁。 5.在JSP文件中使用〈!————〉对HTML文本进行注释,使用〈%———— %〉符号对JSP语句进行注释。 6.JSP页面在使用Jag标记来调用一个标签文件之前,必须使用Taglib指令 标记引入该Web服务目录下的标记库。 7.在JSP中当执行了查询结果保存在Resultset对象中。 8.在JSP中,连接数据库的方式通常有两种:一种是通过JDBC驱动程序连 接;另一种是通过JDBC-ODBC桥连接。 9.HTML是超文本标记语言,作用是WWW页面内容的格式进行说明。在HTML中 加入CSS的方法主要有嵌入式样式表,内联式样式表,外联式样式表。 10.Request对象的作用是表示客户端对网页的请求,并使用HTTP协议处理 客户端的请求,一个常用的方法是getParameter();其作用为设置作为响应生成内容的类型和字符编码。 11.Reponse对象的作用是处理jsp生成的响应发送给客户端: setContentType(),其作用为设置作为响应生成内部的类型和字符编码。 12.JSP中的五个常见内建对象是out: application: request:reponse:session 13.Servlet中的4个常用方法分别是init():doGet():doPost():destor() 14.在JSP页面中显示用户信息的两种方法是()和〈%= %〉 15.Servlet中实现页面跳转的两种方法是()和().forward() 16.JSP开发网站的两种模式分为Jsp+javabean和jsp+javabean+servlet 17.一个JSP页面可由5种元素组合而成,分别是普通的HTML.标记,JSP标 记,JAVA程序片,JAVA表达式和变量和方法的声明。

第八章 Servlet技术习题

第八章Servlet技术 一、选择题 1.下面对Servlet、Applet的那一项描述错误?() A)Servelt与Applet相对应 B)Applet运行在客户端浏览器 C)Servlet运行在Web服务器端 D)Servlet和Applet不可以动态从网络加载 2.下面哪一项不在Servlet的工作过程中?() A)服务器将请求信息发送至Servlet B)客户端运行Applet C)Servlet生成响应内容并将其传给服务器 D)服务器将动态内容发送至客户端 3.下列哪一项不是Servlet中使用的方法?() A)doGet() B)doPost() C)service() D)close() 4.关于MVC架构的缺点,下列的叙述哪一项是不正确的?() A)提高了对开发人员的要求B)代码复用率低 C)增加了文件管理的难度D)产生较多的文件 5.下面哪一项对Servlet、JSP的描述错误?() A)HTML、Java和脚本语言混合在一起的程序可读性较差,维护起来较困难。 B)JSP技术是在Servlet之后产生的,它以Servlet为核心技术,是Servlet技术的一个成功应用。 C)当JSP页面被请求时,JSP页面会被JSP引擎翻译成Servelt字节码执行 D)一般用JSP来处理业务逻辑,用Servlet来实现页面显示。 6.下面哪一项对Servlet、JSP的描述错误?() A)Servlet可以同其他资源交互,例如文件、数据库 B)Servlet可以调用另一个或一系列Servlet E)服务器将动态内容发送至客户端 E)Servlet在表示层的实现上存在优势 7.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 8.下面哪一项对Servlet描述错误?() A)Servlet是一个特殊的Java类,它必须直接或间接实现Servlet接口 B)Servlet接口定义了Servelt的生命周期方法 C)当多个客户请求一个Servlet时,服务器为每一个客户启动一个进程 D)Servlet客户线程调用service方法响应客户的请求 9.下面Servlet的哪个方法载入时执行,且只执行一次,负责对Servlet进行初始化。()A)service() B)init() C)doPost() D)destroy()

java开发技术总结

数据库 oracle-->数据库管理系统-->SQL、PL/SQL-->Java(JDBC+SQL) DBA,数据库编程程序员 1.概念导论 1)什么是数据库 有组织和结构存储数据。可以存储 字符、字节、图形、图像等类型数据 DB(数据库):数据集合 DBMS(数据库管理系统):对数据集合进行管理和操作的软件 --Oracle --DB2 --MySQL --SQLSERVER JDBC 1.什么是JDBC 全称Java DataBase Connection,Java数据库访问。 JDBC是Java访问数据库的一项技术 JDBC是SUN推出的Java访问数据库的一套标准。由一系列接口构成。 各个数据库厂商负责提供JDBC接口API的实现包。 开发者只需要掌握JDBC接口的使用,就可以实现对各种数据库的操作,不需要了解开发商的实现类。 XML 1、什么是xml(xtendsible markup language可扩 展的标记语言)? 1)定义 基于文本的通用的数据保存格式。 (1)通用的点的坐标 Point类point对象(x=10,y=20) a,序列化 b,数据库表 c,文件 ... (2)数据格式 10 20

HTML 知识准备 1、分层:表现层:UI界面(DOS界面、桌面类型、web类型) 业务层: 数据层:文件、Oracle数据库 2、Web类型的应用程序----B/S类型 打开Browser,输入URL,浏览器将请求发送到服务器 服务器得到请求,分析,返回响应 浏览器得到响应,解析(翻译),显示为页面 3、web学习阶段 客户端技术:HTML+CSS+Javascript---Web基础 服务器端技术:JSP、PHP、https://www.360docs.net/doc/dc14688854.html, 4、web基础的课程 HTML:页面的创建 CSS:页面的外观 JavaScript:页面的动态效果和交互行为--3 一:HTML概述 1、超文本标记语言:一种编写页面的纯文本的标记语言,文件以.html或者.htm为后缀,依靠浏览器运行显示----解释性的语言 2、标记:一些用<>括起来的内容,特殊的显示 3、主流浏览器:IE/Firefox/Chrome/ 4、浏览器兼容性:符合标准规范,具体问题 CSS 一:CSS概述 1、CSS:级联样式表(层叠样式表) 2、特征:为页面定义外观的语言,实现内容和表现的分离,多个样式可以合为一个,如果冲突,以优先级为准 二:基础语法 1、语法:属性名称:值;属性名称:值;比如--color:red; 2、如何应用 方式一(内联方式):<元素style=""/>---将样式直接定义在元素的style属性里 方式二(内部样式表):在页面的head里的style里定义样式 方式三(外部样式表):定义一个单独的.css的文件(定义样式);然后,在页面的head里用link引入---推荐方式 3、外部样式表的优点:实现内容和表现的分离,提高代码的可重用性和可维护性

Servlet方法中的常用五大方法

Servlet方法中的常用五大方法 Servlet方法有很多,但是本篇向你介绍的五大Servlet方法是功能非常强大的,在Web 开发中作用不小。是不是很感兴趣呢? 这五大Servlet方法都是功能比较强大的。相信对于WEB设计来说有一定的帮助。不要一个一个方法的试验,等看完所有的内容,然后一起运用这些方法并结合以前的workshop 来做个小程序。 ◆parseTextMessage()方法 在这个例子里:定义了一个数据接受类。parseTextMessage()方法接受了一组从表单传送过来的对象以及他们的值。我们在做一些产品开发的时候,比如自定义表单,往往不知道传送过来有多少对象,对于这样的问题,程序是无法知道的,用了这个方法后,就可以报所有的对象一下子都拿到了。下面看一下这个例子: 1private void parseTextMessage(HttpServletRequest request){ 2 3Enumeration names;//列举client传送过来的所有的对象 4String name;/ 5String[]value;// 6//接受所有的对象 7names=request.getParameterNames(); 8 9while(names.hasMoreElements()){ 10//得到对象名称 11name=(String)names.nextElement(); 12//根据对象名称重新找到对象的值 13value=request.getParameterValues(name); 14//把对象名称和值放到一个类中,这个类的代码在前面的练习中有 15put(name,value); 16} 17 18//获取一个page的ID,为什么要设置page id,在java规则中有 19pageID=getPostPageID(); 20 21//获取事务id,如果有事务的话

ServletAPI详解

Servlet 技术是JavaWeb中最核心的组件 Servlet主要功能: 1,动态生成HTML文档 2,转发请求给同Web中的另一个Servlet组件 3,转发请求至其他Web应用中的Servlet组件 4.读取以及写入Cookie 5.访问其他服务器资源(数据库or 基于java的应用程序) Servlet API Servlet接口: public interface Servlet { public abstract void init(ServletConfig servletconfig) throws ServletException; //init方法负责初始化Servlet对象,容器在创建好Servlet对象 就会调用该方法(个人认为这方法估计在构造函数中调用的) public abstract void service(ServletRequest servletrequest, ServletResponse servletresponse) throws ServletException, IOException; //该方法负责响应用户请求,为客户提供相应的服务 public abstract void destroy(); //该方法负责释放Servlet对象所占用的资源,Servlet结束生命周期时调用 public abstract String getServletInfo(); //返回字符串包含版本创建者以及版权信息 public abstract ServletConfig getServletConfig(); //返回ServletConfig对象,该对象包含Servlet初始化信息 } 在ServletAPI中 javax.servlet.GenericServlet抽象类实现

javaweb开发要学习的所有技术和框架总结:

学习javaweb开发要学习的技术和框架总结: 前言:当初想学习javaweb开发的时候,希望能够全方面地学习(这样找工作时就胸有成足了)。但是对这个根本不理解,又不认识从事这方面的熟人,所以学习起来无从下手。经过了一年的‘死’学习,从网上,从书本,从视频里面深入了解了java。想从事java的朋友,只要把这些技术全学会了,哪就业肯定没有问题了。 前端技术: HTML, CSS, JA V ASCRIPT, JQUERY, AJAX HTML “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分(外语:Head)、和“主体”部分(外语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。 CSS 级联样式表是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。 JavaScript JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 jQuery jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。

JavaWeb期末总结

第一章Web开发基础知识(简单描述)表单(续) 表单元素

form body
元素括起整个表单,并给出一些基本定义。表单仅占用HTML文档的部分空间;实际上,一个HTML文档可以包含几个独立的、完成不同功能的表单。method指定了信息传递给HTTP服务器的方法;action给出与处理提交信息的脚本相关的URL(如“registinfor.asp”,“registinfor.jsp”)。 表单输入元素 ?用来把不同的字段放在表单里,以便用户输入信息。 ?name属性指定该字段在某个表单中的唯一名称; ?可选的value属性给出该标记的默认值。 ?在提交表单时,向Web服务器呈上以一组用“?”开头并用“&” 号分开的一组“名字=值”形式的信息,如 http://…/Scriptname?name=me&address=here&time=now ?type属性给出所使用标记的样式,“string”可以是: ?CHECKBOX(复选框)。 ?RADIO(单选按钮) ?TEXT(单行的文本输入栏)。 ?IMAGE(图像放在表单里) ?SUBMIT(提交按钮) ?RESET(清除按钮) ?HIDDEN(在表单中保留不供显示的内容) ?FILE(上传文件) 第二章Servlet开发 1.什么Servlet Servlet是用Java语言编写的运行在服务器端的小应用程序,能够接收Web客户端的请求,并能对Web客户端进行响应,通常是通过HTTP (HyperText Transfer Protocol)协议进行工作的。(可以认为Servlet是服务 器端的一个动态Java程序,用户通过访问这个程序获取服务器的服务。) 2. Servlet的主要方法 Servlet是一个Java类,通常会有3类方法,分别是: init方法,用于初始化。 destroy方法,用于释放资源。 service方法,服务类方法,对用户的请求进行处理,并对用户进行响应,几乎所有处理功能都在这里完成。这类方法可以有多个,最常用的

JAVAWEB复习总结

B1.{JSP-Servlet题目}表示“资源移动”的状态码是。(选择1项) A)200 B)302 C)400 D)500 A2.{JSP-Servlet题目}哪一个对象可以用于获得浏览器发送的请求。(选择1项) A)HttpServletRequest B)HttpServletResponse C)HttpServlet D)Http B3.{JSP-Servlet题目}如果不希望在JSP页面中存取HTTP会话,应该如何设定page指令?(选择1项) A)<%pagesession="disabled"%> B)<%pagesession="false"%> C)<%pagesession="true"%> D)<%pagedisablesession="true"%> CD4.{JSP-Servlet题目}在Servlet的生命周期中,容器只调用一次的方法是。(选择2项) A)service B)getServletConfig C)init D)destroy C5.{JSP-Servlet题目}在使用服务器端的会话管理时,通过什么方法标识会话。(选择1项) A)IP地址 B)Cookie C)Session id D)请求头 A6.{JSP-Servlet题目}下列哪个为JSP的小脚本的标签?(选择1项) A)<%%> B)<@%> C)<%!%> D)<%--%> C7.{JSP-Servlet题目}下面哪一个不是元素的属性。(选择1项) A)scope B)Id C)Value D)Class C8.{JSP-Servlet题目}HttpServlet中,用来处理POST请求的方法是(选择1项)

相关文档
最新文档