servlet

作用域

所谓“作用域”就是通过设置属性的方式,将一些信息绑定到对象上。

Servlet 中能够设置属性的对象有ServletRequest/HttpServletRequest、HttpSession、ServletContext。用于存储、查询和删除这些属性的方法对于所有的作用域都是相同的。它们是:

Object getAttribute(String name);    
void setAttribute(String name, Object value);    
void removeAttribute(String name);     
Enumeration getAttributeNames();  

 ServletRequest :请求作用域

对应于JSP 中的Request,封装了客户的请求信息, 如客户的请求方式、参数名和参数值  、客户端正在使用的协议,以及发出请求的远程主机信息。HttpServletRequest 接口包含了客户端的请求信息,通过该接口取得客户端的一些信息(如:IP地址、浏览器类型等)及HTTP 请求类型(如:GET、HEAD、POST、PUT等)。

通过HttpServletRequest 接口中的getSession() 方法还可以获得会话作用域(HttpSession) 。

 public HttpSession getSession();  如果“当前用户的会话对象”为空(第一次访问时)则创建一个新的会话对象返回

 public HttpSession getSession(boolean create);   create=false:如果“当前用户的会话对象”为空,则返回null(即不自动创建会话对象),create = true 与不带参数用法一样。

ServletRequest 对象获得方法

javax.servlet.ServletRequestWrapper.getRequest();

 HttpSession:会话作用域

对应于JSP 中的Session,为访客分配一个唯一标识,并存储在客户端的Cookie 中。

常用方法:

public boolean isNew();  判断这个session是不是新的。

public void invalidate();  终止这个session。所有绑定在这个session上的数据都会被清除。

public void setMaxInactiveInterval(int interval) ;设置会话的超时值。

HttpSession 对象几种获得方法

javax.servlet.http.HttpServletRequest.getSession(boolean create);

javax.servlet.http.HttpServletRequest.getSession();

javax.servlet.http.HttpServletRequestWrapper.getSession(boolean create);

javax.servlet.http.HttpServletRequestWrapper.getSession();

javax.servlet.http.HttpSessionBindingEvent.getSession();

javax.servlet.http.HttpSessionContext.getSession(String sessionID);

javax.servlet.http.HttpSessionEvent.getSession();

 ServletContext:上下文作用域

对应于JSP 中的Application,是Servlet 与Servlet 容器直接通信的接口,Servlet 容器在启动一个Web 应用时,会为它创建一个唯一的ServletContext 对象。同一个Web 应用的所有Servlet 共享一个ServletContext,Servlet 对象通过它来访问 Servlet 容器中的各种资源。

常用方法:1、访问当前Web 的应用资源

public String getContextpath(); 返回当前Web应用的入口URL。

public String getInitParameter(String name);返回Web 应用范围内的匹配的初始化参数值。在web.xml 中<web-app>元素中<context-param>元素标识应用范围内的初始化参数。

public Enumeration getInitParameterNames();

public String getServletContextName(); 返回Web 应用名字。即<web-app>元素中<display-name>元素的值。

public RequestDispacher getRequestDispacher(String path);返回一个像其他Web组件发送请求的RequestDispacher 对象。

2、访问 Servlet 容器的相关信息

public ServletContext getContext(String uripath); 根据指定的URI,返回当前Servlet容器中,其他Web 应用的ServletContext 对象。

3、访问Web 容器的相关信息

public String getServerInfo(); 返回Servlet 容器的名字和版本。

public int getMajorVersion(); 返回Servlet 容器支持的Java Servlet API 的主版本号。

public int getMinorVersion(); 返回Servlet 容器支持的java Servlet API 的主版次号。

4、访问服务器端的文件系统资源

public String getRealPath(String path); 根据参数指定的虚拟路径,返回一个文件系统中的真实路径。

public URL getResource(String path);返回一个指定路径的URL。

5 输出日志

public void log(String msg); 向Servlet 的日志文件中写日志。

public void log(String msg,Throwable throwable);向日志文件中写错误信息,以及异常堆栈信息。

ServletContext 对象获得的几种方式:

javax.servelt.http.HttpServlet.getServletContent();

javax.servlet.http.HttpSession.getServletContext();

javax.servlet.jsp.PageContext.getServletContext();

javax.servlet.servletConfig.getServletContext();



实现session监听器


1.Listener是Servlet的监听器    
2.可以监听客户端的请求、服务端的操作等。   
3.通过监听器,可以自动激发一些操作,如监听在线用户数量,当增加一个HttpSession时,给在线人数加1。   
4.编写监听器需要实现相应的接口   
5.编写完成后在web.xml文件中配置一下,就可以起作用了   
6.可以在不修改现有系统基础上,增加web应用程序生命周期事件的跟踪   


常用的监听接口   

Java代码

  1. 1.ServletContextAttributeListener      
  2. 监听对ServletContext属性的操作,比如增加/删除/修改      
  3. 2.ServletContextListener      
  4. 监听ServletContext,当创建ServletContext时,激发 contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。      
  5. 3.HttpSessionListener      
  6. 监听HttpSession的操作。当创建一个 Session时,激发session Created(SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。      
  7. 4.HttpSessionAttributeListener      
  8. 监听HttpSession中的属性的操作。当在Session增加一个属性时,激发 attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。    

1.ServletContextAttributeListener 监听对ServletContext属性的操作,比如增加/删除/修改 2.ServletContextListener 监听ServletContext,当创建ServletContext时,激发 contextInitialized(ServletContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。 3.HttpSessionListener 监听HttpSession的操作。当创建一个 Session时,激发session Created(SessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。 4.HttpSessionAttributeListener 监听HttpSession中的属性的操作。当在Session增加一个属性时,激发 attributeAdded(HttpSessionBindingEvent se) 方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园短期闲置资源置换平台是一种创新的在线服务系统,旨在促进校园内学生、教职工以及其他成员之间的资源共享和有效利用。通过这个平台,用户可以发布、查找并交换他们暂不使用的资源,从而实现资源的最大化利用,减少浪费,并促进校园内的可持续生活方式。以下是该平台可能包含的一些关键特性: 1. **用户注册和认证**:用户需要通过校园身份验证进行注册,确保平台的使用者都是校园社区的成员。 2. **资源发布**:用户可以发布他们愿意短期出借或交换的资源,如书籍、运动器材、电子产品、家具等。 3. **资源搜索和筛选**:用户可以根据资源类型、状态、可用间等条件搜索和筛选所需的资源。 4. **在线预订系统**:用户可以通过平台预订所需的资源,并约定取用和归还的间和地点。 5. **评价和信誉系统**:用户可以对交易的对方进行评价,建立信誉体系,增加用户间的信任。 6. **即通讯功能**:平台内置即通讯工具,方便用户就资源交换的细节进行沟通。 7. **安全和隐私保护**:确保用户的个人信息和交易记录的安全,保护用户的隐私。 8. **移动应用支持**:开发移动应用程序,使用户能够随随地访问平台,进行资源的发布和搜索。 9. **教育资源置换**:特别为教师和研究人员提供教育资源的置换服务,如实验材料、研究工具等。 10. **活动和研讨空间**:平台还可以用于发布和预订校园内临活动或研讨所需的空间。 11. **环保意识提升**:通过平台的推广和使用,增强校园社区成员的环保意识和资源节约意识。 12. **数据分析和报告**:平台可以收集和分析资源使用数据,为校园管理层提供资源利用和需求的洞察,以优化资源配置。 校园短期闲置资源置换平台通过提供一个便捷、高效和安全的在线环境,鼓励校园成员参与资源共享,不仅能够促进资源的合理分配和循环利用,还能增强社区的凝聚力和互助精神。随着共享经济理念的普及,这样的平台在校园中的推广和应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值