怎么灵活使用JSP的session、application、config这些内置对象
Admin 2023-04-26 群英技术资讯 414 次浏览
在这篇文章中我们来了解一下“Java之JSP教程九大内置对象详解(中篇)”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
之前我们在这篇文章Java之JSP教程九大内置对象详解(上篇)中,讲解了三个对象,接下来我们讲解下面的三个对象
JSP session 是 javax.servlet.http.HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息。
HTTP 协议是一种无状态的协议(即不保存连接状态的协议)。每次用户向服务器发出请求,且服务器接收请求并返回响应后,该连接就被关闭了,服务器端与客户端的连接被断开。此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,就用到了 session 对象。
在 login.jsp 页面登录,并跳转到 index.jsp。login.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>用户登录
用户名:密码:
在 index.jsp 中,使用 session.setAttribute() 方法将用户名存储到 session 对象中,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String username = request.getParameter("username"); out.print("欢迎" + username + "登录"); session.setAttribute("sessname", username); %> 跳转成功页面
在 success.jsp 中,使用 session.getAttribute() 方法获取 session 对象中的用户名,并显示。success.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String name = (String) session.getAttribute("sessname"); out.print("您好,您的用户名为:" + name); %>
运行结果如下图所示:
login.jsp运行结果
index.jsp运行结果
index.jsp运行结果
如果使用的是 Tomcat 服务器,可以在 web.xml 文件中添加以下内容来设置 session 的有效时间:
15
这里单位是分钟,即表示 session 对象的有效时间为 15 分钟,Tomcat 默认有效时间为 30 分钟。
如果在 web.xml 中配置的是15分钟,则 getMaxInactiveInterval( ) 方法返回 900。
JSP application 是 javax.servlet.ServletContext 的实例对象。
在服务器部署应用和项目时,Web 容器仅创建一次 ServletContext 实例,也就是说 application 设置的任何属性和值可以用于整个应用(所有 JSP 页面)。
可以将 application 对象看作 Web 应用的全局变量。一
般用于保存应用程序的公用数据。
application 对象在 Web 应用运行时一直存在于服务器中,非常占用资源,因此在实际开发中不推荐使用,否则容易造成内存不足等情况。
application 对象常用方法如下:
- Object getAttribute(String attributeName):获取 attributeName(属性名称)对应的 object
- void setAttribute(String attributeName, Object object):设置attributeName对应的属性值
- Enumeration getAttributeNames():返回 application 对象中所有的 attributeName
- void removeAttribute(String objectName):删除 application 对象中指定 attributeName 的属性
- String getServerInfo():获取当前 Servlet 的版本信息
- String getRealPath(String value):获取指定文件的实际路径
可以使用 application 对象来保存 JSP 页面的访问人数,也就是我们常说的网站计数器,下面通过一个例子来演示。
index.jsp 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*"%> <% Integer count = (Integer) application.getAttribute("count"); if (count == null) { count = 1; } else { count++; } application.setAttribute("count", count); %>编程帮网站计数器
欢迎访问编程帮,您是第<%=count%>位访问客户!
运行结果如下:
首次访问count为1
连续刷新页面count增加
JSP config 是 javax.servlet.ServletConfig 的实例对象,一般用于获取页面和 Servlet 的初始化参数。
- config 对象的常用方法如下:
- String getInitParameter(String paramname):获取指定的初始化参数值
- Enumeration getInitParameterNames():获取当前页面所有的初始化参数值
- ServletContext getServletContext():获取当前执行 Servlet 的 servletContext(Servlet 上下文)的值
- String getServletName():获取当前执行 Servlet 的名称
示例
在 web.xml 文件中定义 Servlet 名称和映射,然后使用 config 对象获取信息。
web.xml 代码如下:
BianChengBangServlet/index.jspurlhttp://www.biancheng.netBianChengBangServlet/index
在 index.jsp 页面获取 Servlet 名称以及初始化参数,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String sname = config.getServletName(); String url = config.getInitParameter("url"); out.print("Servlet名称为:" + sname + " "); out.print("初始化参数为:" + url + " "); %>
运行结果如下:
注意:因为 JSP 页面的实质是 Servlet,所以一般很少在 JSP 页面中使用 config 对象。
到此,关于“Java之JSP教程九大内置对象详解(中篇)”的学习就结束了,希望能够解决大家的疑惑,另外大家动手实践也很重要,对大家加深理解和学习很有帮助。如果想要学习更多的相关知识,欢迎关注群英网络,小编每天都会给大家分享实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了JSP数据交互实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这篇文章主要介绍了Java之JSP教程九大内置对象详解(中篇),本文章内容详细,通过案例可以更好的理解JSP内置对象的相关知识,本模块分为了三部分,本次为中篇,讲解了三个内容,需要的朋友可以参考下
这篇文章主要为大家详细介绍了JSP servlet实现文件上传下载和删除,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了使用JSP技术实现一个简单的在线测试系统的实例详解,文章通过示例代码和代码运行结果图相结合展示介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了jsp request.getParameter() 和request.getAttribute()方法区别详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008