在逻辑层之前,我们已经使用了hibernate框架和spring框架,现在要写的表现层需要用到struts框架,我们知道,在struts框架中,类实例的建立是由struts框架来完成的,现在action实例仍然由struts框架创建,但是action类需要service层的类作为属性,这时将这个任务交给spring框架,需要在lib文件夹中添加struts-spring插件(附件),这个插件使用自动装配的方式,比如在spring配置文件中有bean名字叫做ms;引入该插件后,在action中属性名需要叫ms,这样通过反射机制spring就可以代替struts实现自动装配。
通常情况下,我们会在action的文件夹下建立子文件夹base,里面是基础action,action中是这些基础action的子类,如下:
package org.atm.action.base;
import com.opensymphony.xwork2.ActionSupport;
import org.atm.service.*;
public class AtmBaseAction extends ActionSupport
{
protected AtmService atmService;
public void setAtmService(AtmService atmService)
{
this.atmService= atmService;
}
}
package org.atm.action;
import org.atm.vo.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.opensymphony.xwork2.*;
import org.apache.struts2.interceptor.*;
import org.atm.po.*;
import org.atm.action.base.*;
import org.atm.service.*;
public class GetMoneyAction extends AtmBaseAction{
private String money;
private String tip;
public String getMoney() {
return money;
}
public void setMoney(String money) {
this.money = money;
}
public void setTip(String tip)
{
this.tip=tip;
}
public String getTip()
{
return tip;
}
public String execute() throws Exception
{
ActionContext ctx=ActionContext.getContext();
String cardNumber=(String)ctx.getSession().get("cardnumber");
String atm_id=(String)ctx.getSession().get("atmid");
System.out.println(cardNumber);
System.out.println(atm_id);
System.out.println(getMoney());
setTip(atmService.getMoney(cardNumber,Double.parseDouble(getMoney()),Integer.parseInt(atm_id)));
if(getTip().equals("正在出钞"))
return SUCCESS;
else
return ERROR;
}
}
实际上,base中的action对应的是service层,一般情况下,service层有几个类,action的base文件夹中就对应几个类。其他类有这些类派生。
至于struts配置文件,与正常无异,不在赘述。
最后仅仅需要配置web.xml文件即可。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<!-- 使用ContextLoaderListener初始化Spring容器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
</web-app>
在web.xml中,声明使用struts拦截器,同时使用spring的IOC功能,至此后端代码全部完毕。
分享到:
相关推荐
ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...
SSHA(Salted SHA,加盐SHA)是一种增强版的SHA哈希算法,它在原始的SHA哈希基础上增加了一个随机的盐值,以提高密码的安全性。在Java中,SSHA常用于用户密码的存储,以防止彩虹表攻击。在本教程中,我们将深入探讨...
5. **端口转发**:通过SSH隧道转发本地或远程端口,实现数据的安全传输。 6. **密钥管理**:支持RSA、DSA等公钥算法,进行密钥对的生成和管理。 SSH.NET库的优势在于它的跨平台性,可以在任何支持.NET的平台上运行...
ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ...
5. **容器化环境**:在Docker或Kubernetes中,SSH可用于容器内的命令执行和日志查看,尤其在无图形界面的环境下。 6. **云服务提供商**:许多云平台(如AWS、Google Cloud、Azure)也支持SSH接入,允许用户通过SSH...
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在IT领域,SSHshell是Linux或Unix类系统中常用的一种命令行接口,用于远程控制和管理服务器。通过SSH,用户可以执行命令、...
MD5是一种常用的哈希函数,早期曾用于SSH的密码散列,但因其安全性问题,现在已经被更安全的算法如SHA-256取代。 SSH权限管理主要包括以下几个方面: 1. **配置文件**:SSH的主要配置文件是`/etc/ssh/sshd_config`...
5. 错误处理:捕获并处理SSH操作中可能出现的异常情况,如网络错误、认证失败等。 “素数的求法”这部分,VB可以用来实现各种算法,比如埃拉托斯特尼筛法,用于寻找一定范围内的所有素数。这可能是为了展示VB的基本...
5. **客户端功能**: 对于SSH客户端功能,Android应用可以连接到其他支持SSH的设备或服务器,执行命令、获取输出、上传/下载文件。JSch库提供了连接、认证、执行命令和文件传输的方法。 6. **编程实现**: - **...
- **步骤5**: 将转换生成的SSH2公钥文件上传到SSH2机器上。例如: ``` scp id_rsa_SSH2.pub root@192.168.0.1:/root/.ssh2 ``` 这里假设上传到IP地址为`192.168.0.1`的机器上,并且OpenSSH机器将使用`root`用户...
Bitvise SSH是一款由Bitvise公司开发的强大的SSH(Secure Shell)客户端和服务端软件,其全称为BvSsh Bitvise Secure Shell。这款工具提供了安全的远程访问和文件传输功能,广泛应用于IT专业人士和系统管理员之间。...
本资源包含了SSH协议相关的主要rfc文档 其中有: rfc4250 The Secure Shell SSH Protocol Assigned Numbers pdf rfc4251 The Secure Shell SSH Protocol Architecture pdf rfc4252 The Secure Shell SSH ...
记录一下ssh离线升级版本(有openssh8.8安装包和依赖),redhad的ssh7.4升级到8.8,不用卸载旧版本ssh直接替换历史版本,迁移密钥重启ssh。有一定危险,我这有安全限制不能用telnet连接,需要多开几个ssh连接已被...
5. **安全注意事项** - 定期更新SSH软件,防止已知漏洞被利用。 - 使用强密码或公钥认证,避免弱口令。 - 避免在不安全的网络上开启SSH服务,或限制SSH只监听特定IP地址。 - 可以禁用root用户直接通过SSH登录,...
SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH SSH
SQLServer 数据库 SSH 配置详解 SQLServer 数据库 SSH 配置是将 SQLServer 数据库与 Secure Shell(SSH)协议集成,以实现加密的数据传输和身份验证。本文将详细介绍 SQLServer 数据库 SSH 配置的实现步骤和相关...
5. 数据传输:客户端和服务器端通过加密的会话连接进行数据传输。 6. 会话关闭:客户端和服务器端关闭会话连接。 三、SSH 配置文件 SSH 配置文件用于存储 SSH 客户端和服务器端的配置信息。常见的配置文件包括: ...
SSH_Test.rar_C ssh_C#ssh_C++ ssh_C++ SSH_libssh2库是一个针对C、C#和C++编程语言的SSH实现示例,特别提到了libssh2库的使用。在Visual Studio 2010环境下,这个压缩包提供了通过SSH进行文件上传的功能。接下来,...
SSH(Secure Shell)协议是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。在Java环境中,开发人员通常使用库来实现SSH功能,其中一个常用的库就是Ganymed SSH-2。这个库名为ganymed-ssh2-build...