Struts2 网站上来多少人
strut.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.action.extension" value="action,do,"></constant> <package name="default" namespace="/" extends="struts-default">
<action name="login-ui">
<result>/login.jsp</result>
</action>
<action name="user-login" class="user.action.UserAction">
<result name="login-success">/login-success.jsp</result>
</action> <action name="logout" class="user.action.UserAction" method="logout">
<result name="logout-success">/login.jsp</result>
</action>
</package> </struts>
Action中的业务实现:
package user.action; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware; public class UserAction implements SessionAware,ApplicationAware{
private String username;
public void setUsername(String username) {
this.username = username;
}
public String execute(){
//把用户信息存入Session域中
//1:获取session 实现SessionAware接口
//2:获取登录信息 :通过在Action中添加setter方法
//3:把用户信息存入Session域中
session.put("username", username);
//在线人数+1
//1:获取当前在线人数 :从application中获取。
Integer count= (Integer) application.get("count");
if(count==null){
count=0;
}
//2:当前人数+1
count++;
application.put("count", count);
return "login-success";
} public String logout(){
//1.在线人数-1
Integer count=(Integer) application.get("count");
if(count !=null && count>0){
count--;
application.put("count", count);
}
//2.session失效 :用ServletActionContext获取到HttpServletRequest。让后用HttpServletRequest
//获取到session :request.getSession() 调用:invalidate()
HttpServletRequest request = ServletActionContext.getRequest ();
request.getSession().invalidate();
return "logout-success";
} private Map<String,Object> session;
public void setSession(Map<String, Object> session) { this.session=session;
}
private Map<String,Object> application;
public void setApplication(Map<String, Object> application) { this.application=application;
}
}
用到的知识就是:获取WEB资源:
在 Action 中, 可以通过以下方式访问 web 的 HttpSession, HttpServletRequest, HttpServletResponse 等资源
1:与 Servlet API 解耦的访问方式
aaarticlea/png;base64,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" alt="" />
2:与Servlet API耦合的访问方式
aaarticlea/png;base64,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" alt="" />
-------------ActionContext---------
1):ActionContext 是 Action 执行的上下文对象, 在 ActionContext 中保存了 Action 执行所需要的所有对象, 包括 parameters, request, session, application 等.
2):获取 HttpSession 对应的 Map 对象:
public Map getSession()
3):获取 ServletContext 对应的 Map 对象:
public Map getApplication()
4):获取请求参数对应的 Map 对象:
public Map getParameters()
5):获取 HttpServletRequest 对应的 Map 对象:
public Object get(Object key):
ActionContext 类中没有提供类似 getRequest() 这样的方法来获取 HttpServletRequest 对应的 Map 对象. 要得到 HttpServletRequest 对应的 Map 对象, 可以通过为 get() 方法传递 “request” 参数实现
------------------解耦和方式的实现接口---------
Action 类通过可以实现某些特定的接口, 让 Struts2 框架在运行时向 Action 实例注入 parameters, request, session 和 application 对应的 Map 对象:
aaarticlea/png;base64,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" alt="" />
-----------耦合形式的 原生的Servlet API ServletActionContent-------------
常用的方法:
1:直接获取 HttpServletRequest 对象:
ServletActionContext.getRequest()
2:直接获取 HttpSession 对象
ServletActionContext.getRequest().getSession()
3:直接获取 ServletContext 对象
ServletActionContext.getServletContext()
Struts2 网站上来多少人的更多相关文章
- 10种JavaScript特效实例让你的网站更吸引人
我们有三种主要的方法(从难到易):自己动手写脚本;使用类似于jQuery和mooTools的JavaScript框架(可以让编写代码变得更容易些);使用能工作于现有的JavaScript框架下的提前预 ...
- nginx反向代理tomcat应用,struts2网站程序redirect时导致请求地址错误的解决方法
一个使用struts2的网站在登录页面需要进行redirect跳转,大致如下: <package name="admin" extends="httl-defaul ...
- mui做的苹果app生成ipa后放到自己的网站上让人下载安装
苹果的APP不通过app store的话就只能是要那个$299的企业签名证书了.这个我还不会搞,没有搞过!!! 别人已经帮忙签名好的ipa,自己再传到自己的服务器上让人下载安装,步骤如下: Hbuid ...
- struts2、hibernate以及spring是如何配置的
第一次使用这3大框架进行网站编写的人没有一个清楚的流程,建起网站来会比较头疼,今天来讲讲3大框架的配置 基本流程: 用户点击页面之后,服务器收到一个请求,请求经过web.xml的拦截器过滤后进入act ...
- 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)
本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...
- 第一章-第六题(帮人抢票,帮人选课这些软件是否合法 你怎么看?)--By梁旭晖
我觉得这些软件是合法的,符合道德规范的. 计算机当初设计的初衷就是简化甚至替代人类的工作.而软件作为计算机硬件的驱动着,其设计就是体现这些原则. 现在互联网上的订票,选课类型的网站还是有很多的,比如: ...
- 国外经典设计:12个漂亮的移动APP网站案例
优秀的移动应用程序网站是设计灵感的重要来源.从美丽的图像,合理的使用空白到排版和颜色的使用,似乎设计师都加倍努力以创造一些美好和独特的设计来推广自己的应用程序. 因此,在这篇文章中,我们已经聚集了13 ...
- 【特别推荐】10款唯美浪漫的婚礼 & 结婚纪念网站模板
互联网的重要性不言而喻,如今我们的生活已经完全离不开网络.这里给大家分享一组唯美浪漫的结婚邀请网站以及婚礼请柬网站模板,如果你也正想制作这样的网站,相信这些漂亮的网站模板能够带给你很大的帮助,让你快速 ...
- 25佳漂亮的结婚邀请 & 婚礼请柬网站设计
互联网给我们的生活带来了巨大的变化,越来越多的事情可以通过网络完成.下面向大家分享一组结婚邀请网站以及婚礼请柬网站的设计案例,如果你也正想制作这样的网站,相信这些优秀案例能够带给你很大的帮助. 您可能 ...
随机推荐
- opencv中的vs框架中的Blob Tracking Tests的中文注释。
经过2天的努力终于算是大概弄清楚了opencv中的vs框架是大概是如何工作的了,下面贴一下我自己写的代码注释.非常详细.对初学者有帮助.尤其详细分析了RunBlobTrackingAuto()函数,在 ...
- HttpStack及其实现类
HttpStack及其实现类 前两篇已经对网络请求流程已经梳理了个大概,这次我们着重看一下HttpStack和它的其实现类.我们之前在Network篇讲过它仅有一个实现类,而今天我们讲的HttpSta ...
- 自动生成Code First代码
自动生成Code First代码 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Fram ...
- Jquery多级菜单插件Slimmenu使用说明
Jquery多级菜单插件Slimmenu使用说明 现在扁平化设计逐渐的成为了趋势,不管是pc web,还是移动互联网的应用开发,都在研究和设计Flat ui, 这里有一篇文章说明扁平化的设计的一些想法 ...
- JavaScript判断对象的类型
JavaScript判断对象的类型 最近阅读了一些关于JavaScript判断对象类型的文章.总结下来,主要有constructor属性.typeof操作符.instanceof操作符和Object. ...
- “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现)
“MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第四篇(用户管理功能的实现) 一.前三篇的内容是否对您有帮助呢?如果有的话,请您继续关注这篇吧,这篇主要是实现”用户管理“的 ...
- lucene 查询+分页+排序
lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...
- Arduino 各种模块篇 光敏感应模块 light sensor
It looks like this one: This one isn't a digital light sensor, so it's very simple. http://www.seeed ...
- linux netstat 命令详解
linux netstat 命令详解 1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表 接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所 ...
- 2013 Esri全球用户大会之元数据支持
1.1 是否支持FGDC CSDGMArcGIS是否支持FGDC CSDGM和North American Profile (NAP)元数据标准?如何支持? 支持,从ArcGIS forDesktop ...