介绍一下JSP中application的用法

介绍一下JSP中application的用法,第1张

application对象

什么是application对象?

( )当Web服务器启动时 Web服务器会自动创建一个application对象 application对象一旦创建 它将一直存在 直到Web服务器关闭

一个Web服务器通常有多个Web服务目录(网站) 当Web服务器启动时 它自动为每个Web服务目录都创建一个application对象 这些application对象各自独立 而且和Web服务目录一一对应

访问同一个网站的客户都共享一个application对象 因此 application对象可以实现多客户间的数据共享

访问不同网站的客户 对应的application对象不同

( )application对象的生命周期 从Web服务器启动 直到Web服务器关闭

注意 一个Web应用程序启动后 将会自动创建一个application对象 而且在整个应用程序的运行过程中只有一个application对象 也即所有访问该网站的客户都共享一个application对象

( )application对象的作用范围 application对象是一个应用程序级的对象 它作用于当前Web应用程序 也即作用于当前网站 所有访问当前网站的客户都共享一个application对象

具体来说 不管哪个客户来访问网站A 也不管客户访问网站A下哪个页面文件 都可以对网站A的application对象进行 *** 作 因为 所有访问网站A的客户都共用一个application对象

因此 当在application对象中存储数据后 所有访问网站A的客户都能够对其进行访问 实现了多客户之间的数据共享

( )application对象的基类是 javax servlet ServletContext类

注意 有些Web服务器不直接支持使用application对象 必须用ServletContext类来声明application对象 再调用getServletContext()方法来获取当前页面的application对象

( )ServletContext类 用于表示应用程序的上下文

一个ServletContext类的对象表示一个Web应用程序的上下文

具体来说 在Web服务器中 提供了一个Web应用程序的运行时环境 专门负责Web应用程序的部署 编译 运行以及生命周期的管理 通过ServletContext类 可以获取Web应用程序的运行时环境信息

常识 JSP引擎 Servlet引擎 JSP容器和Servlet容器 都是指Web服务器 Web服务器用于管理所有Web应用程序

( )application对象的常用方法 如下所示

方法名 描述 StringgetAttribute(Stringname) 根据属性名称获取属性值 EnumerationgetAttributeNames() 获取所有的属性名称 voidsetAttribute(Stringname Objectobject) 设置属性 指定属性名称和属性值 voidremoveAttribute(Stringname) 根据属性名称删除对应的属性 ServletContextgetContext(Stringuripath) 获取指定URL的ServletContext对象 StringgetContextPath() 获取当前Web应用程序的根目录 StringgetInitParameter(Stringname) 根据初始化参数名称 获取初始化参数值 intgetMajorVersion() 获取ServletAPI的主版本号 intgetMinorVersion() 获取ServletAPI的次版本号 StringgetMimeType(Stringfile) 获取指定文件的MIME类型 StringgetServletInfo() 获取当前Web服务器的版本信息 StringgetServletContextName() 获取当前Web应用程序的名称 voidlog(Stringmessage) 将信息写入日志文件中

使用application对象存储数据

( )设置application对象的属性和获取application对象的属性

测试代码

TestApplication jsp

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<formname=&# ;form &# ;action=&# ; method=&# ;post&# ;>

用户名

<inputtype=&# ;text&# ;name=&# ;username&# ;value=&# ; >

<br>

密码

<inputtype=&# ;password&# ;name=&# ;pwd&# ;value=&# ; >

<br>

<inputtype=&# ;submit&# ;name=&# ;btSubmit&# ;value=&# ;提交&# ;>

</form>

<%

application setAttribute(&# ;username&# ; request getParameter(&# ;username&# ;));

application setAttribute(&# ;pwd&# ; request getParameter(&# ;pwd&# ;));

%>

</body>

</>

测试代码

TestCommon jsp

在TestCommon jsp页面中 通过application对象获取属性 注意TestApplication jsp和TestCommon jsp这两个页面之间没有任何关联 只要通过application对象设置了属性 那么就可以在任何页面 通过application对象获取属性或者删除属性

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

用户名 <%=application getAttribute(&# ;username&# ;)%><br>

密码 <%=application getAttribute(&# ;pwd&# ;)%><br>

</body>

</>

( )删除application对象的属性

测试代码

TestCommon jsp

在TestCommon jsp页面中 删除application对象的属性

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%&# ;删除属性&# ;%>

<%

application removeAttribute(&# ;username&# ;);

application removeAttribute(&# ;pwd&# ;);

%>

用户名 <%=application getAttribute(&# ;username&# ;)%><br>

密码 <%=application getAttribute(&# ;pwd&# ;)%><br>

</body>

</>

使用application对象实现网站计数器

测试代码

TestApplication jsp

<%@pagelanguage=&# ;java&# ;contentType=&# ;text/;charset=GBK&# ;%>

<%@pageimport=&# ;java util &# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%!

ServletContextapplication;

synchronizedvoidcountPeople(){

application=getServletContext();

Integernumber=(Integer)application getAttribute(&# ;number&# ;);

if(number==null){

number=newInteger( );

application setAttribute(&# ;number&# ; number);

}else{

number=newInteger(number intValue()+ );

application setAttribute(&# ;number&# ; number);

}

}

%>

<%

if(session isNew()){

countPeople();

}

intpersonCount=((Integer)application getAttribute(&# ;number&# ;)) intValue();

%>

<p>欢迎访问本网站 您是第<%=personCount%>个访问用户!

</body>

</>

使用application对象获取初始化参数

( )一般来说 在web xml文件中 设置初始化参数有如下两种方式

n设置系统范围内的初始化参数

n针对单个Servlet文件或JSP文件设置初始化参数

对于系统范围内的初始化参数 可通过ServletContext接口的getInitParameter(Stringname)方法 根据指定的参数名 获取对应的参数值

对于针对单个Servlet文件或JSP文件设置初始化参数 可通过ServletConfig接口的getInitParameter(Stringname)方法 根据指定的参数名 获取对应的参数值 ( )如何设置系统范围内的初始化参数

在web xml文件中 可利用context param元素来设置系统范围内的初始化参数 context param元素应该包含param name param value以及可选的description子元素 如下所示 <context param> <param name>support email</param name> <param value></param value> </context param>

web xml文件的示例

<xmlversion=&# ; &# ;encoding=&# ;UTF &# ;>

<web appversion=&# ; &# ;

xmlns=&# ;;

xmlns:xsi=&# ;;charset=GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<%&# ;使用application对象获取系统范围内的初始化参数&# ;%>

<fontcolor=&# ;Red&# ;>使用application对象获取初始化参数 </font>

<br>

<%

StringappName=getServletContext() getInitParameter(&# ;appName&# ;);

StringappVersion=getServletContext() getInitParameter(&# ;appVersion&# ;);

%>

应用程序的名称 <%=appName%><br>

应用程序的版本 <%=appVersion%>

</body>

</>

修改web xml文件 添加蓝色字体部分

<xmlversion=&# ; &# ;encoding=&# ;UTF &# ;>

<web appversion=&# ; &# ;

xmlns=&# ;;

xmlns:xsi=&# ;;charset=GBK&# ;

pageEncoding=&# ;GBK&# ;%>

<%request setCharacterEncoding(&# ;GBK&# ;);%>

<>

<body>

<h >使用application对象获取Web应用程序的环境信息</h >

<p>

<fontcolor=&# ;Red&# ;>获取当前Web服务器的版本信息 </font><%=application getServerInfo()%><br>

<fontcolor=&# ;Red&# ;>获取ServletAPI的主版本号 </font><%=application getMajorVersion()%><br>

<fontcolor=&# ;Red&# ;>获取ServletAPI的次版本号 </font><%=application getMinorVersion()%>

<p>

<fontcolor=&# ;Red&# ;>获得指定URL的ServletContext对象 </font>

<%

ServletContextsc=application getContext(&# ;/ch /TestApplication jsp&# ;);

out println(sc getServerInfo());

%>

<p>

<%&# ;需要在web xml设置display name元素&# ;%>

<fontcolor=&# ;Red&# ;>获取当前Web应用程序的名称 </font><%=application getServletContextName()%>

<p>

<fontcolor=&# ;Red&# ;>获取当前Web应用程序的上下文路径 </font><%=application getContextPath()%>

</body>

</>

测试结果

session对象和application对象的比较

( )两者的作用范围不同

session对象是用户级的对象 而application对象是应用程序级的对象

一个用户一个session对象 每个用户的session对象不同 在用户所访问网站的多个页面之间共享同一个session对象

一个Web应用程序一个application对象 每个Web应用程序的application对象不同 但一个Web应用程序的多个用户之间共享同一个application对象

在同一个网站下

n每个用户的session对象不同

n所用用户的application对象相同

在不同网站下

n每个用户的session对象不同

n每个用户的application对象不同

( )两者的生命周期不同

session对象的生命周期 用户首次访问网站创建 用户离开该网站(不一定要关闭浏览器)消亡

application对象的生命周期 启动Web服务器创建 关闭Web服务器销毁

lishixinzhi/Article/program/Java/hx/201404/30479

启动tomcat,把JSP文件放到tomcat安装目录的boot目录下,然后

在IE中输入:>

登录的action中将用户名存到session中,在页面上获取,如果session有值就是登录了。

保存到session或者就是保存到一个对象里就行了。

在登录页面将请求交个LoginAction处理,(写好对应的ActionForm)并且同时Struts会将表单信息保存。

到LoginForm对象中,将对象保存在(request或session),这样子就可以在其他JSP页面调用。

登陆成功后sessionsetAttribute("user",user);jsp里,User user =(User)sessiongetAttribute("user")。

JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于>

JSP是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(htm,html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以 *** 纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序 *** 作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。

一个JSP页面可以被分为以下几部份:

静态数据,如HTML

JSP结构图。

JSP指令,如include指令。

JSP脚本元素和变量。

JSP动作。

网站的搭建过程是一个复杂过程。

1、开发一个网站

2、发布一个网站

3、运营一个网站

4、维护一个网站

一个网站大都要经历着4个阶段(本人归纳,肯定有遗漏的地方) 。

每一个过程都和网站能不能提供正常的服务有切实关系。

1、开发一个网站:这个可能是网站能不能提供服务的最基础的东西了,没有网站和谈提供服务。开发网站也就是制作的过程,这就涉及到了软件开发部分的东西了,具体的请参考软件开发的东西,这里只讲概述。目前开发网站的语言很多:net java php 等等。制作完网站的整体部分后,就要开始发布网站到网上了。你所说的就是这个时期的!以上你用的ip访问的方式只是作为本机测试或是统一局域网间的访问方式。如果要发布到互联网上,请看下面的!!!

2、发布:首先你要有自己的域名,也就是像>

<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a8c7ce">

<tr align="center" height="25" bgcolor="d3eaef">

<td width="5%">

编号

</td>

<td width="10%">

标题

</td>

<td width="23%">

内容

</td>

<td width="10%">

发表日期

</td>

<td width="16%">

基本 *** 作

</td>

</tr>

<%

//获取新闻信息集合,newList是从后台返回来的集合变量

List nList = (List) sessiongetAttribute("newList");

NewsEntity new = null;

if (nListsize() <= 0) {

%>

<tr height="22" bgcolor="#FFFFFF" align="center">

<td colspan="9" align="center">

暂无新闻信息

</td>

</tr>

<%

} else {

for (int i = 0; i < nListsize(); i++) {

new = (NewsEntity) mListget(i);

%>

<tr height="22" bgcolor="#FFFFFF" align="center">

<td>

<%=newgetId() %>

</td>

<td>

<%=newgetTitle() %>

</td>

<td>

<%=newgetContent() %>

</td>

<td>

<%=newtime() %>

</td>

<td>

<a href="MusicServletforward=getNewsDetailById&ID=<%=newgetId()%>" >

<span class="STYLE2">编辑</span> </a> | 

<a href="MusicServletforward=doDelNewsById&ID=<%=newgetId()%>"

onclick="return confirm('您确定要删除该条信息吗?');"><span

class="STYLE2">删除</span> </a>

</td>

</tr>

<%

}

}

%>

</table>

你下载个登陆控制的程序,里面就有注册和登陆,还有密码修改,照着做就行了

原理是利用sql语句获取用户数据库中的登录名和密码,然后显示在文本框中,用户修改后,利用update语句进行提交,修改数据库

这个问题不现实。

1JSP连接数据库的信息都封装在一个javabean中,或者在JAVA web项目的配置文件中,也就是说,获取数据库地址,名称和密码收到了限制

2连接数据库信息的javabean,在编译后会放在WEB项目的WEB-INF文件夹下,这个文件夹是拒绝用户访问的,你是拿不到这个配置信息的!

3数据库是放在远端数据库服务器中,远端服务器提供一个唯一的数据库名和地址,用于其他主机访问,理论上说,通过IP截取,可以获得IP的访问地址,然后再逐步分析~然而需要先解码。

4提问者的动机不纯洁,这是个招生分数查询网!你想改你的分数?你即使修改了数据库也没用,数据库是有事务日志信息的。它记录了所有对数据库的事物 *** 作,当发现有入侵 *** 作,只要恢复信息就好!

综上,你还是别想了,老实考试就行了,别动歪脑筋了……

以上就是关于介绍一下JSP中application的用法全部的内容,包括:介绍一下JSP中application的用法、请问如何在本地电脑浏览JSP的网站、我配好了shiro,登录成功后,怎么在jsp页面获得用户信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9640439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存