JSP内置对象Word文档格式.docx
- 文档编号:20838212
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:40
- 大小:1.54MB
JSP内置对象Word文档格式.docx
《JSP内置对象Word文档格式.docx》由会员分享,可在线阅读,更多相关《JSP内置对象Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
2.page属性在设定时,还有一个参数我们一直没有用,就是
PublicvoidsetAttribute(Stringname,Objectvalue,intscope)
Scope是用于设定范围的,取值如下:
四种方法相继设定了四种属性,默认是page_scope。
但这样设置很少用。
3.JSP中内置了9个隐藏对象:
Out\request\response\config\session\application\page\pagecontext\exception.
内置对象
pageContext
Javax.servlet.jsp.PageContext
JSP的页面容器
Resquest
Javax.servlet.http.HttpServletRequest
得到用于的请求信息
Response
Javax.servlet.http.Httpservletresponse
服务器向客户端的回应信息
Javax.servlet.http.HttpSession
用来保存每一个用户的信息
Javax.servlet.servletcontext
表示所有用户的共享信息
Config
Javax.servlet.servletconfig
服务器配置,可以取得初始化参数
Out
Javax.servlet.jsp.jspwriter
页面输出
Java.lang.object
表示从该页面中表示出来的一个servlet实例
Exception
Java.lang.throwable
表示jsp页面所发生的异常,在错误页中才起作用
这些内置对象,用户可以直接使用,已经由系统进行了实例化了。
要知道哪个对象有哪些方法,需要通过类型来找方法。
4.request对象:
这个对象是使用最多的一个对象,其主要作用是接收客户端发送而来的请求信息。
Requesta是Javax.servlet.http.HttpServletRequest接口的实例化对象,主要应用在HTTP协议上,Javax.servlet.http.HttpServletRequest接口定义如下:
PublicinterfaceHttpServletRequestextendsServletRequset
从中可以发现:
HttpServletRequest继承于ServletRequset,是一个子接口。
Request内置对象的方法;
方法名
getParameter(Stringname)
接收客户端发来的请求参数内容
String[]getParameterValues(Stringname)
取得客户端发来的一组请求参数内容
EnumerationgetParameterNames()
取得全部请求参数的名称
StringgetRemoteAddr()
得到客户端的IP地址
VoidsetCharacterEncoding(Stringenv)throwsUnsupportedEncodingException
设置统一的请求编码
BooleanisUserInRole(Stringrole)
进行用户身份的验证
HttpsessiongetSession()
取得当前的session对象
StringBuffergetRequestURL()
返回正在请求的路径
EnumeragtiongetHeaderName()
取得全部请求的头信息的名称
StringgetHeader(Stringname)
根据名称取得头信息的内容
StringgetMethod()
取得用户的提交方式
StringgetServletPath()
取得访问路径
StringgetContextPath()
取得上下文资源路径
在first有一个表单,用户输入信息。
在errorpage接收信息:
要想显示中文,需要加入一行如上所示的程序。
5.在表单中,像text\radio\password\等,一般都会使用getParameter()方法来进行接收,因为控件在使用时参数的名称都只有一个不会重复。
而像checkbox,一般参数的名称都是重复的,是一组参数,所以只能使用getParameterValue()接收,如果不小心使用了getParameter(),则只会接收第一个选中的内容。
如果把表单的提交方式该为get,那么表单的内容就会显示在地址栏中:
下面是一个填写信息,然后一个表格打印出信息的程序:
First中的程序:
<
%@pagelanguage="
java"
import="
java.util.*"
contentType="
text/html"
pageEncoding="
GBK"
%>
html>
<
head>
title>
howareyou<
/title>
/head>
body>
br>
formaction="
errorpage.jsp"
method="
get"
>
name:
inputtype="
text"
name="
name"
sex:
radio"
sex"
value="
male"
checked>
male
female"
female
city:
select>
optionvalue="
beijing"
beijing<
/option>
tianjing"
tianjing<
shanghai"
shanghia<
/select>
like:
checkbox"
**inst"
sing"
sing
<
swing"
swing
dancing"
dancing
value='
reading'
reading
traving"
traving
selfintroduce:
textarearows="
3"
cols="
30"
selfintroduce"
/textarea>
submit"
>
reset"
/form>
/body>
/html>
Errorpage中的程序:
%@pageimport="
%>
%
request.setCharacterEncoding("
);
//设置统一编码格式
tableborder="
1"
tr>
<
td>
参数名称<
/td>
参数内容<
/tr>
Enumerationenu=request.getParameterNames();
//接收全部请求参数的名称
while(enu.hasMoreElements())//依次取出每一个参数的名称
{
StringparamName=(String)enu.nextElement();
//取出内容
%=paramName%>
if(paramName.startsWith("
**"
))//判断是否以**开头
{
StringparamValue[]=request.getParameterValues(paramName);
for(intx=0;
x<
paramValue.length;
x++)
{
%>
<
%=paramValue%>
%
}
}
else//如果不是以**开头
StringparamValue=request.getParameter(paramName);
%>
%}%>
/table>
执行效果:
6.web操作主要是请求和回应的操作,同时包括如IP、Cookie等头信息。
想要取得头信息的名称,就需要用到request中的getHeadnames()方法,而想要取得头信息的内容,句需要用到getheader()方法。
7.利用request还可以获得很多信息:
当服务器端想得到客户端信息时就会使用request对象完成。
8.response对象
此对象主要作用是对客户端请求进行回应。
Response对象的常用方法:
PublicvoidaddCookie(Cookiecookie)
向客户端增加cookie
PublicvoidsetHeader(Stringname,Stringvalue)
设置回应的头信息
PublicvoidsendRedirect(Stringlocation)throwsIOException
页面跳转
服务器可以通过request获得客户端的头信息,同时服务器可以根据需要向客户端设置头信息。
9.设置定时刷新页面:
要用全局变量才行,就是在定义的时候用
%!
而不是<
%%>
,这很重要。
10.实现跳转:
地址栏地址也改变了,这是客户端的跳转。
更人性化:
11.上面我们讲的有<
jsp:
forward>
属于服务器跳转,而前面的是客户端跳转。
如果使用服务器跳转,则执行到跳转语句时会立刻跳转,如果使用的是客户端跳转,则是在整个页面执行完之后才执行跳转。
所谓整个页面执行完,就是在跳转语句之后的语句也执行完毕后,才真正实现跳转。
12.Cookie
Cookie是服务器端保存在客户端的信息。
在JSP中,专门提供了java.servlet.http.Cookie的操作类。
Cookie定义的常用方法:
PublicCookie(Stringname,Stringvalue)
构造
实例化cookie对象,同时设置名称和内容
PublicStringgetName()
取得cookie的名称
PublicStringgetValue()
取得cookie的内容
PublicvoidsetMaxAge(intexpiry)
设置cookie的保存时间/秒
所以的cookie是由服务器端设置到客户端上去的,所以要向客户端增加cookie,必须使用response对象的以下方法:
PublicvoidaddCookie(Cookiecookie)向客户端设置Cookie
Cookiec1=newCookie("
c1"
"
zhulei"
//定义新的cookie对象
Cookiec2=newCookie("
c2"
psj"
response.addCookie(c1);
//向客户端增加cookie
response.addCookie(c2);
注明:
这样的设置只是把cookie信息保存在了浏览器客户端,没有真正保存在客户端的电脑上,如果要想真正保存在客户端的电脑上,下次打开浏览器照样可以使用,就需要对cookie设定时间。
要想取得客户端设置的cookie,可以通过request对象完成。
Cookiec[]=request.getCookies();
//取得全部的cookie
for(inti=0;
i<
c.length;
i++)//循环取出每一个
%>
%=c[i].getName()%>
--->
%=c[i].getValue()%>
//输出每一个
}
运行后效果如下:
在每一个客户端访问服务器时,服务器为了明确区分每一个客户端,都会自动设置一个jsessionid的cookie,表示用户的唯一身份标识。
为cookie设置时间:
c1.setMaxAge(60);
//cooike保存60秒
c2.setMaxAge(100);
//cookie保存100秒
过一段时间后,我们重新运行网站,发现只有一个了,是因为另一个60秒后就失效了,但这个是100秒后才失效。
12.Session对象
Session对象主要的用处就是完成用户的登陆、注销等操作。
每一个session对象都表示不同的访问用户,session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能应用在http协议中。
HttpSession接口的常用方法:
PublicStringgetId()
取得sessionid
PubliclonggetCreationTime()
取得session的创建时间
PubliclonggetLastAccessedTime()
取得session的最后操作时间
PublicBooleanisNew()
判断是否是新的session(新用户)
Publicvoidinvalidate()
让session失效
PublicEnumerationgetAttributeNames()
取得全部属性的名称
HttpSession接口最重要的工作还是属性操作,主要是可以完成用户登录的合法性验证。
我们可以发现,这个id和我们上面的cookie是一样的。
在使用session操作时,实际上都使用了cookie的处理机制,即在客户端的cookie中要保存着每一个sessionid,这样用户在每次发出请求时都会将此sessionid发送到服务器端,服务器依靠这个sessionid来区分一个不同的客户端。
如果重新启动服务器,则这些用户再次发出请求实际上表示的都是一个新连接的用户,服务器会为每个用户重新分配一个新的sessionid.
Login.jsp代码:
login.jsp"
post"
用户名:
密码:
password"
%//用户名:
zhulei,密码:
mldn
Stringname=request.getParameter("
Stringpassword=request.getParameter("
if(name!
=null&
&
password!
=null)
if("
.equals(name)&
"
mldn"
.equals(password))
response.setHeader("
refresh"
2;
URL=welcome.jsp"
session.setAttribute("
userid"
name);
如果没有跳转,请按<
ahref="
welcome.jsp"
这里<
/a>
else
用户名或密码错误!
Welcome.jsp代码:
if(session.getAttribute("
)!
欢迎<
%=session.getAttribute("
)%>
光临本系统,<
logout.jsp"
注销<
!
请先进入系统的<
登陆<
Logout.jsp代码:
response.setHeader("
URL=login.jsp"
session.invalidate();
运行效果:
如果我们没有先运行登陆界面,而是直接运行welcome界面,就会出现下面情况:
13.在session对象中可以使用isnew()方法判断一个用户是否是第一次访问页面。
Welcome.jsp页面修改为:
if(session.isNew())
你是新用户
你是老用户
在之前的操作cookie时可以发现,第一次通过request取得全部cookie时是不会出现jsessionid的,但第二次就会出现这个系统内建的jsessionid,这是由于此cookie时第一次访问时由服务器端设置给用户端的,所以服务器可以依靠是否存在jseeionid来判断此用户是否为新用户。
14.在session对象中,可以通过getCreationTime()方法来取得一个session的创建时间,也可以通过getLastAccessedTime()方法取得一个session的最后操作时间。
Welcome.jsp的程序:
longstart=sessio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 内置 对象
![提示](https://static.bdocx.com/images/bang_tan.gif)