关键词搜索引擎工具爱站,wordpress 社区,阻止wordpress更新,wordpress 图片被压缩JSP的9个内置对象(隐含对象)
JSP内置对象是指在JSP页面系统中已经默认内置的Java对象#xff0c;这些对象不需要开发人员声明即可使用。
9个内置对象如下#xff1a; page#xff1a;代表当前JSP页面 request:代表由用户提交请求而触发的request对象 session:代表会话对象…JSP的9个内置对象(隐含对象)
JSP内置对象是指在JSP页面系统中已经默认内置的Java对象这些对象不需要开发人员声明即可使用。
9个内置对象如下 page代表当前JSP页面 request:代表由用户提交请求而触发的request对象 session:代表会话对象在发生HTTP请求时被创建 application:代表返回的ServletContext对象 response:代表用户提交请求而触发的对象 out:代表输出流的JspWrite对象用来向客户端输出各种格式的数据并且管理服务器上的输出缓冲区 config:代表为当前页面配置JSP的Servlet exception:代表当前页面产生不可预测的异常 pageContext:提供对JSP页面所有对象和名字空间的访问。
JSP内置对象的作用域 所谓内置对象的作用域是指每个内置对象在多长时间和多大范围内有效即在什么样的范围内可以有效的访问同一个对象的实例。
1-Application作用域对应application对象的作用范围起始于服务器启动时cpplication对象被创建之时终止于服务器被关闭时该作用域时间最长。
2-Session作用域作用在客户端和服务器端连接的期间直到连接中断为止。Session对象是服务器端为客户端开辟的存储空间每个用户首次访问服务器时服务器自动为该用户创建一个session对象该用户退出时该session对象消失。
3-Request作用域对应request对象的作用范围客户每次向JSP页面提出请求时候创建一个request对象当请求结束该request立刻失效。
4-Page作用域对应page对象的作用范围仅在一个JSP页面有效它的作用范围最小。
程序员应根据需要合理使用JSP内置对象管理有关信息。 例如涉及全局的网站访问次数就应该由applicatiion对象来管理涉及多个页面的用户个人信息应该由session对象管理只涉及一次请求过程的由reuqest对象管理request对象包含了用户的所有请求信息。
JSP内置对象的使用方法 1-out对象 该对象是JspWriter类的实例主要用来向客户端输出内容同时管理应用服务器输出缓冲区。 out对象主要有out.println()和print()两个方法用于输出数据。 下面演示用out对象输出系统时间
% page contentTypetext/html;charsetUTF-8 languagejava %
% page importjava.text.SimpleDateFormat %
% page importjava.util.Date %
htmlheadtitle$Title$/title/headbody%SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd) ;Date date new Date() ;out.println(原始日期格式 date) ;String str1 sdf.format(date) ;out.println(自定义日期格式1 str1) ;sdf.applyPattern(yyyy年MM月dd日);String str2 sdf.format(date) ;out.println(自定义日期格式2 str2) ;%/body
/html
2-page对象 page对象代表了JSP本身或者说它代表了被转换后的Servlet,因此它可以调用任何被Servlet所定义的方法在JSP页面的JSP程序段以及JSP表达式中可以使用page对象page对象的基类是Object类如果要通过page类来调用方法就只能调用Object的方法。 在JSP页面中this关键字表示当前JSP页面这个对象。
% page contentTypetext/html;charsetUTF-8 languagejava %
% page info 江西理工大学软件工程学院 %
htmlheadtitle$Title$/title/headbody bgcolor yellow返回当前JSP页面的Info属性 % this.getServletInfo()% br返回当前页面的一个ServletConfig对象% this.getServletConfig()%br% this.getClass()%br/body
/html
3-request对象 客户每次向JSP服务器发送请求时JSP引擎都会创建一个request对象客户端的请求信息被封装到request对象中通过它才能了解客户的需求然后做出响应。在request封装了客户请求参数以及客户端的信息。 在request对象的方法中比较常用有getParameter和getParameterValues两个方法。 getParameter()获取客户端提交页面中某一控件的值这个函数的返回值是一个String对象。 getParameterValues()可以获取客户端提交页面中一组控件的值返回值是一个String数组。
下面通过实例演示request对象几个常用方法的使用。
% page contentTypetext/html;charsetUTF-8 languagejava %
htmlheadtitle$Title$/title/headbody%out.println(请求使用的协议 request.getProtocol() br) ;out.println(请求使用的Schema request.getScheme() br) ;out.println(访问服务器的名称: request.getServerName() br) ;out.println(访问服务器的端口号 request.getServerPort() br) ;out.println(客户端用户IP地址 request.getRemoteAddr() br) ;out.println(客户端用户主机名称 request.getRemoteHost() br) ;out.println(客户端用户名称 request.getRemoteUser() br) ;out.println(请求的类型 request.getMethod() br) ;out.println(Session ID : request.getRequestedSessionId() br ) ;out.println(请求的资源定位 request.getRequestURI() br) ;out.println(servlet在相对服务器文件夹的位置 request.getServletPath() br) ;out.println(Host: request.getHeader(Host) br) ;out.println(Accept-Language request.getHeader(Accept-Language) br) ;out.println(得到链接的类型 request.getHeader(Connection) br) ;out.println(得到Cookie的字符换信息 request.getHeader(Cookie) br) ;out.println(session相关信息-创建时间: session.getCreationTime() br ) ;out.println(session的相关信息-上次访问时间 session.getLastAccessedTime() br) ;out.println(返回请求对象中的字符编码类型 request.getCharacterEncoding() br) ;%/body
/html
下面演示request.getParameter()和request.getParameterValues()方法的使用由两个页面组成 第一个页面是信息采集页面input.jsp第二个页面是信息展示页面show.jsp第一个页面采集的值在第二个页面通过getParamter()和getParamValues()方法获取。
信息采集页面input.jsp
%--Created by IntelliJ IDEA.User: nuist__NJUPTDate: 2021/10/4Time: 15:56To change this template use File | Settings | File Templates.
--%
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
form action show.jsp method post name frm基本资料/strongtable width 500 cols 2 border1trtd姓名/tdtdinput type text name name//td/trtrtd性别/tdtdinput type radio name rdo value 男 checked男input type radio name rdo value 女女/td/trtrtd民族/tdtdinput type radio name rdo1 value 汉族 checked 汉族input type radio name rdo1 value 回族 回族input type radio name rdo1 value 壮族 壮族input type radio name rdo1 value 其它 其它/td/trtrtd专业/tdtdselect name majoroption value 计算机科学与技术计算机科学与技术/optionoption value 软件工程软件工程/optionoption value 网络工程网络工程/optionoption value 信息安全信息安全/optionoption value 其它其它/option/select/td/tr/tablebr兴趣爱好/strongtable width 500 cols 2 border 1trtd兴趣爱好/tdtdinput type checkbox name ckbx value 电影电影input type checkbox name ckbx value 戏剧戏剧input type checkbox name ckbx value 音乐音乐input type checkbox name ckbx value 美术美术/td/tr/tablebrinput type submit value 注册 name submit1/
/form
/body
/html
信息展示页面show.jsp
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
%request.setCharacterEncoding(utf-8);
%
用户注册信息br
基本资料br
姓名% request.getParameter(name)%br
性别% request.getParameter(rdo)%br
民族% request.getParameter(rdo1)%br
专业% request.getParameter(major)%br
兴趣爱好%String [] arr request.getParameterValues(ckbx) ;if(arr ! null){for(int i0; iarr.length; i){out.println(arr[i] ) ;}}
%
/body
/html4-response对象 该对象是服务器对request对象请求的响应负责向客户端发送数据通过response的方法还可以获得服务器相关的信息例如状态行head信息体等其中状态行包括使用的协议和状态码head包括服务器和返回的文档消息。
下面使用response设置head信息实现页面定时刷新功能. % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle设置头信息(自动刷新)/title
/head
body
%! int count 0 ; %
%response.setHeader(refresh, 2) ; //页面2秒刷新一次
%
h3页面已经访问了% count %次/h3
/body
/html
下面利用response设置head信息实现页面定时跳转功能可以从一个JSP页面定时跳转到另一个JSP页面但是这种跳转不是万能的有时候不一定能完成跳转操作。 % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle定时跳转指令/title
/head
body
h33秒后跳转到index.jsp如果没有跳转请戳这里a href index.jsp戳这里/a/h3
%response.setHeader(refresh, 3; URL index.jsp) ; //3秒后跳转到index.jsp
%/body
/html5-session对象 在web开发中 客户端与服务器端进行通信是以HTTP协议为基础的而HTTP协议本身是无状态的无状态是指协议对事务处理没有记忆能力HTTP无状态的特性严重阻碍了web应用程序的实现比如典型的购物车程序需要知道用户在其它页面选择了什么商品。有两种用于保持HTTP连接的技术分别是session和Cookie。
session对象是用户首次访问服务器由服务器创造的在jsp页面可以通过getSession()方法获取session对象服务器创建session对象的同时会为Session对象生成唯一的sessionId,发送到客户端的就是sessionId,客户端再次发送请求时服务器根据sessionId找到相应的session对象从而使用它。
由于浏览器在关闭之前不会通知服务器因此服务器不会知道浏览器是否已经关闭因此服务器为session设置一个有效时间当距离客户上次活跃时间已经超过这个失效时间服务器就可以认为客户端已经停止了活动就会把session删除以节省存储空间。
下面演示一个例子如何存取request及session对象中的属性两个JSP文件login.jsp为登录页面用于输入用户登录的信息如果用户输入的登录名为admin密码为123,则将登录名存入session中跳转到logok.jsp页面。
% page contentTypetext/html;charsetUTF-8 languagejava %
%String path request.getContextPath() ;String basePath request.getScheme() :// request.getServerName() : request.getServerPort() path / ;
%%--进行登录验证--%
%request.setCharacterEncoding(utf-8);//获取用户请求信息首次请求没有这些信息从页面填写信息提交后再次请求就有信息了String user request.getParameter(user) ;String password request.getParameter(password) ;if(admin.equals(user) 123.equals(password)){request.getSession().setAttribute(username, user); //将用户保存到session中
%jsp:forward pageloginok.jspjsp:param nameinfo value你好啊加油啊/
/jsp:forward
%}
%
html
headbase href %basePath%
/head
bodycenterform actionlogin.jsp methodposttabletrtd用户登录/td/trtrtd登录名/tdtdinput type text name user/td/trtrtd密码/tdtdinput type password name password/td/trtrtdinput type submit value 登录/tdtdinput type reset value 重置/td/tr/table/form
/center
/body
/html% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle登录成功/title当前用户(从session对象中获取)% request.getSession().getAttribute(username)%br从request对象获取一下参数brinfo % request.getParameter(info)%bruser % request.getParameter(user)%brpassword % request.getParameter(password)%bra href login.jsp返回登录页面/abr
/head
body/body
/html
6-application对象 该对象是web服务器启动时由服务器自动创建的它的生命周期是所有JSP隐含对象中最长的一旦创建了application对象那么这个对象将一直保存下去直至服务器关闭。 正是由于application对象的这个特性可以将要在多个用户中 共享的数据放到application对象中如在线人数的统计实现聊天室等功能。
application对象的常用方法主要由两个setAttribute(),getAttribute()
下面实现一个页面访问计数器的案例。
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitle页面访问计数器/title
/head
body
%if(application.getAttribute(count) null){application.setAttribute(count, 1) ;out.println(欢迎您是本网页的第1位访客) ;}else{int i Integer.parseInt((String)application.getAttribute(count)) ;i ;application.setAttribute(count, String.valueOf(i)) ;out.println(欢迎您是本网页的第 i 位访客) ;}
%
/body
/html
运行程序即使将页面关闭重新打开或者从不同客户端浏览器打开网页计数器仍然有效只到服务器重启为止此计数器记录的是所有访问过本网页的次数而与是否是同一客户端无关。
7-config对象 config对象中存储着一些Servlet初始的数据结构它跟page对象一样它跟page一样很少被用到可以通过config对象获取Servlet初始参数值。
8-exception对象 当JSP页面发生错误时会产生异常exception对象就是用来针对异常进行处理的对象。
9-pageContext对象 pageContext对象能够存取其它内置对象当内置对象包括属性时候pageContext也支持对这些属性的读取和写入。