基于WEB的JAVA开发设计 JSP内置对象.docx

上传人:b****6 文档编号:16730418 上传时间:2023-07-16 格式:DOCX 页数:47 大小:2.04MB
下载 相关 举报
基于WEB的JAVA开发设计 JSP内置对象.docx_第1页
第1页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第2页
第2页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第3页
第3页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第4页
第4页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第5页
第5页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第6页
第6页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第7页
第7页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第8页
第8页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第9页
第9页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第10页
第10页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第11页
第11页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第12页
第12页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第13页
第13页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第14页
第14页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第15页
第15页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第16页
第16页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第17页
第17页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第18页
第18页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第19页
第19页 / 共47页
基于WEB的JAVA开发设计 JSP内置对象.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于WEB的JAVA开发设计 JSP内置对象.docx

《基于WEB的JAVA开发设计 JSP内置对象.docx》由会员分享,可在线阅读,更多相关《基于WEB的JAVA开发设计 JSP内置对象.docx(47页珍藏版)》请在冰点文库上搜索。

基于WEB的JAVA开发设计 JSP内置对象.docx

基于WEB的JAVA开发设计JSP内置对象

基于WEB的JAVA开发设计

--------JSP内置对象

内建(隐含)对象概述

JSP提供了一些由容器实现和管理的内建对象,在JSP页面中可以直接使用,不需要实例化,通过存取这些内置对象实现与JSP页面的Servlet环境的相互访问。

在JSP中一共提供了九个内置对象:

out、request、response、session、application、pageContext、exception、config和page。

由于JSP是构建在Servlet基础之上的,JSP的每个内置对象都和JavaServletAPI包中的类相对应,在服务器运行时自动生成。

JSP内置对象

内部对象

总体介绍:

JSP中共9种内置对象--注意大小写!

对象名

类型

作用域

request

javax.servlet.http.HttpServletRequest

request

response

javax.servlet.http.HttpServletResponse

page

session

javax.servlet.http.HttpSession

session

application

javax.servlet.ServletContext

application

out

javax.servlet.jsp.JspWriter

page

exception

java.lang.Throwable

page

pageContext

javax.servlet.jsp.PageContext

page

config

javax.servlet.ServletConfig

page

page

java.lang.Object

page

out对象

作用:

主要是向浏览器输出数据,也可以通过out对象对缓冲区进行操作。

主要方法:

print()和println()

print()方法输出完后,不换行

println()方法在输出完后,换行。

print和println可以输出各种格式的数据类型,但最终都转换成字符串。

大多数情况下,在JSP中并不需要显式的使用out对象,只需将输出的内容放到JSP文件代码中即可(模板元素中),在JSP容器将JSP页面自动转换成Servlet实现类时,会自动生成out.print()或out.println()语句来输出模板元素

在有些情况下,需要在Java代码中循环显示数据时,一般会直接使用这两个方法

案例:

使用out对象输出一个特殊效果的表格

table.jsp

out对象

JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,并且会为此消耗不少的资源;

因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这就要将autoFlush设为true,否则缓冲区满时将产生IOException错误。

out对象其他方法

out对象对缓冲区进行操作常用方法:

publicabstractvoidclear()

清空缓冲区中的内容,不将数据发送至客户端。

publicabstractvoidclearBuffer()

清空缓冲区中的内容,并将缓冲区中的数据发送到客户端。

publicabstractvoidgetBuffersize()

获得缓冲区的大小,对比回顾page指令

publicabstractvoidgetRemaing()

返回缓冲区剩余空间的大小

publicabstractvoidflush()

输出缓冲区中的数据。

publicabstractvoidisAutoFlush()

获取AutoFlush的取值

例子:

clear.jsp

request对象

是一个javax.servlet.http.HttpServletRequest对象。

封装了浏览器的请求信息,请求信息的内容包括请求的头信息(Header)、系统信息(比如:

编码方式)、请求的方式(比如:

GET或POST)、请求的参数名称和参数值等信息;

还提供了获取cookie和session等对象、数据的方法。

通过request对象可以获取用户的请求信息;

request对象提供的四类方法

1).获取请求参数的方法(重点)

String getParameter(Stringname)获取name的参数值。

EnumerationgetParameterNames()获取所有参数的名称。

String[]getParameterValues(Stringname)获取name的所有参数值。

常用方法

(一)

request.getParameter(“parameterName”)

用表单和超链接传递参数的时候,使用getParameter

返回给定参数的值,如果参数不存在则返回空值。

例:

Stringname=request.getParameter("name");

复习表单标记

Form表单标记

各种表单控件(文本框、密码框、复选框等)

至少一个提交按钮

注意比较:

get和post两种提交方式的区别

内容传输形式、安全性

取值方式和中文乱码处理方式

例子

表单文件:

user.htm

获取表单信息:

getuser.jsp

<%

Stringu=request.getParameter("user");

out.println(u);

%>

 

注:

如在地址栏中写入http:

//localhost:

8080/MyProject/aa.jsp?

id=1;

或是在页面的链接中

id=1”>

同样可以使用getParameter(“id”)以字符串形式返回给定参数的值“1”。

 

常用方法

(二)

publicString[]getParameterValues(Stringname)

返回值类型:

字符串数组String[]

能够取出变量的多个值,主要用于复选框值的获取或是下拉列表带multiple属性的。

使用getParameterValues能够取出变量的多个值

 

复选框值的获取

 

下拉列表的取值

常用方法(三)

publicEnumerationgetParameterNames()

返回值类型:

枚举Enumeration

得到HTML页面Form表单中所有参数的名称

getParameterNames()使用

request对象常用方法(四)

publicvoidsetCharacterEncoding(Stringenv)

例:

setCharacterEncoding(“GB2312”)

在form表单采用post方式提交请求时,需要设置request对象的编码方式,保证能够正确地取到数据。

附:

中文问题的处理

用getParameter()方法获取的信息中如果有中文,也需要进行编码转换。

方法一:

Stringname=request.getParameter("name");

name=newString(name.getBytes(“8859_1”),”gbk”);

方法二:

只适用于post方式提交的请求

request.setCharacterEncoding(“gb2312”);

request对象提供的四类方法

2).管理request属性的方法:

publicvoidsetAttribute(name,value)

设置请求对象中的一个属性。

publicjava.lang.ObjectgetAttribute(name)

返回name指定的属性值,若name不存在则返回null。

publicjava.util.EnumerationgetAttributeNames()

返回request对象所有属性的名称,并将其封装在Enumeration对象中。

3).获取请求HTTP标头的方法

StringgetHeader(String)获取name的标头

EnumerationgetHeaderNames()获取所有表头的名称

EnumerationgetHeaders(Stringname)取得name所有的标头

IntgetIntHeader(Stringname)取得整数类型的标头

longgetDateHeader(Stringname)获取日期类型的name的标头

Cookie[]getCookies()获取与请求相关的Cookies

4).其他方法,如获取请求的URL、IP和session

StringgetContextPath()获取Context路径

StringgetMethod()获取HTTP请求提交的方法

StringgetProtocol()获取请求使用的协议

StringgetQueryString()获取请求的参数字符串,注意此时HTTP请求的方法必须为get方法。

StringgetRequestedSessionId()获取客户端的SessionID

StringgetRequstURI()获取请求的URL,但但不包括请求参数字符串

StringgetRemoteAddr()获取请求用户的IP地址

VoidsetCharacterEncoding(Stringencoding)设置字符编码方式,用来解决传递非英文字符所出现的乱码问题

综合实例1——登录判断

包括两个文件:

denglu.htm和denglu.jsp

denglu.htm:

显示如下界面

denglu.jsp:

判断用户名和密码,如果是pdsu和123,则输出“登录成功”,否则输出“用户名密码错误”

denglu.htm

用户名:


密码:


denglu.jsp

<%@pagepageEncoding="gbk"%>

<%

Stringuser=request.getParameter("user");

Stringpw=request.getParameter("pw");

if(user!

=null&&pw!

=null&&user.equals(“pdsu")&&pw.equals("123"))

out.println("登录成功");

elseout.println("用户名密码失误");

%>

综合实例2:

注册

包括两个文件:

zhuce.htm和zhuce.jsp

zhuce.htm:

显示注册表单界面

zhuce.jsp:

获取所有的注册信息并显示

zhuce.htm

用户名:


密码:


确认密码:


生日:


身高:


E_mail:


请选择你的职业:

工人

农民

军人

学生

请选择你的籍贯:

大连


请选择你的爱好:

音乐  

旅游 

读书

请输入你的留言:


zhuce.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

<%request.setCharacterEncoding("gbk");%>

你的名字是:

<%=request.getParameter("username")%>

你的密码是:

<%=request.getParameter("mypass")%>

你的生日:

<%=request.getParameter("birthday")%>

你的身高:

<%=request.getParameter("height")%>

你的E-mail:

<%=request.getParameter("e_mail")%>

你的职业是:

<%=request.getParameter("myrad")%>

你的爱好是:

<%

Stringmybox[]=request.getParameterValues("mybox");

if(mybox!

=null)

{

for(inti=0;i

{

out.println(mybox[i]);

if(i!

=mybox.length-1)

out.println("+");

}

}

%>


你的留言是:

<%=request.getParameter("myarea")%>

你的籍贯是:

<%=request.getParameter("mymenu")%>

response对象

是一个javax.servlet.http.HttpServletReponse对象。

负责封装JSP处理数据后产生的结果,将服务器端的数据发送回浏览器客户端。

Response对象用来提供给客户端浏览器的参考信息,比如响应的标头,响应的本体(HTML文本内容)以及服务端的状态码信息。

注意:

任何标题头的设定都应在本体回传前设定好,否则设定的值将不起任何作用。

response对象常用方法

(一)

publicvoidsetContentType(Stringtype)

设置输出数据的类型

text/html:

网页

text/plain:

纯文本

application/x-msexcel:

Excel文件

application/msword:

Word文件

将当前页面转换为word文档

<%response.setContentType

(“application/msword;charset=gb2312”);%>

response对象常用方法

(二)

publicPrintWritergetWriter()

获取输出流,用来向浏览器输出数据

<%@pageimport="java.io.*"%>

<%response.setContentType("application/msword;charset=GBK");

PrintWriterpw=response.getWriter();

pw.println("中国");

%>

response对象常用方法(三)

publicvoidsetHeader(Stringname,Stringvalue)

设置HTTP应答报文的首部字段和值

利用setHeader方法可以设置页面的自动刷新

reponse.setHeader(“Refresh”,”5”)5秒种后自动刷新本页面

reponse.setHeader(“Refresh”,“5;URL=”)5秒种后自动跳转到新页面

response对象常用方法(四)

publicvoidsendRedirect(Stringurl)

浏览器重定向,把当前响应返回到浏览器。

在通过浏览器发送到新的指定地址

例:

response.sendRedirect(“aa.htm”);

response.sendRedirect(“”);

response.sendRedirect(“aa.jsp”);

response.sendRedirect(“aa.jsp?

user=tom”);

response对象练习

1。

编写login.html,如图。

点击登录按钮后,数据提交给login.jsp

2。

编写login.jsp,获取login.html

表单中提交的用户名和密码,

如果用户名是pdsu,密码是123,

就跳转到success.jsp,如右图。

3。

在login.jsp中,如果从表单中

获取的用户名不是pdsu,密码不是123,

就跳转到failuer.jsp,如左图。

注意:

要显示输入的用户名。

如何使用sendRedirect()方法

比较sendRedirect和

forward>

sendRedirect和

forward>

默认情况下,SendRedirect不会保留请求对象中参数,除非用“?

参数名=值”;需要保存请求的相关信息时要用forward,因为用的是同一个request;

SendRedirect会在客户端呈现跳转后的URL地址;使用

forward>完全是在服务器上进行,浏览器地址栏中的地址保持不变

使用

forward>不能将请求发到其他的web应用上,SendRedirect可以

其他方法

StringencodeURL(String url)

供HTML超链使用

StringencodeRedirectURL(String url)

供HTTP重定向使用

以上方法包含判断是否需要在URL中包含SessionID的逻辑

例如,如果请求对象中包含cookie,返回的url不会发生任何变化

在一些服务器中,这两个方法实现的功能完全相同,都能确保会话跟踪能够在所有浏览器中正常运行。

综合练习4

作业:

设计一个登录页面(dl.jsp),包括用户名文本框,密码文本框,用户提交到登录验证页面(check.jsp),当用户输入指定用户名(pdsu)和密码(123)时,跳转到新的页面(welcome.htm)显示“欢迎登录”,否则返回显示登录页面(dl.jsp),并提示“用户名或密码输入错误”,请写出完成上述功能所涉及到的login.jsp、check.jsp和welcome.htm页面。

session对象

session对象表示”会话”。

一次会话是浏览器和服务器的一次交互过程。

在服务端为每个会话设置一个ID,称为会话ID。

在JSP页面中,可以用session对象来保存特定用户的会话信息,session的类型是HttpSession

session对象在客户端向该页面发出请求时建立,在session到期或者被终止时撤销。

session对象常用来在不同的页面之间传递数据

session对象常用方法

(一)

publicvoidsetAttribute(Stringname,Objectobj)

设定名为“name”的属性的值,如果属性已存在,则更改该属性的值

publicObjectgetAttribute(Stringname)

获取名为“name”的属性的值,如果属性不存在,则返回null

setAttribute和getAttribute方法

session实例

例:

在session1.jsp中将信息存入session,然后在session2.jsp中将信息从session中读出并显示,最后在session3.jsp中再次从session中读出信息并显示。

session对象常用方法

(二)

publicvoidremoveAttribute(Stringname)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2