public class testfa extends DispatchAction{
private int a;
private int b;
public ActionForward showa(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
a=1;
b=2;
System.out.println(a);
System.out.println(b);
}
public ActionForward showb(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
b=3;
System.out.println(a);
System.out.println(b);
}
}
如果直接执行showb方法,则a为0,如果先执行showa,再执行showb,则a=2,所以我们在使用action,特别是dispatch时,注意成员变量的清空,否则会遇到一些意外。
原因:我想可能是因为一个action就是一个Servlet,当第一次访问时实例化,之后则是一直保持状态使用,所以成员变量值得以保留,而actionform则由于系统自动调用了reset方法(socpe=request时),没有该问题。
不知道在C/S模式下如何实现Servlet
分享到:
相关推荐
然而,由于struct成员默认为public,继承struct时需要注意防止不必要的公开访问。多态性在struct中也可以实现,但需要借助虚函数和指针或引用来实现。 四、struct与联合(union) 在C++中,struct也可以与union一起...
- **添加成员属性**:在Action类中声明对应的成员变量,Struts2会自动将请求参数绑定到这些变量上。 - **域模型**:Struts2支持将Action的成员变量映射为域模型对象,通过这种方式,可以更好地进行数据封装和验证...
此外,由于Action是多实例的,可以在Action类中定义成员变量,这些变量不会被其他请求所共享。 #### 代码示例解析 下面通过提供的代码示例进一步分析Servlet的具体实现细节: ```java public class LogLet ...
- **避免使用实例变量**:根据官方指南,编写Struts Action类时,应尽可能避免使用实例变量(非静态非final的成员变量)。这是因为Struts控制器Servlet(通常是ActionServlet)通常只为每个Action类创建一个实例,并...
1. **避免在Action中使用可变成员变量**:尽可能将业务逻辑和数据移至Service层,使Action仅作为传递控制的角色。 2. **使用线程局部变量(ThreadLocal)**:如果必须在Action中存储请求相关的状态,可以使用...
在《Java Reflection in Action》这本书中,作者深入探讨了这一主题,帮助开发者理解并有效地利用Java反射机制。这本书是2005年出版的英文版,对于想要提升Java编程技能,特别是对动态类型和元编程感兴趣的开发者来...
这通常通过在类内部声明私有成员变量,并提供相应的get/set方法来实现。例如: ```java private TUserDAOImpl userdaoimpl; public void setUserdaoimpl(TUserDAOImpl userdaoimpl) { this.userdaoimpl = ...
此外,为了获取请求参数,可以在Action类中定义成员变量和对应的getter和setter方法,Struts2会自动将请求参数封装到这些成员变量中。 在实现过程中,开发者应注意不要直接将Struts2的所有jar包复制到项目中,而是...
在Struts1中,Action是单例模式,因此需要开发者确保Action类及其成员变量是线程安全的。 Action名称的解析在Struts2中遵循一定的规则。URL中的路径会被解析为namespace,Struts2会按照这些命名空间逐级查找对应的...
为了解决超链接中文乱码问题,我们可以在 Action 中添加一个成员变量,保存编码后的中文参数。在 VM 页面渲染时,取出这个变量值,并拼接到超链接 URL 上。这样可以确保中文参数正确编码,避免乱码。 编码方法 在 ...
在接口中,你需要声明一个类型为模型对象的成员变量,并提供getter方法。 3. **配置Action**:在Struts2配置文件(struts.xml)中,为Action类配置相应的action元素,指定结果页面和其他必要属性。 4. **请求处理*...
1. **避免使用类成员变量**:在RDD的转换操作中,应尽量避免使用类成员变量,因为这些变量可能在不同的执行上下文中具有不同的值,导致不可预测的结果。建议的做法是将成员变量提取为局部变量后再使用。 2. **利用...
- **类名匹配**:当展示或保存 action 中的类信息时,jsp 页面中的 input 名称应与 action 类中的成员变量名一致。 - **提交 URL**:提交表单时,URL 应为 `xxx_methodName.action` 形式,指向特定的 action 方法...
在这个类中,需要定义用于接收上传文件的私有成员变量,并为它们提供对应的getter和setter方法。例如,在`UploadAction`中,定义了`List<File> image`,`List<String> imageContentType`,和`List<String> ...
因此,在编写自定义`Action`类时,需要注意线程安全问题,避免出现数据竞争或并发访问异常。 #### 五、总结 通过对`struts源码学习.pdf`文件中的内容分析,我们可以深入了解Struts框架内部的工作原理,尤其是`...
2. **配置环境变量**:为了能够在命令行中运行 Maven 命令,需要设置 MAVEN_HOME 环境变量,并将其添加到 PATH 环境变量中。 3. **编写 POM 文件**:每个 Maven 项目的核心都是 pom.xml 文件,它定义了项目的结构、...
需要注意的是,由于并发访问,对于成员变量的修改可能需要同步控制,防止数据不一致。 - 方法的声明同样在`! ... %>`中完成,可以在JSP页面内其他地方被调用,增强了代码的复用性。 3. **Java程序片**(Scriptlet...
### Java登录判断代码详解 #### 一、概述 在Java Web开发中,用户登录验证是常见且重要的功能...此外,需要注意的是,为了提高安全性,实际生产环境中通常还需要增加密码加密处理、异常处理以及更多的安全检查措施。
3. **单元测试**:反射技术可以用来访问和修改私有成员变量,这对于编写单元测试非常有用,因为可以模拟各种场景进行测试。 4. **代码生成**:利用反射技术可以在运行时动态生成代码,比如在Hibernate框架中用于动态...