`

Struts2中Session的使用

阅读更多
在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到
1.通过ActionContext class中的方法getSession得到
2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作
下面先看一个采用第一种方式,在action中得到session的例子

package s2.ex.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class SessionTestAction extends ActionSupport {

    public String execute() {

     ActionContext actionContext = ActionContext.getContext();

       Map session = actionContext.getSession();

       session.put("USER_NAME", "Test User");

       return SUCCESS;

    }

}
在这个例子中,通过ActionContext得到session,并往session里放置一个key为USER_NAME,值为Test User的内容。
下面是一个实现org.apache.struts2.interceptor.SessionAware接口来对session操作的例子

package s2.ex.action;

import java.util.Map;

import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class SessionTest1Action extends ActionSupport implements SessionAware {

    private Map session;

    public void setSession(Map session) {

       this.session = session;

    }

    public String execute() {

       this.session.put("USER_NAME", "Test User 1");

       return SUCCESS;

    }

}

在这个例子中实现了接口SessionAware中的setSession方法。
上面两种方式都可以得到session,能实现的功能都是一样的。
这里推荐通过第二种方式来使用session,原因是便于做单体测试,用第二种方式,只需要构造一个Map就可以对action class进行单体测试了。

    在一个项目中可能会有很多action都需要用到session,如果每个action都来实现 org.apache.struts2.interceptor.SessionAware这个接口,可能会显得比较麻烦,所以建议作一个抽象的 BaseAction类来实现org.apache.struts2.interceptor.SessionAware接口,以后所有的action只 要继承这个BaseAction就可以了。
下面是一个如何在JSP中使用session的例子。

<%@ page contentType="text/html; charset=UTF-8" %>

<%@page pageEncoding="utf-8" %>

<%@taglib prefix="s" uri="/struts-tags" %>

<html>

<head>

    <title>Session Test</title>

</head>

<body>

<h1><s:property value="#session.USER_NAME"/></h1>

<h1></h1>

</body>

</html>

   一般在项目中往往会往session里放置一个Object,必如说user,user里有个boolean admin和String userName,如果user里存在isAdmin的方法,在jsp中可以通过<s:if test="#session.user.admin">来判断用户有没有管理权限,通过<s:property value="#session.user.userName">或者来取得用户名。
分享到:
评论

相关推荐

    (整理)平压印刷机运动方案和主要机构设计课程设计说明书.doc

    (整理)平压印刷机运动方案和主要机构设计课程设计说明书.doc

    裂缝检测数据集,支持yolo v12格式的标注,1673张原始训练集图片,正确识别率99.4%

    裂缝检测数据集,支持yolo v12格式的标注,1673张原始训练集图片,正确识别率99.4% 图片详情可查看博文:https://backend.blog.csdn.net/article/details/147232357

    苯 正丁醇化工原理课程设计说明书.pdf

    苯 正丁醇化工原理课程设计说明书.pdf

    黑马程序员MySQL-进阶篇资料### MySQL 进阶技术总结. 存储

    内容概要:本文档《MySQL-进阶篇.pdf》深入探讨了MySQL数据库的高级特性,涵盖了存储引擎、索引、SQL性能优化、视图、存储过程、触发器、锁机制、InnoDB引擎内部原理以及MySQL管理工具等多个方面。首先,文档详细介绍了MySQL的存储引擎体系结构,特别是InnoDB、MyISAM和Memory存储引擎的特点与应用场景。其次,围绕索引展开了详细的讨论,包括B+Tree、Hash索引结构,索引创建、使用原则及优化技巧。接着,文档阐述了SQL语句的性能分析方法,如使用`EXPLAIN`、慢查询日志和`profile`工具。此外,还讲解了视图、存储过程、触发器等高级功能,以及不同类型的锁机制对并发控制的重要性。最后,文档深入分析了InnoDB引擎的事务处理机制,包括redo log、undo log和MVCC的实现原理,并介绍了常用的MySQL管理工具及其使用方法。 适用人群:具备一定数据库基础知识,尤其是MySQL使用经验的研发人员和技术爱好者。 使用场景及目标: 1. 深入理解MySQL存储引擎的工作原理及其选择依据。 2. 掌握索引的设计与优化技巧,提升查询性能。 3. 学习如何通过各种工具和方法进行SQL性能分析与优化。 4.

    高二英语优秀作文Myidealjob.docx

    高二英语优秀作文Myidealjob.docx

    变电站设计说明书和计算说明.docx

    变电站设计说明书和计算说明.docx

    菠萝水果饮料生产线设计说明书.doc

    菠萝水果饮料生产线设计说明书.doc

    毕业设计说明书A江坝后式厂房双曲拱坝设计.pdf

    毕业设计说明书A江坝后式厂房双曲拱坝设计.pdf

    1万吨自来水厂详细设计说明书.doc

    1万吨自来水厂详细设计说明书.doc

    基于三菱FX系列PLC的智能交通灯控制系统:带流量自适应的红绿灯程序设计与实现

    内容概要:本文详细介绍了基于三菱FX3U PLC的智能交通灯控制系统的设计与实现。该系统通过车流传感器检测车流量,并根据车流量动态调整红绿灯的时间,确保交通流畅。硬件方面,使用了四个车流传感器和六个灯组进行连接;软件方面,利用定时器、计数器和比较指令实现了60秒的大循环控制逻辑,同时加入了滤波机制防止误触发。文中还提供了具体的梯形图代码片段,展示了如何处理绿灯闪烁、黄灯过渡以及红灯同步等问题。此外,作者分享了一些调试经验和优化技巧,如加入硬件互锁避免灯色抖动,增加临时测试界面方便调试等。 适合人群:从事PLC编程、自动化控制领域的工程师和技术人员,尤其是对交通控制系统感兴趣的读者。 使用场景及目标:适用于城市中小规模路口的交通管理,特别是在车流波动较大但不适合部署高级智能交通系统的场合。主要目标是提高路口的通行效率,减少等待时间,提升驾驶体验。 其他说明:文中提到的实际应用案例表明,该系统可以将通行效率提升约15%-18%,并且能够有效应对突发情况,如车流突变等。

    基于TI DSP2803x的3kW车载充电器(OBC)设计方案与实现细节

    内容概要:本文详细介绍了基于TI公司DSP2803x系列芯片的3kW车载充电器(OBC)的设计与实现。硬件方面,重点讨论了四层PCB板设计、功率电路与控制电路的物理隔离、MOS管散热处理以及LLC谐振拓扑的应用。软件部分涵盖了ADC初始化、PWM波生成、状态机设计、PID调节等关键技术点。文中还分享了许多实际开发过程中遇到的问题及其解决方案,如EMI抑制、地线处理、变压器参数调整等。最终产品达到了94.7%的峰值效率,并成功量产。 适合人群:从事电力电子、嵌入式系统开发的技术人员,尤其是对车载充电器设计感兴趣的工程师。 使用场景及目标:适用于希望深入了解OBC设计原理和技术细节的专业人士,旨在帮助他们掌握从硬件选型到软件调试的完整流程,提高实际项目的成功率。 其他说明:文中提供了大量实用的经验技巧和注意事项,对于初学者来说是非常宝贵的参考资料。同时,作者还展望了未来使用GaN器件进一步提升性能的可能性。

    基于PLC与变频器的水蓄冷中央空调系统设计与优化

    内容概要:本文详细介绍了采用西门子S7-200 SMART PLC、ABB ACS550变频器和组态王6.55上位机构建的水蓄冷中央空调系统。主要内容涵盖系统架构设计、梯形图编程逻辑、变频器参数设置、组态王画面设计以及调试过程中遇到的问题及其解决方法。文中特别强调了系统的节能特性,如通过PID控制实现水泵转速调节,以及针对实际应用中的常见问题提供了具体的解决方案,如抗干扰措施、水位开关误动作修正等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程、变频器控制及组态软件有一定基础的人群。 使用场景及目标:适用于需要构建高效节能的水蓄冷中央空调系统的工程项目。主要目标是提高系统的可靠性和稳定性,降低能耗,确保系统能够长期稳定运行。 其他说明:文章不仅提供了详细的硬件连接和编程指导,还分享了许多宝贵的调试经验和实用技巧,对于实际工程应用具有很高的参考价值。

    【我是麻瓜喔】Python学习系列,笔记 &amp; 源码

    【Python】学习系列,笔记 & 源码,https://blog.csdn.net/fu_lin_13/category_12949338.html

    EPLAN P8部件库:涵盖主流品牌的低压电气控制系统设计工具

    内容概要:本文详细介绍了一个专门为低压电气控制系统设计的EPLAN P8部件库。该部件库包含了多个主流品牌的PLC、传感器、控制设备、动力与保护设备、变频器及电气附件等。文中不仅介绍了各个设备的具体型号及其应用场景,还提供了许多实用的功能和技巧,如宏命令、智能关联、参数预设等,旨在提高设计效率和准确性。此外,作者还分享了一些个人经验和优化建议,使用户能够更好地利用这一工具进行电气设计。 适合人群:从事电气控制系统设计的专业人士,尤其是使用EPLAN P8软件的工程师。 使用场景及目标:适用于需要快速调用标准化元件的设计场景,帮助设计师节省时间并提高工作效率。无论是新手还是资深工程师,都可以从中受益。 其他说明:随部件库附赠2.7版本的P8软件下载链接,方便用户获取最新工具。同时,文中提到的一些高级功能和技术细节有助于提升用户的技能水平。

    《弯曲板冲压工艺与模具设计毕业设计说明书》.doc

    《弯曲板冲压工艺与模具设计毕业设计说明书》.doc

    毕业设计(论文) 滚筒输送机设计说明书.docx

    毕业设计(论文) 滚筒输送机设计说明书.docx

    asr1903s仿中兴微后台

    asr1903s仿中兴微后台

    MATLAB实现电热综合能源系统中主从博弈的动态定价与能量管理策略

    内容概要:本文详细介绍了利用MATLAB代码实现电热综合能源系统的动态定价与能量管理策略。通过主从博弈模型,上层能源公司制定电价和热价,下层用户根据价格调整用能策略,双方在互动中找到平衡点。上层使用粒子群算法优化定价策略,考虑电力交易和热能供给的利润最大化;下层用户模型使用CPLEX解混合整数规划,追求用能成本最小化和舒适度最大化。文中还讨论了实时天气数据对接、热功率平衡、约束条件处理以及并行计算的应用。通过多次迭代,系统能够实现更加灵活的价格机制,提高能源公司收益和用户满意度。 适合人群:从事能源管理系统研究的技术人员、熟悉MATLAB编程的研究人员、对博弈论及其应用感兴趣的学者。 使用场景及目标:适用于电热综合能源系统的优化管理和动态定价策略的设计。主要目标是通过主从博弈模型,使能源公司在最大化收益的同时,确保用户体验和满意度不受损害。 其他说明:调试过程中需要注意粒子群算法的参数设置,如种群规模、惯性权重等,以避免陷入局部最优解。此外,用户需求弹性和热能平衡约束的处理也是关键因素。

    电梯导航栏实现(HTML+CSS+JS)

    电梯导航栏实现(HTML+CSS+JS)

    无感FOC风机控制:基于国产MCU的全开源代码实现与优化

    内容概要:本文详细介绍了一套基于国产MCU的无感FOC风机控制系统。该系统涵盖了从龙伯格观测器的角度估算、顺逆风启动策略、SVPWM调制方式的选择,以及硬件抽象层的设计等多个方面。文中展示了具体的代码实现,包括观测器增益调节、启动时的高频脉冲注入、SVPWM的五段式和七段式调制选择及其动态调整机制。此外,还讨论了移植到不同国产MCU平台时需要注意的问题,如PWM死区时间和ADC采样的对齐。最后提到了一些实用的功能,如风机保护机制和模块化的代码设计。 适合人群:从事电机控制、风机设计及相关领域的工程师和技术人员。 使用场景及目标:适用于希望深入了解无感FOC风机控制系统的开发者,尤其是那些需要将现有方案迁移到国产MCU平台的人群。主要目标是提供一个完整的、经过验证的解决方案,帮助用户快速实现高性能的风机控制系统。 其他说明:本文提供的代码和设计方案来源于实际量产项目,具有较高的实用性和可靠性。对于有兴趣进一步探索和改进无感FOC控制技术的研究人员来说,也是一个很好的参考资料。

Global site tag (gtag.js) - Google Analytics