java jsp学习指南
编者注: JavaServer Pages(JSP)技术使您可以轻松创建同时包含静态和动态组件的Web内容。 JSP技术提供了Java Servlet技术的所有动态功能,但提供了一种更自然的方法来创建静态内容。
JSP技术的主要功能包括用于开发JSP页面的语言,该语言是描述如何处理请求和构造响应的基于文本的文档,用于访问服务器端对象的表达语言以及用于定义JSP语言扩展的机制。
这是一篇独立的参考文章,提供了有关如何使用JSP的框架,并帮助您快速启动自己的应用程序。 请享用!
目录
- 1.简介
- 1.1。 为什么JSP比Servlet更受青睐?
2.生命周期 - 2.1。 翻译 2.2。 汇编 2.3。 加载和初始化 2.4。 执行 2.5。 毁灭
3.演示:首先 4.指令 - 4.1。 句法 4.2。 种类
5.脚本标记 - 5.1。 种类 5.2。 例
6.表达语言 - 6.1。 经营者 6.2。 隐式对象
7.异常处理 - 7.1。 介绍 7.2。 方法 7.3。 ErrorPage和isErrorPage 7.4。 在web.xml中
8.国际化 - 8.1。 区域设置类
9.会议 - 9.1。 方法 9.2。 例
10. JavaBean - 10.1。 JavaBean属性 10.2。 useBean标签 10.3。 标签的属性 10.4。 例
11.请求和响应对象 - 11.1。 请求 11.2。 HttpServletRequest 11.3。 HttpServletResponse
12.参考 - 12.1。 网站 12.2。 书
13.总结 14.下载
1.简介
Java Server Pages(JSP)用于创建动态网页。 可以使用JSP标记将Java代码插入HTML页面。 这些标记用于从数据库中检索信息,在页面之间共享信息等。通常用于运行JSP页面的IDE是NetBeansIDE和EclipseIDE。
为什么JSP比Servlet更受青睐?
- JSP提供了一种创建和管理动态网页的简便方法。
- 它不需要其他文件,例如java类文件和web.xml
- 由于JSP由Web容器处理以对其代码进行任何更新,因此不需要像servlet一样进行重新编译。
- 可以直接访问JSP页面,而Servlet需要使用web.xml进行映射。
2.生命周期
JSP生命周期与Servlet生命周期相同,但有一个额外的步骤。 在此步骤中,将JSP编译到servlet中。 生命周期如下图所示:
翻译
在第一阶段,Web容器将JSP文档转换为等效的Java代码。 此Java代码是一个Servlet。 转换由Web服务器自动完成,该Web服务器定位,验证正确性并为JSP页面编写servlet。
汇编
在此阶段,JSP容器编译Java源代码,以创建相应的servlet和生成的类文件。
加载和初始化
在第三阶段,JSP容器加载在前两个阶段中生成的servlet。 正确加载后,JSP容器将创建servlet类的实例。 在这里,它使用无参数构造函数。
现在,JSP容器通过调用init
方法初始化实例化的对象。 这是由容器通过调用jspInit()
方法实现的。
public void jspInit() {// Initialization code...
}
执行
在此步骤中,JSP引擎调用_jspService()
方法。 该方法具有两个参数,即HttpServletRequest和HttpServletResponse,每个请求调用一次。 它还负责为该请求生成响应。
void _jspService(HttpServletRequest request, HttpServletResponse response)
{
}
毁灭
最后一步完成了生命周期。 在这种情况下,容器使用jspDestroy()
方法删除了JSP。
public void jspDestroy()
{// any cleanup code
}
3.演示:首先
这是JSP使用的示例。 请遵循以下步骤,使用Eclipse IDE从第一个JSP应用程序开始。 使用的技术如下:
- Java 1.8
- Eclipse IDE:适用于Web开发人员的Eclipse Java EE IDE 4.4.1
- JSP
- Apache Tomcat 8
图1:让我们开始创建一个新的Dynamic Web Project:
图2:将项目名称添加为RankWebApplication ,然后单击Next :
跳过此步骤以配置项目,然后单击下一步,因为我们专注于一个简单的演示项目。
图3:配置项目:
图4:配置Web模块设置; 避免生成web.xml文件,因为此演示项目不需要该文件。
单击完成后 ,将创建动态Web项目。 该项目的目录在“ Package Explorer”下的左面板上可见:
图5:项目目录结构:
右键单击WebContent目录,然后将新的JSP文件添加到项目中。
图6:现在,在动态Web项目中添加JSP文件:
图7:从向导添加新的JSP文件:
单击上面的Next之后,将新文件命名为NewRankFile.jsp并单击Next 。
图8:添加了NewRankFile.jsp:
图9:设置JSP模板:
单击上方的完成将创建新文件。 现在,在清单1中添加以下给定的代码,该代码显示板球队的排名。
清单1:NewRankFile.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>ICC Ranking</title>
</head>
<body>
<h1>ICC ODI Ranking</h1><table><tr><th>Rank</th><th>Country</th></tr><tr><td>1</td><td>Australia</td></tr><tr><td>2</td><td>India</td></tr><tr><td>3</td><td>South Africa</td></tr></table><!-- JSP Expression is used here for getting system date --><b>Note:</b> Website updated on: <%= (new java.util.Date()).toLocaleString()%></body>
</html>
右键单击并选择Run As来运行项目。
图10:从选项中单击在服务器上运行 :
选择“在服务器上运行”,然后在EclipseIDE中运行第一个项目时, 手动定义新服务器“ Tomcat” 。 选中“在运行该项目时始终使用此服务器”,以避免重复此选择:
图11:选择服务器:
在这里,输出显示使用JSP表达式生成的ICC排名和网站更新时间。 输出链接:http:// localhost:8080 / RankWebApplication / NewRankFile.jsp
图12:显示ICC ODI排名和网站更新时间的输出:
4.指令
指令标签用于提供在JSP生命周期的翻译阶段使用的指导和说明。
句法
<%@ directive attribute="value" %>
这里的指令可以具有许多属性。
种类
图13:指令标记的类型:
4.2.1。 页面指令
页面指令标记提供了在JSP生命周期的转换阶段翻译人员使用的指令。 它可以包含在任何位置,但是根据惯例,它被认为是一种在顶部包含它的良好编程风格。 语法如下:
<%@page attribute ="value" %>
XML等效项如下所示:
<jsp:directive.page attribute="value" />
让我们以在页面顶部包含属性为导入的示例为例。
<%@ page import="java.util.Date" %>
页面指令标记中使用的属性如下:
属性 | 值 |
自动冲洗 | 它有两个值– true和false,默认值为true。 它指定在缓冲区已满时是否自动刷新输出。 |
缓冲 | 它以缓冲区大小(以千字节为单位)指定缓冲模型。 |
内容类型 | 它指定字符编码方案,默认为text / html。 |
延伸 | 它采用由Servlet等效类扩展的合格类名。 |
errorPage | 它指定另一个页面的URL路径,将请求发送到该页面以处理当前JSP页面引发的运行时异常。 |
进口 | 该值是用逗号分隔的Java类列表, |
信息 | 它指定可由getServletInfo()方法访问的字符串。 |
isErrorPage | 它指定当前页面是否是具有两个值true和false的错误页面。 默认值为false。 |
pageEncoding | 它指定编码类型。 |
4.2.2包含指令
在JSP生命周期的转换阶段使用此标记来包含文件。 它合并了另外两个文件的内容。 包含指令可以包含在页面中的任何位置。 语法如下:
<%@ include file="path/url" >
让我们以文件newFile.jsp为例,该文件可以放在需要的地方。
<%@ include file="newFile.jsp" %>
4.2.3标签库
它用于在JSP页面中定义定制标记库。 这样做是为了使相关标签可以在同一页面中使用。 语法如下:
<%@ taglib uri="URI" prefix="TagPrefix" %>
5.脚本标记
JSP脚本标记允许将脚本代码添加到生成的JSP页面的Java代码中。 该页面由JSP转换器生成。
种类
三种类型的Scriptlet标签或Scriptlet元素如下所示:
5.1.1。 脚本标签
Scriptlet标记通过编写脚本/ Java代码来实现_jspService
方法功能。 它用于在JSP页面中编写Java代码。 语法如下:
<% Java code %>
等效的XML:
script code
示例如下:
<% out.println(value); %>
5.1.2。 声明性标签
声明标签被用来声明类变量和实现类方法jspInt和jspDestroy。 语法如下:
<%!Declaration
%>
等效的XML:
<jsp:declaration>script code
</jsp:declaration>
示例如下:
<%!int value = 25;
%>
5.1.3。 表达标签
Expression Tag用于编写Java表达式。 切勿在表达式标记内使用分号(;)结束表达式。 语法如下:
<%= Java Expression %>
等效的XML:
<jsp:expression>script code
</jsp:expression>
示例如下:
<%= --value %>
<%= (3*9) %>
例
这是显示三种脚本标记类型的示例。 请遵循“演示”部分中给出的步骤,以便在EclipseIDE中创建一个项目。 使用的技术是相同的。
让我们从在Eclipse IDE中创建Dynamic Web Project ExampleApplication开始:
图14:创建示例应用程序:
图15:创建exampleCalculation.jsp:
清单2:example.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Scriptlet Tag Example</title>
</head>
<h1>Example to print k iterations</h1><%!int k;%><body><%for(k=1;k<=10;++k) {out.println(k);}
%>
<br>
<%out.println("The value of --k is:");%><%= --k %><br>Updated on: <%= (new java.util.Date()).toLocaleString() %>
</body>
</html>
图16:输出打印k次迭代和网站更新日期:
6.表达语言
一种使JSP开发人员能够访问存储在JavaBeans组件中的应用程序数据的语言。 它是在JSP2.0中引入的
EL表达式包含在“ $”和“}”字符之间。
经营者
6.1.1。 算术运算符
这些算术运算符可用于EL表达式:_,-,/,*,%
6.1.2。 关系运算符
EL表达式中使用的关系运算符可用以下给定符号和短文本形式表示:
经营者 | 短文本形式 | 内容描述 | 例 |
> | gt | 比...更棒 | $ {150> 5} |
< | lt | 少于 | $ {15 <65} |
> = | ge | 大于等于 | $ {20> = 20} |
<= | 乐 | 小于等于 | $ {15 <= 15} |
== | 当量 | 等于 | $ {5 == 5} |
!= | NE | 不等于 | $ {15!= 65} |
6.1.3。 逻辑运算符
逻辑运算符是&&(AND运算符),|| (或运算符)和! (非运营商)
隐式对象
隐式对象可以直接在EL表达式中使用。 用户可以使用这些对象从不同的作用域和参数值获取属性。 下面给出一些隐式对象的类型:
目的 | 描述 |
pageContext | 它操纵页面属性。 |
pageScope | 它将页面范围的属性名称映射到它们的值。 |
requestScope | 它将请求范围的属性名称映射到它们的值。 |
sessionScope | 它将会话范围的属性名称映射到它们的值。 |
应用范围 | 它将应用程序范围的属性名称映射到它们的值。 |
参数 | 它将参数名称映射到单个String参数值。 |
参数值 | 它将参数名称映射到String []。 |
标头 | 它将标头名称映射到单个String标头值。 |
headerValues | 它将标头名称映射到String []。 |
6.2.1。 例
这是显示隐式对象参数的示例。 请按照“演示”部分中给出的步骤在EclipseIDE中创建项目。 使用的技术是相同的。
让我们从在Eclipse IDE中创建动态Web项目UserApplication开始:
图17:创建UserApplication :
图18:创建新的jsp文件home.jsp
清单3:home.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Welcome</title>
</head>
<body>
<h1>Fill the form given below:</h1>
<form method="post" action="success.jsp">
User : <input type="text" name="userName"><br>
Email: <input type="email" name="emailID">
<input type="submit" value="submit">
</form></body>
</html>
图19:创建新的jsp文件success.jsp :
清单4:success.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Email Successfully sent</title>
</head>
<body>
<h1>Success</h1>
<br>
<p>Hi ${param.userName}, thanks for giving the details.</p>
<p>Your unique password has been sent to you on <b>${param.emailID}</b></p>
</body>
</html>
现在,我们将在EclipseIDE中运行UserApplication 。 本地主机地址为:http:// localhost:8080 / UserApplication / home.jsp
图20:运行应用程序后的home.jsp :
在这里,您可以添加自己的电子邮件。 我已经考虑过电子邮件,demo @ email.com
图21:添加用户名和电子邮件:
图22:单击“提交”按钮后,输出显示在此处:
7.异常处理
介绍
异常是程序的正常执行流程中的异常/不可预见的情况。 这些异常可能是由于无效输入,访问磁盘上不可用的文件等导致的。
在运行时处理这些异常称为异常处理。 用户在JSP代码中可能会遇到以下类型的错误:
7.1.1。 失误
这些是用户无法控制的问题。 例如,堆栈溢出将导致错误。
7.1.2。 检查异常
这些是编译时不能忽略的异常,被视为用户错误。 例如,IOException
7.1.3。 运行时异常/未经检查的异常
在运行时可以忽略这些异常。 例如,NullPointerException
方法
这是Throwable类中可用的重要方法的列表。 您可以从oracle官方文档中参考完整列表。
方法 | 描述 |
公共Throwable getCause() | 返回此throwable的原因。 如果原因未知,则返回null。 |
公共字符串getMessage() | 返回此throwable的消息字符串。 |
公共字符串toString() | 返回对此throwable的描述。 |
公共无效printStackTrace() | 它打印堆栈跟踪。 |
公共Throwable fillInStackTrace() | 它填充了执行堆栈跟踪。 |
ErrorPage和isErrorPage
页面指令的ErrorPage属性用于设置错误页面。 为此,请使用以下给定的指令。 任何jsp页面都可以设置为错误页面,这里是“ DisplayError.jsp ”:
<%@ page errorPage="DisplayError.jsp" %>
isErrorPage属性用于通过包含以下指令来生成异常实例变量。 您还必须编写DisplayError.jsp:
<%@ page DisplayError="true">
7.3.1。 例
这是显示上面讨论的两个指令的用法的示例。 请按照“演示”部分中给出的步骤在EclipseIDE中创建项目。 使用的技术是相同的。
让我们从在Eclipse IDE中创建动态Web项目ErrorHandlingApplication开始:
图23:创建ErrorHandlingApplication:
图24:创建jsp文件conditionChecker.jsp:
在这里,将errorPage设置为DisplayError.jsp:
清单5:conditionChecker.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page errorPage="DisplayError.jsp" %><html>
<head><title>Error Handling Example</title>
</head>
<body>
<%// Throw an exception to invoke the error pageint s = 10;if (s < 5) {out.println("Bingo!!well done!! You're right");}else {throw new RuntimeException("Error found - "); }
%>
</body>
</html>
图25:创建错误文件DisplayError.jsp:
在这里,属性isErrorPage设置为true:
清单6:DisplayError.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page isErrorPage="true" %>
<html>
<head>
<title>Error Page</title>
</head>
<body>
<h1>Sorry :Error occurred</h1>
<b>Stack trace:</b>
<pre>
<% exception.printStackTrace(response.getWriter()); %>
</pre>
</body>
</html>
在web.xml中
<Error-page>可以包含在部署描述符中,即web.xml。 通过此功能,用户还可以为不同的异常类型甚至HTTP错误代码配置不同的错误页面。
当出现状态码为404的错误时,将调用jsp文件anyErrorPage.jsp,如下所示:
清单7:错误代码404
<error-page><error-code>404</error-code><location>/anyErrorPage.jsp</location>
</error-page>
如果应用程序引发IOException,则将调用anyErrorPage.jsp:
清单8:对于Exception-TypeIOException
<error-page><exception-type>java.io.IOException</exception-type ><location>/HandlerClass</location>
</error-page>
如果要避免添加单独的元素的开销,请使用java.lang.Throwable作为异常类型:
清单9:对于所有异常,请提及java.lang.Throwable:
<error-page><exception-type>java.lang.Throwable</exception-type ><location>/HandlerClass</location>
</error-page>
8.国际化
Web应用程序被全世界的人们访问; 这引起了国际化的需求。 国际化使Web应用程序可以在不同的国家和地区工作,而无需进行更改和重新编译代码。
区域设置类
国际Java应用程序使用java.util.Locale类。 语言环境定义语言和地理区域。
8.1.1。 语言环境类的构造函数
它具有三个构造函数,可通过这些构造函数构造一个语言环境对象:
建设者 | 描述 |
语言环境(字符串lang) | 它使用语言代码构造一个Locale对象 |
语言环境(字符串lang,字符串国家/地区) | 它使用语言代码和国家/地区代码构造一个Locale对象。 |
语言环境(字符串lang,字符串国家/地区,字符串变体) | 它使用语言代码,国家/地区代码和变体构造一个Locale对象。 |
这是国际化的一个例子。 请按照“演示”部分中给出的步骤在EclipseIDE中创建项目。 使用的技术是相同的。
让我们开始在Eclipse IDE中创建Dynamic Web Project LocaleApplication。
图26:动态Web项目LocaleApplication :
图27:创建新的jsp文件LocaleFile.jsp :
清单10:LocaleFile.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%// get the user's LocaleLocale userLocale = request.getLocale();String userCountry = userLocale.getCountry();
%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Finding the Locale of user</title>
</head>
<body>
<% out.println("Your Country : " + userCountry);
%></body>
</html>
图28:输出如http:// localhost:8080 / LocaleApplication / LocaleFile.jsp所示 :
9.会议
会话是客户端和服务器之间的HTTP请求的集合。 这3种方式用于维护服务器和客户端之间的会话,即cookie,URL重写和隐藏的表单字段。 JSP还利用servlet提供的HttpSession接口。 下面列出了一些方法及其说明:
方法
会话对象中的一些重要方法:
方法 | 描述 |
公共对象getAttribute(字符串名称) | 返回在此会话中绑定了指定名称的对象,如果该名称下未绑定任何对象,则返回null。 |
公共字符串getId() | 返回一个字符串,其中包含分配给该会话的唯一标识符。 |
公共长getLastAccessedTime() | 返回客户最后一次发送与此会话相关的请求的时间,以格林尼治标准时间1970年1月1日午夜以来的毫秒数为单位。 |
公共无效invalidate() | 使该会话无效,并取消绑定到该会话的任何对象。 |
公共无效removeAttribute(字符串名称) | 从此会话中删除与指定名称绑定的对象。 |
公共无效setAttribute(字符串名称,对象值) | 使用指定的名称将对象绑定到该会话。 |
公共无效setMaxInactiveInterval(int间隔) | 指定客户端请求之间的时间间隔(以秒为单位),该时间间隔表示servlet容器使该会话无效。 |
例
这是jsp中会话处理的示例。 请按照“演示”部分中给出的步骤在EclipseIDE中创建项目。 使用的技术是相同的。
使用jsp文件SessionHandling.jsp创建项目“ SessionApplication”
清单11:SessionHandling.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><%@ page import="java.io.*,java.util.*" %>
<%// creation time of sessionDate create = new Date(session.getCreationTime());Integer visitCount = new Integer(0);String key = new String("visitCount");// for new visitorif (session.isNew()){session.setAttribute(key, visitCount);} visitCount = (Integer)session.getAttribute(key);visitCount = visitCount + 1;session.setAttribute(key, visitCount);
%>
<html>
<head>
<title>Session Tracking</title>
</head>
<body>
<h1>Session Tracking</h1>
<table border="1">
<tr><th>Session Information</th><th>Value</th>
</tr>
<tr><td>id</td><td><% out.print(session.getId()); %></td>
</tr>
<tr><td>Creation Time</td><td><% out.print(create); %></td>
</tr> <tr><td>Number of visits</td><td><% out.print(visitCount); %></td>
</tr>
</table>
</body>
</html>
图29:显示会话信息的输出– visit1:
图30:显示会话信息的输出– visit2:
图31:显示会话信息的输出– visit3:
10. JavaBean
JavaBeans是用Java编写的Java类,用于开发动态内容。 它将业务逻辑与表示逻辑分开。
表示代码和业务逻辑可以分开管理。 JavaBeans还确保它们之间的通信。
JavaBean属性
JavaBean属性是一个命名属性,可以是任何数据类型。 可以通过以下给定方法访问这些属性:
- setPropertyName():仅写属性将仅具有setPropertyName()方法。
- getPropertyName():只读属性将具有getPropertyName()方法。
useBean标签
<jsp:useBean>语法为:
<jsp:useBean attributes><!-- content -->
</jsp:useBean>
属性如下:
标签的属性
10.3.1。 ID
这表示分配给的id属性的变量名,用于定位现有的bean实例。
10.3.2。 范围
此属性表示Bean实例必须位于的范围。 范围在下面列出,此处默认为页面范围:
- 页面范围
- 请求范围
- 会话范围
- 适用范围
10.3.3。 类
它是用于创建bean实例的类名,但该类不应是抽象类。
10.3.4。 bean名称
它采用合格的类名称或表达式。
10.3.5。 类型
它采用合格的类名或接口。
例
这是jsp中bean处理的示例,其中包括用于bean创建和访问的代码段。
10.4.1。 豆类创作
清单12:EmployeeClass.java
在这里,EmployeeClass显示了Bean的创建,该Bean具有一些用于员工姓名和工作点的属性。
import java.io.Serializable;public class EmployeeClass implements Serializable
{private int points = 0;private String name = null;public EmployeeClass() {}public String getName(){return name;}public int getPoints(){return points;}public void setName(String firstName){this.name = name;}public void setPoints(Integer points){this.points = points;}
}
10.4.2。 访问豆
action用于访问get方法,而action用于访问set方法。 这些可以与动作配合使用。
清单13:BeansApplication.jsp
一个示例,说明如何访问JavaBeans属性。
<html>
<head>
<title>Employee Work Report</title>
</head>
<body><!-- setProperty -->
<!-- name attribute under setProperty references the id of beans in useBean action -->
<jsp:useBean id="emp" class="com.new.EmployeeClass"> <jsp:setProperty name="emp" property="name" value="Mahendra"/><jsp:setProperty name="emp" property="points" value="50"/>
</jsp:useBean><!-- getProperty -->
<!-- name attribute under getProperty references the id of beans in useBean action -->
<p>Name of the Employee:
<jsp:getProperty name="emp" property="name"/>
</p>
<p>Work Performance Points:
<jsp:getProperty name="emp" property="points"/>
</p></body>
</html>
清单13:显示bean实现的输出
Name of the Employee: Mahendra
Work Performance Points: 50
11.请求和响应对象
请求
Web浏览器请求Web页将信息发送到Web服务器。 该头信息包括以下内容:
接受 | 接受字符集 |
接受编码 | 接受语言 |
授权书 | 连接 |
内容长度 | 曲奇饼 |
主办 | 用户代理 |
HttpServletRequest
它是javax.servlet.http.HttpServletRequest对象的实例。 这些方法可用于HttpServletRequest对象,并用于在JSP程序中获取HTTP标头信息。 下面给出其中一些描述:
方法 | 描述 |
Cookie [] getCookies() | 返回一个包含客户端与此请求发送的所有Cookie对象的数组。 |
枚举getHeaderNames() | 返回此请求包含的所有标头名称的枚举。 |
枚举getParameterNames() | 返回包含此请求中包含的参数名称的String对象的Enumeration。 |
对象getAttribute(字符串名称) | 将命名属性的值作为Object返回;如果不存在给定名称的属性,则返回null。 |
字符串getCharacterEncoding() | 返回此请求正文中使用的字符编码的名称。 |
字符串getMethod() | 返回发出此请求的HTTP方法的名称,例如GET,POST或PUT。 |
字符串getPathInfo() | 返回与客户端发出此请求时发送的URL关联的所有其他路径信息。 |
字符串getQueryString() | 返回路径后面的请求URL中包含的查询字符串。 |
字符串getRemoteAddr() | 返回发送请求的客户端的Internet协议(IP)地址。 |
字符串getRequestedSessionId() | 返回客户端指定的会话ID。 |
HttpServletResponse
它是javax.servlet.http.HttpServletResponse对象的实例。 这些方法可用于HttpServletResponse对象,并用于在Servlet程序中设置HTTP响应标头。
方法 | 描述 |
布尔containsHeader(字符串名称) | 通过在其中包含会话ID对指定的URL进行编码,或者,如果不需要编码,则返回不变的URL。 |
布尔containsHeader(字符串名称) | 返回一个布尔值,指示是否已设置命名响应头。 |
无效addCookie(Cookie cookie) | 将指定的cookie添加到响应中。 |
void addHeader(字符串名称,字符串值) | 添加具有给定名称和值的响应头。 |
void setContentLength(int len) | 设置响应中内容主体的长度在HTTP servlet中,此方法设置HTTP Content-Length标头。 |
void setContentType(String type) | 如果尚未提交响应,则设置发送给客户端的响应的内容类型。 |
void setHeader(字符串名称,字符串值) | 使用给定的名称和值设置响应头。 |
setLocale(Locale loc)无效 | 设置响应的语言环境(如果尚未提交响应)。 |
setIntHeader(字符串名称,整数值) | 用给定的名称和整数值设置响应头。 |
12.参考
网站
- Sun官方网站
- 免费Java下载
- 免费Eclipse IDE下载
书
- 首要的Servlet和JSP:通过Sun认证的Web组件开发人员考试,作者Bryan Basham,Kathy Sierra和Bert Bates
- Jdbc,Servlet和Jsp黑皮书,新版平装本-2008,Santosh Kumar
13.总结
Java Server Pages(JSP)用于创建动态网页。 通过本指南,您可以轻松学习与JSP相关的概念。 项目代码是在EclipseIDE下开发的,因此您还将对它的一些惊人的用户友好功能有所了解。
14.下载
这是有关JavaServer Pages(JSP)的教程。
您可以在这里下载本教程的完整源代码: jsp_tutorial
翻译自: https://www.javacodegeeks.com/2015/06/jsp-tutorial.html
java jsp学习指南