JSP入门教程(1)
- 格式:docx
- 大小:21.45 KB
- 文档页数:14
JSP基础教程学习笔记JSP基础教程学习笔记 (1)一、jsp简介 (2)二、jsp结构 (2)三、JSP生命周期 (3)四、jsp语法 (4)五、jsp指令 (7)六、jsp动作元素 (9)七、jsp隐含对象 (17)八、jsp客户端请求 (20)九、jsp服务器响应 (25)十、JSP HTTP状态码 (29)十一、JSP表单处理 (33)十二、JSP过滤器 (40)十三、JSP Cookies处理 (43)十四、JSP Session (46)十五、JSP文件上传 (51)十六、JSP日期处理 (56)十七、JSP页面重定向 (62)十八、JSP点击量统计 (63)十七、JSP自动刷新 (66)十八、JSP发送邮件 (68)一、jsp简介Java Server Pages,一种动态网页开发技术,使用jsp在html网页中插入java代码,标签通常以<%开头,以&>结尾。
二、jsp结构网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面。
容器负责截获对JSP页面的请求。
Jsp容器与web服务器协同合作,未jsp的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于jsp 网页的图书元素。
下图显示jsp容器和jsp文件在web应用中所处的位置:Jsp处理的步骤:1.同普通网页一样,浏览器发送http请求给服务器;2.Web服务器识别出这事一个对jsp网页的请求,并且将该请求传递给jsp引擎。
通过使用URL或者.jsp文件来完成;3.Jsp引擎从磁盘中载入jsp文件,然后将它们转化为servlet。
这种转化只是简单的将所有模板文本改用println()语句,并且将所有的jsp元素转化成java代码;4.Jsp引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎;5.Web拂去其的某组件将会调用servlet引擎,然后载入并执行servlet类。
Jsp入门教程目录1文档概述 (3)1.1 目的 (3)1.2 范围 (3)2JSP语法 (3)3JSP实例 (12)4JSP与SERVLET (23)5JSP数据库操作 (28)1文档概述1.1目的熟悉JSP语法知识;掌握JSP与servlet的联系;掌握JSP中如何操作oracle数据库中的数据1.2范围本文档适用于陕西地税全体项目组和专家阅读2JSP语法JSP语法HTML 注释在客户端显示一个注释.JSP 语法<!-- comment [ <%= expression %> ] -->例子 1<!-- This file displays the user login screen -->在源代码中产生和上面一样的数据:<!-- This file displays the user login screen -->例子 2<!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->在源代码中显示为:<!-- This page was loaded on January 1, 2000 -->描述这种注释和HTML中很像,也就是它可以在"查看源代码"中看到.唯一有些不同的就是,你可以在这个注释中用表达式(例子2所示).这个表达示是不定的,由页面不同而不同,你能够使用各种表达式,只要是合法的就行。
更多的请看表达式JSP 语法<%-- comment --%>例子:<%@ page language="java" %><html><head><title>A Comment Test</title></head><body><h2>A Test of Comments</h2><%-- This comment will not be visible in the page source --%></body></html>描述用隐藏注释标记的字符会在JSP编译时被忽略掉。
JSP简介什么是Java Server Pages?JSP全称Java Server Pages,是一种动态网页开发技术。
它使用JSP标签在HTML网页中插入Java代码。
标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
为什么使用JSP?JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势:•性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
•服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
•JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
•JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet 模板引擎所支持。
最后,JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。
这意味着JSP可以用最简单的方式来实现最复杂的应用。
JSP的优势以下列出了使用JSP带来的其他好处:•与ASP相比:JSP有两大优势。
首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。
第二点就是JSP易于移植到非MS平台上。
•与纯Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
•与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
jsp入门教程0.0.1版权© 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。
QQ:475784337QQ群:51239192MSN:********************EMAIL:********************2008-02-28 20:05:06目录序言 (5)作者说 (5)1. 想用jsp做网站的朋友看过来 (5)2. 预备知识 (5)3. java环境配置 (6)3.1. 安装jdk (6)注意 (11)3.2. 配置tomcat服务器 (11)第 1 章开始编写jsp (15)注意 (15)1.1. 开篇第一个jsp (15)注意 (15)1.2. B/S结构,请求与响应 (16)第 2 章让jsp说hello (19)注意 (19)2.1. 另一个简单jsp (19)2.2. 中文乱码 (21)2.2.1. 先解决响应中的乱码 (21)2.2.2. POST乱码 (23)2.2.3. GET乱码 (23)第 3 章请求的跳转与转发 (25)注意 (25)3.1. 范例 (25)3.2. 如果用forward (26)3.3. 如果用redirect (28)3.4. forward和redirect的问题 (31)3.4.1. 绝对路径与相对路径 (31)3.4.2. forward导致找不到图片 (33)第 4 章四个作用域 (36)注意 (36)4.1. 何为作用域 (36)4.2. 例子:在线列表 (38)第 5 章结合javabean实现CRUD (44)注意 (44)5.1. 概念和命名方式 (44)5.2. Read(读取) (45)5.3. Create(创建) (48)5.4. Update(更新) (50)5.5. Delete(删除) (52)注意 (57)第 6 章贴近servlet (58)注意 (58)6.1. servlet是什么 (58)6.2. jsp与servlet的关系 (60)6.3. 使用servlet改写联系簿 (63)第 7 章使用filter过滤请求 (68)注意 (68)7.1. 批量设置请求编码 (68)7.2. 用filter控制用户访问权限 (69)7.3. filter所谓的特性 (72)7.3.1. 请求映射 (72)7.3.2. 过滤链 (75)7.4. filter的详细配置 (76)第 8 章配置listener监听器 (78)注意 (78)8.1. 使用HttpSessionListener (78)8.2. 使用HttpSessionBindingListener (80)第 9 章封装taglib组件 (83)注意 (83)9.1. 用taglib实现循环 (83)9.2. 关于jstl (87)第 10 章综合电子留言板 (89)注意 (89)10.1. 电子留言板用户指南 (89)10.2. 数据库设计 (91)10.3. 功能设计 (93)10.3.1. 用户管理 (93)10.3.2. 主题回复管理 (97)10.3.3. 显示在线用户列表 (101)10.4. 总结 (102)第 11 章文件上传 (103)注意 (103)11.1. 远程网盘 (103)11.2. 浏览器部分的设置 (106)第 12 章导出文件 (108)注意 (108)12.1. 图片校验码 (108)12.2. 图片校验码- jsp版 (112)第 13 章剖析el表达式 (116)注意 (116)13.1. 再谈el(Expression Language) (116)注意 (118)13.3. 运算符 (121)第 14 章生命周期 (123)注意 (123)14.1. 生命周期 (123)14.2. 线程模型 (125)14.3. 在jsp中定义类变量 (127)注意 (127)14.4. jsp九大默认对象 (129)第 15 章分页 (132)注意 (132)15.1. 数据库分页 (132)15.2. 使用jstl改写分页 (139)第 16 章 Never End... .. (142)16.1. 对session何时生成的无用讨论 (142)16.2. 对手工将jsp转换为servlet的无用讨论 (144)16.3. 胡乱解释一下session (146)16.4. 下载文件乱码 (147)序言作者说1. 想用jsp做网站的朋友看过来亲爱的朋友,你们好吗?如果你想用jsp做网站,小程序,或者其他什么东西,那么你算是找对地方了。
jsp教程JSP(JavaServer Pages)是一种用于在Web应用程序中创建动态内容的Java技术。
它允许开发人员将Java代码嵌入到HTML页面中,以便在Web服务器上动态生成页面。
本篇教程将介绍JSP的基本知识和用法。
首先,我们需要了解JSP的工作原理。
当客户端发送一个HTTP请求到服务器时,服务器会使用JSP引擎将JSP文件编译成Servlet,然后再将生成的Servlet代码编译成字节码。
最后,生成的字节码运行在Servlet容器中,用于处理HTTP请求并生成响应。
在使用JSP时,我们首先需要在Web应用程序中创建一个JSP文件。
JSP文件的扩展名通常为.jsp。
在JSP文件中,我们可以使用HTML标记编写页面的静态内容,同时可以使用JSP标记来插入Java代码。
JSP标记分为两种类型:指令和动作。
指令用于编译时信息的处理,通常放在JSP文件的开头。
主要的指令包括page、include和taglib等。
动作则用于运行时的处理,通常嵌套在HTML标记中。
常见的动作包括include、forward和param等。
在JSP文件中,我们可以通过脚本元素嵌入Java代码。
脚本元素由<%和%>括起来,可以在其中编写任何有效的Java代码。
脚本元素可以用于声明变量、定义方法、调用Java库等。
除了使用脚本元素嵌入Java代码外,JSP还提供了标准动作和标签库的支持。
标准动作是预定义的动作,可以直接使用而无需编写Java代码。
常见的标准动作包括<jsp:include>、<jsp:forward>和<jsp:useBean>等。
标签库则允许我们使用自定义标签来实现更复杂的功能。
JSP还提供了内置对象来方便开发人员访问和操作Web应用程序的各个方面。
内置对象包括request、response、session、application、out和pageContext等。
第1章JSP概述1.1什么是JSP网络通信中最常见的模式是B/S模式,即需要获取信息的用户使用浏览器向某个服务器发出请求,服务器进行必要的处理后,将有关信息发送给服务器。
在B/S模式中,服务器上必须有所谓的Web应用程序,这样的应用程序负责处理用户的请求,满足用户对信息的请求。
JSP是Web服务器端开发技术,利用这一技术可以建立安全、跨平台的Web应用程序。
JSP的安全性和跨平台得益于Java语言,这是因为Java语言具有不依赖于平台、面向对象和安全等优良特性,已经成为网络程序设计的佼佼者。
许多和Java有关的技术得到了广泛的应用和认可,JSP技术就是其中之一。
读者可能对Microsoft的ASP(Active Server Pages)比较熟悉,ASP也是一项Web服务器端的开发技术,可以开发出动态的、高性能的Web服务应用程序。
JSP和ASP技术非常相似。
ASP使用的是VBScript脚本语言,而JSP使用的是Java编程语言。
与ASP相比,JSP以Java技术为基础,又在许多方面做了改进,具有动态页面与静态页面分离、能够脱离硬件平台的束缚及编译后运行等优点,完全克服了ASP的脚本级执行的缺点。
JSP已经成为开发动态网站的主流技术。
需要强调的一点是:要想真正地掌握JSP技术,必须有较好的Java语言基础,以及HTML语言方面的知识。
1.2安装配置JSP运行环境JSP的核心内容就是编写JSP页面(有关JSP页面的内容见本章1.3节和第2章的2.1节)。
对于JSP页面,需要一个应用程序来运行它,我们将这样的应用程序称作JSP 引擎或JSP容器。
将安装JSP引擎的计算机称作一个支持JSP的Web服务器。
支持JSP 的Web服务器负责运行JSP,并将运行结果返回给用户,有关JSP的运行原理将在1.4节讲解。
自从JSP发布以后,出现了各式各样的JSP引擎。
1999年10月Sun公司将Java Server Page 1.1代码交给Apache组织,Apache组织对JSP进行了实用研究,并将这个服务器项目称为Tomcat。
JSP入门一、JSP简介:JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式编写。
为了与普通HTML页面相区别,JSP页面的文件扩展名必须为.jsp。
在JSP页面中编写的Java代码需要嵌套在<%和%>中,嵌套在<%和%>之间的内容被称为脚本片段(Scriptlets),没有嵌套在<%和%>之间的内容被称为模板元素。
JSP 文件和普通的HTML文件可以放置在Web应用程序中的除了WEB-INF及其子目录之外的其他任何目录中,访问路径由Web应用程序的访问路径加上JSP文件在该应用程序中的目录路径组成。
二、JSP的运行原理:Web容器接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP 引擎(org.apache.jasper.servlet.JspServlet)去处理,JSP引擎负责解释和执行JSP页面。
每个JSP页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由Web容器像调用普通Servlet 程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。
如果在翻译JSP页面的过程中发现了任何JSP语法错误或者在编译由JSP页面所翻译成Servlet源程序过程中发现了任何Java语法错误,JSP引擎将中断翻译或编译过程,并将错误的详细信息发送给客户端。
三、注册与配置JSP页面的访问路径:JSP页面也可以像Servlet一样在web.xml文件中进行注册,包括宣称它可以处理的请求URL和设置供ServletConfig.getInitParameter方法调用的初始化参数。
其配置的语法格式如下:<servlet><servlet-name>JSPServelt名称(自己定义)</servlet-name><jsp-file>/JSP文件的路径</jsp-file>…</servlet>…<servlet-mapping><servlet-name>JSPServlet名称</servlet-name><url-pattern>/请求的URL路径</url-pattern></servlet-mapping>注:其中JSP文件的路径必须以“/”开头,这个“/”表示JSP文件所在的Web应用程序的根目录。
JSP入门教程(1)你需要Java2软件开发工具箱(J2SDK),过去称之为Java开发工具箱(JDK)、JavaSe rver 网络开发工具箱(JSWDK)、Tomcat,或者其它能支持JSP的Web服务器。
升阳公司为Windows、Solaris以及Linux平台提供免费的J2SDK和JSWDK。
如果你想在现有的Web服务器上使用JSP,而此服务器本身不支持JSP和Java 代码片段,可以试用Allaire公司的Jrun。
它可以为Netscape的Enterprise Server和Fasttrack Se rver、微软的Internet Information Server(IIS)和Personal Web Server(PWS)、Apache以及其他服务器充当Web服务器附件。
你也可以使用Apache服务器的Java版,其中包含最新的JSWDK。
下载并安装所需的软件目前,版本号为1.2.2-001的J2SDK可下载版以可安装的归档文件形式出现。
这个大约20 MB的下载量软件可提供一个彻底的Java开发环境,让你创造任何基于Java并且利用了而标准核心API的解决方案。
其实,你的Web服务器使用JSP的唯一条件是要有Java编辑器。
要让Web服务器知道编辑器的位置,需要JAVA_HOME 环境变量设置为J2SDK安装目录。
如果你已经在Windows系统中进行了安装并且接受了默认目录,请将“set JAVA _HOME=C:1.2.2”添加到你的“autoexec.bat”文件中,然后重新启动。
安装J2SDK后,下载并安装JSWDK或者是Tomcat β版,即基于Java的Apache Web 服务器的β版。
你把JSWDK放在什么地方是无关紧要的,只要你以后能找到它就行。
通常,将其放在顶层目录中,这样你在替换JSWDK或JSDK时无需删除另一个软件。
安装好这个文件后,准备工作已经就绪,你可以开始JSP开发工作了。
正确地安装JSWDK后,请运行“startserver”脚本程序,以启动Web服务器,使其按照默认情况监听8080端口。
你要在启动服务器之后查看您是否已正确地安装了此工具,请加载一个JSP样本文件(http://locahost:8080/examples/jsp/)。
如果你能成功地运行这些样本文件,说明你已经正确地安装了这个软件。
如果你在用来启动服务器的控制台窗口中看到报错信息,你就需要做些修改。
最经常发生的问题是没有设置或不正确地设置了JAVA_ HOME环境变量。
要看到当前环境变量设置情况,要请在DOS提示符下键入“set”设置。
开始在解释JSP语法前,创建一个快捷网页,显示目当前的日期和时间,并然后将之其保存为sample.jsp:<html><head><title>First Page</title></head><body><H3>Today is:<%= new java.util.Date() %></H3></body></html>.把这个文件以及你所有的HTML 和JSP 页面放在JSWDK安装目录下的网页目录里。
你可以从http://localhost:8080/sample.jsp加载此网页。
该网页首次被访问时,Web服务器会把JSP编译成Java代码片段,这样你就能够看到当前的日期和时间了。
你已经下载、安装并配置好了开发环境,你可以开始学习JSP语法并创建自己的基于JSP 的解决方案了。
JSP基本语法讲完安装问题后,现在进入来讨论JSP语法。
一个投机取巧的办法是下载语法卡片。
如果你不熟悉Java编程,也许你想看一下Sun的指南。
然而网页创建者并不需要进行太多的Java开发。
除了一些方法调用,在你的JSP网页里应尽可能少用Java代码。
记住以上提示,我们首先来看一看JSP指令和脚本元素,之后我们会解释JavaBeans和隐含对象。
共有五种JSP指令和脚本元素。
在JSP 1.0版中,大部分JSP被一个以“<%”开头和以“%>”结尾的的标记括在其中。
在更新的JSP 1.1规范出台后,就有了与XML 兼容的版本。
JSP指令和脚本元素Directives <%@ directive %>Declarations <%! declaration %>Expressions <%= expression %>Code Fragment/Scriptlet <% code fragment %>Comments <%-- comment --%>指令JSP指令是为JSP引擎而设计的。
他们并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。
这些指令始终被括在“<%@ ?%>”标记中。
两个最重要的指令是“p agePage”和“Include”。
“Taglib”指令不在讨论之列,但是在用JSP1.1创建自定义标记可以使用它。
几乎在所有JSP页面顶部都会看到“Page”指令。
尽管不是必须的,但它可以让你指定:到何处查找起支持作用的Java类别:<%@ page import="java.util.Date" %>,出现Java运行问题时,将网上冲浪者引向何处:<%@ page errorPage="errorPage.jsp" %>,还有你是否需要管理用户的会话级信息,这些信息可能来自多个网页(在下面的JavaBeans一节将对此做进一步讲)述:<%@ page session="true" %>.“Include”指令可以把你的内容分成更多可管理的元素,比如包括一个普通页面页眉或页脚的元素。
包含的网页可以是一个固定的HTML 页面或更多的JSP内容:<%@ include file="filename.jsp" %>声明JSP声明用来让你定义页面级变量,以保存信息或定义JSP页面的其余部分可能需要的支持方法。
如果你发现代码太多,通常最好把它们写成一个独立的Java类别。
声明一般都在“<%! ?%>”标记中。
一定要以分号(;)结束变量声明,因为任何内容都必须是有效的Java 语句:<%! int i=0; %>。
表达式有了JSP表达式,表达式评估结果会被转换成一个字符串,并且被直接包括在输出页面之内。
JSP 表达式包含在“<%= ?%>”标记中,没有分号,除非在加引号的字符串部分使用分号。
<%= i %><%= "Hello" %> .代码片段/脚本片段代码片段/脚本片段(Scriptlets)JSP代码片段或脚本片段是嵌在“<% ?%>”标记中的。
这种Java代码在Web服务器响应请求时就会运行。
在脚本片段周围可能是原始的HTML 或XML语句,在这些地方,代码片段可以使你创建条件执行代码,或要用到另外一段代码的代码。
例如,以下的代码组合使用表达式和代码片段,显示H1、H2、H3和H4标记中的字符串“Hello”。
代码片段并不局限于一行源代码:<% for (int i=1; i<=4; i++) { %><H<%=i%>>Hello</H<%=i%>><% } %>.注释最后一个主要的JSP元素是嵌入式注释。
尽管你始终可以在文件中加入HTML注释,但用户在查看页面源代码时会看到这些注释。
如果你不想让用户看到它,你就应该将其嵌入“<% -- ?--%>”标记中:<%-- comment for server side only --%>.带JavaBean 的JSP虽然你可以把大段的代码放在脚本片段(scriptlet)内,但是绝大多数的Java代码属于可重复使用的名为JavaBea的组件。
JavaBean类似于ActiveX控件:他们都能提供常用功能并且可以重复使用。
JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。
以一个人来打比方,这个人就是一个JavaBean,这个人的名字、身份证号码以及住址就是其属性。
在JSP网站,你基本上就是通过玩“Connect the beans)”来使你的网站动态化。
假设JavaBean先于网站被创建出来,你需要做的第一件事就是告诉JSP页面它将要用到一个“Bean”。
你可以用“<jsp:useBean>”标记来做到这一点:<jsp:useBean id="localName" class="com.jguru.Person" scope="application" />。
“<jsp:useBean>”标记要求你用“id”属性来识鉴别Bean。
这里你提供一个名字来JSP 页面其余部分的Bean。
除了“id”属性,你还须告诉网页面从何处查找Bean,或者它的J ava类别名是什么。
这种类别属性提供确认Bean的功能,其他一些方法也可以做到这一点。
最后一个必需的元素是“scope”属性。
有了“scope”属性的帮助,你就能告诉Bea n为单一页面(默认情况)[scope="page"]、为[scope="request"]请求为会话[scope=" session"],或者为整个应用程序[scope="application"]保持留信息。
有了会话范围,你就能非常容易地在JSP网页面上维护购物车等项目。
一旦你声名了一个JavaBean,你就可以访问它的属性来定制它。
要获得属性值,请用“<jsp:getProperty>”标记。
有了这个标记,你就能指定将要用到的Bean名称(从useBea n的"id"字段得到)以及你想得到其值的属性。
实际的值被放在输出中:<jsp:getProperty id="localName" property="name" />。
要改变JavaBean属性,你必须使用“<jsp:setProperty>”标记。
对这个标记,你需要再次识别Bean和属性,以修改并额外提供新值。