第8章 Java Servlet基础
servlet的基本运行流程

Servlet的基本运行流程Servlet是Java Web中的一种技术,能够处理来自客户端的请求并生成响应。
它是在Web服务器上运行的Java类,可以与容器进行交互。
下面将详细描述Servlet的基本运行流程的步骤和流程。
1. Servlet的生命周期Servlet的生命周期包括以下三个阶段: - 初始化阶段(Initialization) - 服务阶段(Service) - 销毁阶段(Destroy)1.1 初始化阶段在Servlet类被加载到容器中时,(通常在Web应用程序启动时),容器会实例化Servlet对象,并调用其init()方法来进行初始化。
该方法只会在Servlet生命周期中被调用一次。
1.2 服务阶段一旦Servlet被初始化后,在其生命周期内,任何对Servlet的请求都会被容器处理。
当接收到一个客户端请求时,容器会创建一个新的线程,并调用Servlet的service()方法来处理该请求。
service()方法会根据请求的类型(GET、POST等)来调用相应的方法(如doGet()、doPost()等)进行处理。
1.3 销毁阶段当Web应用程序被关闭或Servlet容器被关闭时,容器会调用Servlet的destroy()方法来清除资源、释放内存和进行最后的操作,以完成Servlet的销毁过程。
2. Servlet运行流程Servlet的运行流程包括以下几个步骤:2.1 客户端发送请求当客户端(如浏览器)向Web服务器发送一个HTTP请求时,请求首先会到达Web容器。
2.2 容器寻找匹配的ServletWeb容器根据请求的URL来确定匹配的Servlet。
容器会维护一个Servlet映射表,将URL与对应的Servlet进行关联。
2.3 容器创建或获取Servlet实例如果Servlet实例不存在,则容器会创建一个新的Servlet实例,并调用其init()方法来进行初始化。
JSP与Servlet开发技术与典型应用教程完整版课件全套ppt教程最新

1.2 需求分析
❖1.2.1 基本框架
该生产性企业招聘管理系统主要分成三个模块:人员招聘管理模块、人员培 训管理模块、岗位管理模块。
JSP与Servlet开发技术与典型应用教程
大连理工大学出版社
第2章 Java Web应用概述
❖ 2.1C/S和B/S体系结构
▪ 2.1.1 C/S模式 ▪ 2.1.2 B/S模式 ▪ 2.1.3 C/S模式与B/S模式对比 ▪ 2.1.4 客户端脚本与服务器脚本
❖ 2.2动态网页技术
▪ 12.2.1 ASP编程技术 ▪ 12.2.2 编程技术 ▪ 12.2.3 PHP编程技术 ▪ 12.2.4 Java Web编程技术
❖ 3.4JSP与Servlet
▪ 3.4.1 Java Web应用程序介绍 ▪ 3.4.2 JSP与Servlet的关系
第3章 JSP与Servlet
教学要求
1.掌握:JDK、Tomcat和Myeclipse安装与配置、Tomcat的管理程序 2.理解:JSP与Servlet的关系、Servlet运行机制、JSP运行机制 3.了解:Tomcat的体系结构、Servlet的基本结构
大连理工大学出版社
第3章 JSP与Servlet
❖ 3.1环境安装与配置
▪ 3.1.1 JDK的安装与配置 ▪ 3.1.2 Tomcat的安装与配置 ▪ 3.1.3 Tomcat的体系结构 ▪ 3.1.4 Tomcat的管理程序 ▪ 3.1.5 MyEclipse的安装与配置
Java基础常见英语词汇(共70个)

OO: object-oriented ,面向对象OOP: object-oriented programming,面向对象编程JDK:Java development kit, java开发工具包JVM:java virtual machine ,java虚拟机Compile:编绎Run:运行Class:类Object:对象System:系统out:输出print:打印line:行variable:变量type:类型operation:操作,运算array:数组parameter:参数method:方法function:函数member-variable:成员变量member-function:成员函数get:得到set:设置public:公有的private:私有的protected:受保护的default:默认access:访问package:包import:导入static:静态的void:无(返回类型)extends:继承parent class:父类base class:基类super class:超类child class:子类derived class:派生类override:重写,覆盖overload:重载final:最终的,不能改变的abstract:抽象interface:接口implements:实现exception:异常Runtime:运行时ArithmeticException:算术异常ArrayIndexOutOfBoundsException:数组下标越界异常NullPointerException:空引用异常ClassNotFoundException:类没有发现异常NumberFormatException:数字格式异常(字符串不能转化为数字)Try:尝试Catch:捕捉Finally:最后Throw:抛出Throws: (投掷)表示强制异常处理Throwable:(可抛出的)表示所有异常类的祖先类Lang:language,语言Util:工具Display:显示Random:随机Collection:集合ArrayList:(数组列表)表示动态数组HashMap: 散列表,哈希表Swing:轻巧的Awt:abstract window toolkit:抽象窗口工具包Frame:窗体Size:尺寸Title:标题Add:添加Panel:面板Layout:布局Scroll:滚动Vertical:垂直Horizonatal:水平Label:标签TextField:文本框TextArea:文本域Button:按钮Checkbox:复选框Radiobutton:单选按钮Combobox:复选框Event:事件Mouse:鼠标Key:键Focus:焦点Listener:监听Border:边界Flow:流Grid:网格MenuBar:菜单栏Menu:菜单MenuItem:菜单项PopupMenu:弹出菜单Dialog:对话框Message:消息Icon:图标Tree:树Node:节点Jdbc:java database connectivity,java数据库连接DriverManager:驱动管理器Connection:连接Statement:表示执行对象Preparedstatement:表示预执行对象Resultset:结果集Next:下一个Close:关闭executeQuery:执行查询Jbuilder中常用英文(共33个)File:文件New:新建New Project:新建项目New Class: 新建类New File:新建文件Open project:打开项目Open file:打开文件Reopen:重新打开Close projects:关闭项目Close all except…:除了..全部关闭Rename:重命名Exit:退出View:视图Panes:面板组Project:项目Content:内容Structure:结构Message:消息Source:源文件Bean:豆子Properties:属性Make:编绎Build:编绎Rebuild:重编绎Refresh:刷新Project properties:项目属性Default project properties:默认的项目属性Run:运行Debug:调试Tools:工具Preferences:参数配置Configure:配置Libraries:库JSP中常用英文URL: Universal Resource Location:统一资源定位符IE: Internet Explorer 因特网浏览器JSP:java server page.java服务器页面Model:模型View:视图C:controller:控制器Tomcat:一种jsp的web服务器WebModule:web模块Servlet:小服务程序Request:请求Response:响应Init: initialize,初始化Service:服务Destroy:销毁Startup:启动Mapping:映射pattern:模式Getparameter:获取参数Session:会话Application:应用程序Context:上下文redirect:重定向dispatch:分发forward:转交setAttribute:设置属性getAttribute:获取属性page:页面contentType:内容类型charset:字符集include:包含tag:标签taglib:标签库EL:expression language,表达式语言Scope:作用域Empty:空JSTL:java standard tag library,java标准标签库TLD:taglib description,标签库描述符Core:核心Test:测试Foreach:表示循环Var:variable,变量Status:状态Items:项目集合Fmt:format,格式化Filter:过滤报错英文第一章:JDK(Java Development Kit) java开发工具包JVM(Java Virtual Machine) java虚拟机Javac 编译命令java 解释命令Javadoc 生成java文档命令classpath 类路径Version 版本author 作者public 公共的class 类static 静态的void 没有返回值String 字符串类System 系统类out 输出print 同行打印println 换行打印JIT(just-in-time) 及时处理第二章:byte 字节char 字符boolean 布尔short 短整型int 整形long 长整形float 浮点类型double 双精度if 如果else 否则switch 多路分支case 与常值匹配break 终止default 默认while 当到循环do 直到循环for 已知次数循环continue结束本次循环进行下次跌代length 获取数组元素个数第三章:OOP object oriented programming 面向对象编程Object 对象Class 类Class member 类成员Class method 类方法Class variable 类变量Constructor 构造方法Package 包Import package 导入包第四章:Extends 继承Base class 基类Super class 超类Overloaded method 重载方法Overridden method 重写方法Public 公有Private 私有Protected 保护Static 静态Abstract 抽象Interface 接口Implements interface 实现接口第五章:Exception 意外,异常RuntimeExcepiton 运行时异常ArithmeticException 算术异常IllegalArgumentException 非法数据异常ArrayIndexOutOfBoundsException 数组索引越界异常NullPointerException 空指针异常ClassNotFoundException 类无法加载异常(类不能找到)NumberFormatException 字符串到float类型转换异常(数字格式异常)IOException 输入输出异常FileNotFoundException 找不到文件异常EOFException 文件结束异常InterruptedException (线程)中断异常try 尝试catch 捕捉finally 最后throw 投、掷、抛throws 投、掷、抛print Stack Trace() 打印堆栈信息get Message()获得错误消息get Cause()获得异常原因method 方法able 能够instance 实例check 检查第六章:byte(字节)char(字符)int(整型)long(长整型)float(浮点型)double(双精度)boolean(布尔)short(短整型)Byte (字节类)Character (字符类)Integer(整型类)Long (长整型类)Float(浮点型类)Double (双精度类)Boolean(布尔类)Short (短整型类)Digit (数字)Letter (字母)Lower (小写)Upper (大写)Space (空格)Identifier (标识符)Start (开始)String (字符串)length (值)equals (等于)Ignore (忽略)compare (比较)sub (提取)concat (连接)replace (替换)trim (整理)Buffer (缓冲器)reverse (颠倒)delete (删除)append (添加)Interrupted (中断的)第七章:Date 日期,日子After 后来,后面Before 在前,以前Equals 相等,均等toString 转换为字符串SetTime 设置时间Display 显示,展示Calendar 日历Add 添加,增加GetInstance 获得实例getTime 获得时间Clear 扫除,清除Clone 克隆,复制Util 工具,龙套Components 成分,组成Month 月份Year 年,年岁Hour 小时,钟头Minute 分钟Second 秒Random 随意,任意Next Int 下一个整数Gaussian 高斯ArrayList 对列LinkedList 链表Hash 无用信息,杂乱信号Map 地图Vector 向量,矢量Size 大小Collection 收集Shuffle 混乱,洗牌RemoveFirst 移动至开头RemoveLast 移动至最后lastElement 最后的元素Capacity 容量,生产量Contains 包含,容纳Copy 副本,拷贝Search 搜索,查询InsertElementAt 插入元素在某一位置第八章:io->in out 输入/输出File 文件import 导入exists 存在isFile 是文件isDirectory 是目录getName 获取名字getPath 获取路径getAbsolutePath 获取绝对路径lastModified 最后修改日期length 长度InputStream 输入流OutputStream 输出流Unicode 统一的字符编码标准, 采用双字节对字符进行编码Information 信息FileInputStream 文件输入流FileOutputStream文件输出流IOException 输入输出异常fileobject 文件对象available 可获取的read 读取write 写BufferedReader 缓冲区读取FileReader 文本文件读取BufferedWriter 缓冲区输出FileWriter 文本文件写出flush 清空close 关闭DataInputStream 二进制文件读取DataOutputStream二进制文件写出EOF 最后encoding 编码Remote 远程release 释放第九章:JBuider Java 集成开发环境(IDE)Enterprise 企业版Developer 开发版Foundation 基础版Messages 消息格Structure 结构窗格Project 工程Files 文件Source 源代码Design 设计History 历史Doc 文档File 文件Edit 编辑Search 查找Refactor 要素View 视图Run 运行Tools 工具Window 窗口Help 帮助Vector 矢量addElement 添加内容Project Winzard 工程向导Step 步骤Title 标题Description 描述Copyright 版权Company 公司Aptech Limited Aptech有限公司author 作者Back 后退Finish 完成version 版本Debug 调试New 新建ErrorInsight 调试第十章:JFrame 窗口框架JPanel 面板JScrollPane 滚动面板title 标题Dimension 尺寸Component 组件Swing JA V A轻量级组件getContentPane 得到内容面板LayoutManager 布局管理器setVerticalScrollBarPolicy 设置垂直滚动条策略AWT(Abstract Window Toolkit)抽象窗口工具包GUI (Graphical User Interface)图形用户界面VERTICAL_SCROLLEARAS_NEEDED 当内容大大面板出现滚动条VERTICAL_SOROLLEARAS_ALWAYS 显示滚动条VERTICAL_SOROLLEARAS_NEVER 不显示滚动条JLabel 标签Icon 图标image 图象LEFT 左对齐RIGHT 右对齐JTextField 单行文本getColumns 得到列数setLayout 设置布局BorderLayout 边框布局CENTER 居中对齐JTextArea 多行文本setFont 设置字体setHorizontalAlignment 设置文本水平对齐方式setDefaultCloseOperation 设置默认的关闭操作add 增加JButton 按钮JCheckBox 复选框JRadioButton单选按钮addItem 增加列表项getItemAt 得到位置的列表项getItemCount 得到列表项个数setRolloverIcon 当鼠标经过的图标setSelectedIcon 当选择按钮的图标getSelectedItem 得到选择的列表项getSelectedIndex 得到选择的索引ActionListener 按钮监听ActionEvent 按钮事件actionPerformed 按钮单击方法附加………….可能有重复编程英语:(手摘)abstract (关键字) 抽象['?bstr?kt]access vt.访问,存取['?kses]‘(n.入口,使用权)algorithm n.算法['?lg?riem]Annotation [java] 代码注释[?n?u'tei??n]anonymous adj.匿名的[?'n?nim?s]‘(反义:directly adv.直接地,立即[di'rektli, dai'rektli])apply v.应用,适用[?'plai]application n.应用,应用程序[,?pli'kei??n]‘(application crash 程序崩溃) arbitrary a.任意的['ɑ:bitr?ri]argument n.参数;争论,论据['ɑ:gjum?nt]‘(缩写args)assert (关键字) 断言[?'s?:t] ‘(java 1.4 之后成为关键字)associate n.关联(同伴,伙伴) [?'s?u?ieit]attribute n.属性(品质,特征) [?'tribju:t]boolean (关键字) 逻辑的, 布尔型call n.v.调用; 呼叫; [k?:l]circumstance n.事件(环境,状况) ['s?:k?mst?ns]crash n.崩溃,破碎[kr??]cohesion 内聚,黏聚,结合[k?u'hi:??n](a class is designed with a single, well-focoused purpose. 应该不止这点)command n. 命令,指令[k?'mɑ:nd](指挥, 控制) (command-line 命令行) Comments [java] 文本注释['k?ments]compile [java] v.编译[k?m'pail]‘Compilation n.编辑[,k?mpi'lei??n]const (保留字)constant n. 常量, 常数, 恒量['k?nst?nt]continue (关键字)coupling 耦合,联结['k?pli?]making sure that classes know about other classes only through their APIs.declare [java] 声明[di'kl??]default (关键字) 默认值; 缺省值[di'f?:lt]delimiter 定义符; 定界符Encapsulation[java] 封装(hiding implementation details)Exception [java] 例外; 异常[ik'sep??n]entry n.登录项, 输入项, 条目['entri]enum (关键字)execute vt.执行['eksikju:t]exhibit v.显示, 陈列[ig'zibit]exist 存在, 发生[ig'zist] ‘(SQL关键字exists)extends (关键字) 继承、扩展[ik'stend]false (关键字)final (关键字) finally (关键字)fragments 段落; 代码块['fr?gm?nt]FrameWork [java] 结构,框架['freimw?:k]Generic [java] 泛型[d?i'nerik]goto (保留字) 跳转heap n.堆[hi:p]implements (关键字) 实现['implim?nt]import (关键字) 引入(进口,输入)Info n.信息(information [,inf?'mei??n] )Inheritance [java] 继承[in'herit?ns] (遗传,遗产)initialize 预置初始化[i'ni??laiz]instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。
servlet常用方法

servlet常用方法Servlet是在服务器端运行的Java程序,可以接收客户端请求并做出响应。
Servlet 常用的方法包括:1、init(ServletConfig config): 初始化方法,在Servlet第一次创建时调用,且只调用一次。
2、service(ServletRequest request, ServletResponse response): 服务方法,处理客户端的请求,返回响应给客户端。
这个方法在接收到一个请求时被调用一次。
3、destroy(): 销毁方法,当服务器停止或者卸载Servlet时调用,仅执行一次。
4、getServletConfig(): 返回当前Servlet的配置对象。
5、getServletInfo(): 返回关于Servlet的描述信息。
6、getAttribute(String name): 获取名称为name的属性值。
7、setAttribute(String name, Object object): 在请求中保存名称为name的属性。
8、getInitParameter(String name): 返回初始化参数name的值。
9、getServletContext(): 返回当前Servlet的上下文。
10、getMajorVersion(), getMinorVersion(): 返回主、次版本号。
11、getEffectiveMajorVersion(), getEffectiveMinorVersion(): 返回实际主、次版本号。
这些是Servlet常用的一些方法,帮助我们更好地进行请求处理、信息获取以及状态管理等操作。
《JSP实用教程(第三版)》课后答案

《JSP实用教程(第三版)》课后答案第1章 JSP简介1.安装Tomcat引擎的计算机需要事先安装JDK吗?答:需要。
2.怎样启动和关闭Tomcat服务器?答:bin目录下使用startup.bat启动Tomcat服务器。
bin目录下使用shutdown.bat 关闭Tomcat服务器。
3. Boy.jsp和boy.jsp是否是相同的JSP文件名字?答:不是4. 请在D:\下建立一个名字为water的目录,并将该目录设置成一个Web服务目录,然后编写一个简单JSP页面保存到该目录中,让用户使用虚拟目录fish 来访问该JSP页面。
答:设置方法:①建立D:\ water目录;②修改server.xml文件,在</host>上一行添加:<Context path="/fish" docBase="D:\ water" debug="0" reloadable="true"/>③使用http://localhost:8080/ fish /example1_1.jsp访问example1_1.jsp页面.5. 假设Dalian是一个Web服务目录,其虚拟目录为moon。
A.jsp保存在Dalian 的子目录sea中。
那么在Tomcat服务器(端口号8080)所在计算机的浏览器键入下列哪种方式是访问A.jsp的正确方式?A.http://127.0.0.1:8080/A.jsp B. http://127.0.0.1:8080/Dalian/A.jspC. http://127.0.0.1:8080/moon/A.jspD. http://127.0.0.1:8080/moon/sea/A.jsp 答:D6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?答:修改Tomcat服务器的conf目录下的主配置文件server.xml可以更改端口号.若Tomcat服务器上没有其它占有80端口号的程序,可以将其修改为80,否则不能。
servlet、javabean创建和使用方法

servlet、javabean创建和使用方法Servlet是一种用于处理HTTP请求的Java应用程序框架。
它是Java Web 开发中的核心组件之一,能够通过Servlet容器将HTTP请求转发给服务器,并对服务器返回的响应进行处理。
JavaBean是Java中用于描述对象属性的一种数据类型。
JavaBean是一种封装性较高的对象,可以通过Java编程语言直接访问和操作。
在Servlet中,JavaBean是一种重要的数据存储方式,可以将Web应用程序中的数据存储在服务器端,以便更好地管理和操作数据。
下面是创建和使用Servlet和JavaBean的一般步骤:1. 创建Servlet:在Web应用程序的根目录下创建Servlet的Java文件,通常命名为`servlet.java`。
在Servlet的Java文件中,需要定义Servlet的接口和实现类。
接口定义Servlet的响应和处理逻辑,实现类则具体实现接口。
2. 创建JavaBean:在Web应用程序的根目录下创建JavaBean的Java文件,通常命名为`javabean.java`。
在JavaBean的Java文件中,需要定义JavaBean 的属性和方法。
属性是Servlet接收的数据,方法是Servlet处理数据的方法。
3. 创建Servlet容器:在Web应用程序的根目录下创建Servlet容器的Java 文件,通常命名为`servlet-api.java`。
在Servlet容器的Java文件中,需要定义Servlet容器的接口和实现类。
4. 创建Servlet调用:在Web应用程序的HTML页面中,需要使用Servlet容器提供的API来调用Servlet。
例如,可以使用`<servlet>`标签来引用Servlet,然后使用`<servlet-name>`属性来指定Servlet的名称。
5. 编写Servlet代码:在Servlet的接口和实现类中,需要编写具体的响应和处理逻辑。
Servlet工作原理

Servlet工作原理Servlet是Java编写的服务器端程序,用于处理客户端的请求并生成响应。
它是JavaEE(Java Enterprise Edition)规范的一部分,可以在支持Servlet规范的Web 服务器上运行。
Servlet工作原理可以概括为以下几个步骤:1. 客户端发起请求:当用户在浏览器中输入URL或点击链接时,会发送HTTP 请求到Web服务器。
2. Web服务器接收请求:Web服务器接收到客户端的请求后,会根据URL将请求发送给相应的Servlet。
3. Servlet容器加载Servlet:Servlet容器(如Tomcat)负责加载Servlet并创建Servlet实例。
Servlet容器是Web服务器的一部分,负责管理Servlet的生命周期和处理Servlet的请求。
4. Servlet初始化:在Servlet实例创建后,容器会调用其init()方法进行初始化。
在初始化阶段,可以进行一些必要的配置,如读取配置文件、建立数据库连接等。
5. 处理请求:一旦Servlet初始化完成,容器会调用其service()方法来处理客户端的请求。
service()方法根据请求的类型(GET、POST等)调用相应的doGet()、doPost()等方法进行处理。
6. 生成响应:在处理请求的过程中,Servlet可以通过调用response对象的方法生成响应内容。
可以设置响应的状态码、头部信息和正文内容。
7. 响应发送给客户端:当Servlet生成完响应后,容器会将响应发送给Web服务器,然后Web服务器将其传输给客户端。
8. Servlet销毁:当Web服务器关闭或重新加载Web应用时,容器会销毁Servlet实例。
在销毁之前,容器会调用Servlet的destroy()方法执行一些清理工作。
Servlet工作原理的关键是Servlet容器的管理和调度。
Servlet容器负责接收请求、加载Servlet、调用Servlet的方法、生成响应并发送给客户端。
java程序设计第二版课后答案

java程序设计第二版课后答案Java程序设计第二版课后答案涵盖了多个章节,每个章节都包含了不同的编程概念和练习题。
以下是一些常见章节的课后答案概要,以供参考:第1章:Java简介- 1.1 Java的起源和特点- 1.2 Java平台的组成- 1.3 Java开发环境的搭建第2章:基本语法- 2.1 数据类型- 2.2 变量声明- 2.3 运算符- 2.4 控制语句(if, switch, loop)第3章:控制流程- 3.1 条件语句(if-else, switch-case)- 3.2 循环语句(for, while, do-while)- 3.3 跳转语句(break, continue, return)第4章:数据结构- 4.1 数组的定义和使用- 4.2 字符串的处理- 4.3 集合框架简介第5章:面向对象编程- 5.1 类和对象- 5.2 构造方法- 5.3 继承- 5.4 封装和多态第6章:异常处理- 6.1 异常的概念- 6.2 异常的分类- 6.3 异常的处理方式(try-catch-finally)第7章:输入输出- 7.1 标准输入输出- 7.2 文件输入输出- 7.3 序列化第8章:Java集合框架- 8.1 集合的基本概念- 8.2 List接口及其实现- 8.3 Set接口及其实现- 8.4 Map接口及其实现第9章:泛型- 9.1 泛型的概念- 9.2 泛型的使用- 9.3 泛型的限制第10章:多线程- 10.1 线程的概念- 10.2 创建和启动线程- 10.3 线程的同步第11章:网络编程- 11.1 网络编程基础- 11.2 Socket编程- 11.3 URL和URLConnection第12章:图形用户界面- 12.1 AWT和Swing- 12.2 事件处理- 12.3 布局管理器第13章:Java数据库连接- 13.1 JDBC基础- 13.2 数据库连接和操作- 13.3 SQL语句的使用第14章:Java Web应用- 14.1 Servlet基础- 14.2 JSP技术- 14.3 MVC架构模式每个章节的课后答案通常包括理论问题和编程练习题的解答。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.部署Servlet
1. 字节码的保存 首先将Servlet源文件编译生成字节码文件,如上述例 子Servlet类编译后的字节码文件就是Hello.class。 为了让Tomcat服务器使用Hello.class字节码创建一个 Servlet对象,需要将Hello.class保存到某个Web服务 器目录中的子目录中。 如 果 Servlet 类 Hello 的 包 名 是 :star.moon. 首 先 将 Servlet源文件编译生成字节码文件:Hello.class ,然 后复制到: Web服务目录\WEB-INF\classes\star\moon 注:在创建新的子目录后,为了让Tomcat启用新的目录, 需重新启动Tomcat服务器。
我们编写的web.xml文件的内容如下(使用纯文本编辑) <?xml version="1.0" encoding="ISO-8859-1"?> <web-app> <servlet> <servlet-name>hello</servlet-name> <servlet-class>star.moon.Hello</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/lookHello</url-pattern> </servlet-mapping> </web-app>
注:init()方法只被调用一次,即在Servlet第一次被请求加载 时调用该方法。当后续的客户请求Servlet时,Web服务将 启 动 一 个 新 的 线 程 , 在 该 线 程 中 , Servlet 对 象 调 用 service()方法响应客户的请求。
service()方法
service()是HttpServlet类中的方法,我们可以在Servlet类中
givenumber.jsp页面
<%@ page contentType="text/html;Charset=GB2312" %> <HTML><BODY ><Font size=2> <P>输入一个数,servlet求这个数的平方根: <FORM action=“getResult" method=post> <Input Type=text name=number>
直接继承或重写该方法。
service()方法的生命格式如下:
public void service(HttpServletRequest request,HttpServletResponse response)throws IOException
当Servlet对象成功创建和初始化后,该对象调用service()方 法来处理客户的请求并返回响应。 服务器将两个方法传递给该方法: (1)HttpServletRequest对象:封装了用户的请求信息 (2)HttpServletResponse对象:用来响应用户的请求 注:service()可以被调用多次,调用过程运行在不同的线程中, 互不干扰。
5. Servlet的生命周期
一个Servlet对象的生命周期主要由下列3个过程组成:
(1) 初始化Servlet对象。Servlet对象第一次被请求加载时, 服务器初始化这个Servlet对象,即创建一个Servlet对象, 对象调用init()方法完成必要的初始化工作。
(2)诞生的Servlet对象再调用service()方法响应客户的请求。 (3)当服务器关闭时,调用destroy()方法,消灭Servlet对象。
2. 编写web.xml文件 为了让Tomcat服务器用我们的字节码文件创建对 象,我们必须为Tomcat编写一个部署文件。 部署文件的命名: 该部署文件是一个XML文件,名字是web.xml,该文 件由Tomcat服务器负责管理。 部署文件的存放: web.xml文件保存到Web服务目录的WEB-INF子目录中。 如C:\JSP\WEB-INF目录
8.3.1通过表单向Servlet提交数据
例8-1 JSP页面通过表单向Servlet提交一个正实数, Servlet负责计算这个数的平方根返回给客户。 Web.xml文件需要添加的内容如下:
<servlet> <servlet-name>computer</servlet-name> <servlet-class>puter</servlet-class> </servlet> <servlet-mapping> <servlet-name>computer</servlet-name> <url-pattern>/getResult</url-pattern> </servlet-mapping>
<?xml version="1.0" encoding="ISO-8859-1"?>
Web.xml文件中标记的内容和作用
<web-app>根标记: Xml文件必须有一个根标记,web.xml文件的根标记是<webapp>。 <servlet>标记: Web.xml文件中可以有若干个<servlet>标记,该标记的内容由 Tomcat服务器负责处理。 <servlet>标记需要有2个字标记: <servlet-name>:创建servlet对象的名字 <servlet-class>:指定Tomcat服务器用哪个类来创建Servlet 对象。 注意:<servlet>标记可以有多个,但要求<servlet-name>子 标记的内容互不相同;
关于XML文件的标记
一个XML文件应当以XML声明作为第一行,在其前面不 能有空白、其他处理指令或注释。 XML文件的开始标识: XML声明以“<?xml”标识开始、以“?>”标识结束。 注: “<?” 和“xml”之间, “?>” 和“?>”之间不能有 空格。
Encoding属性: 如果在XML声明中没有显示地指定encoding属性的值, 那么该属性默认值为UTF-8编码。 也可以将encoding属性的值设置为“ISO-8859-1” 例如ttpServlet类中的方法,一个Servlet 类可以直接继承这个方法,一般不需要重写。 当服务器终止服务时,如果关闭服务器等, destroy()方法会被执行,消灭Servlet对象。
8.3通过JSP页面调用Servlet
请求servlet对象的方式: 1.再浏览器的地址栏中输入Servlet对象的 请求格式来运行一个Servlet。 2.通过一个JSP页面来请求一个Servlet, 也就是说让JSP页面负责数据的显示,让 servlet去做和处理数据有关的事情。
下 面 的 例 子 是 一 个 简 单 的 Servlet 类 , 该 类 创 建 的 Servlet可以响应用户的请求,即用户请求这个Servlet 时,会在浏览器看到“您好,欢迎您。Hello,You are Welcome”,这样响应的信息。
例8-1 package star.moon; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Computer extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); } public void service(HttpServletRequest request,HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=GB2312"); //设置响应的MIME类型 PrintWriter out=response.getWriter();//获得一个向客户发送数据的输 出流 out.println(“<HTML><BODY>”); out.println(“您好,欢迎您。Hello,You are Welcome”); out.println(“</BODY></HTML>”); } }
注:当Servlet对象hello被创建之后,如果修改了 创建servlet的Java源文件,并希望用新的Java文 件生成的字节码重新创建Servlet对象hello,那么 必须重新启动Tomcat服务器。
8.2Servlet工作原理
Servlet有Tomcat服务器负责管理运行。 当多个客户请求一个Servlet时,服务器 为每个客户启动一个线程而不是启动一 个进程,这些线程由服务器来管理。
第8章Java Servlet基础
JSP页面运行原理:当用户请求服务器上的一个JSP页面时, 服务器负责把JSP页面文件转译成一个JAVA文件,再将这 个Java文件编译生成字节文件,然后将这个字节文件加载 到内存,并通过它来执行它来响应请求。 服务器将字节码创建了一个对象,然后让这个对象调用方 法响应用户的请求,当多个用户请求同一个JSP页面时, 服务器启动多个线程,然后调用方法响应用户的请求。 Java Servlet技术就是在服务器端创建响应用户请求对象 的技术,被创建的对象习惯上称为一个Servlet对象。