user表的结构如下
加入struts
采用DispatchAction
Struts-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <data-sources /> <form-beans > <form-bean name="userForm" type="dj.fantlam.myssh.struts.form.UserForm" /> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings > <action attribute="userForm" input="/jsp/errors.jsp" name="userForm" parameter="status" path="/jsp/user" scope="request" type="dj.fantlam.myssh.struts.action.UserAction" /> <forward name="regsuc" path="/jsp/index.jsp" /> <forward name="regfail" path="/jsp/register.jsp"></forward> </action-mappings> <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller> <message-resources parameter="dj.fantlam.myssh.struts.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" /> </plug-in> </struts-config>
errors.jsp
<body>
<center>
<jsp:include flush="true" page="inc/template.html"/>
<h1>程序出现了以下错误</h1>
<html:errors/>
<p2><<a href="#" onclick="history.back()">返回上一页</a></p2>
</center>
</body>
register.jsp
<%@ page contentType="text/html;charset=gbk"%>
<%@ page import="java.util.*"%>
<html:html lang="true">
<head>
<title>MLDN</title>
<META NAME="Generator" CONTENT="Struts + Spring + Hibernate + MySQL + Tomcat + CP">
<META NAME="Author" CONTENT="fantlam">
<META NAME="Keywords" CONTENT="SSH,tomcat,mysql">
</head>
<body>
<center>
<jsp:include flush="true" page="inc/template.html"/>
<h1>用户注册</h1>
<html:form action="" method="post">
用户ID:<html:text property="userid"></html:text>
用户密码:<html:password property="userpwd"></html:password>
确认密码:<html:password property="confirmpwd"></html:password>
丢失密码提示问题:<html:text property="userques"></html:text>
丢失密码问题答案:<html:text property="userans"></html:text>
验证码:<html:text property="checkcode"></html:text>
<img src="image.jsp"><br>
对于property的属性如”checkcode”对应于Userform.java的checkcode属性,并要生成setter和getter方法,如果userform没有呢页面就呈现不出
<input type="hidden" name="status" value="register">对应UserAction.java
public ActionForward register()
<input type="hidden" name="type" value="1">
<html:submit value="注册"></html:submit>
<html:reset value="重置"></html:reset>
</html:form>
</center>
</body>
</html:html>
参考struts的API
public class ActionErrors
extends ActionMessages
implements java.io.Serializable
Action
saveErrors(javax.servlet.http.HttpSession session, ActionMessages errors)
Save the specified error messages keys into the appropriate session attribute for use by the <html:messages> tag (if messages="false") or <html:errors>, if any error messages are required.
Userform.java
加多三个属性(注意都要生成setter和getter方法)
private String confirmpwd; private String checkcode; private int type; // 1:表示注册功能 // 2:表示登陆 // 3:表示忘记密码,确认用户是否存在 // 4:表示修改密码 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { //Struts前台表单的验证,根据type做不同的验证 ActionErrors errors = new ActionErrors(); if (type == 1) { if (this.userid == null || "".equals(this.userid)) { errors.add("userid", new ActionMessage("user.userid.null")); } if (this.userpwd == null || "".equals(this.userpwd)) { errors.add("userpwd", new ActionMessage("user.userpwd.null")); } else { if (!(this.userpwd.equals(this.confirmpwd))) { errors.add("confpwd", new ActionMessage( "user.confpwd.error")); } } if (this.userques == null || "".equals(this.userques)) { errors.add("userques", new ActionMessage("user.userques.null")); } if (this.userans == null || "".equals(this.userans)) { errors.add("userans", new ActionMessage("user.userans.null")); } if(this.checkcode==null||"".equals(this.checkcode)){ errors.add("checkcode", new ActionMessage("user.checkcode.null")); } } return errors; }
UserAction.java
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package dj.fantlam.myssh.struts.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction; import dj.fantlam.myssh.struts.form.UserForm; /** * MyEclipse Struts * Creation date: 07-15-2008 * * XDoclet definition: * @struts.action path="/user" name="userForm" input="error.jsp" parameter="status" scope="request" validate="true" */ UserAction是继承自DispatchAction的,根据传来的status的值判断交给那个ActionForward处理 public class UserAction extends DispatchAction { /* * Generated Methods */ /** * Method execute * @param mapping * @param form * @param request * @param response * @return ActionForward */ public ActionForward register(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) form;// TODO Auto-generated method stub /* ActionErrors和ActionMessages的关系如下 * public class ActionErrors extends ActionMessages implements * java.io.Serializable * * * 类Action * saveErrors(javax.servlet.http.HttpSession session, * ActionMessages errors) Save the specified error messages keys into * the appropriate session attribute for use by the <html:messages>tag * (if messages="false") or <html:errors>, if any error messages are required. */ //验证输入的验证码是否正确 String ccode=(String)request.getSession().getAttribute("ccode"); String checkcode=userForm.getCheckcode(); if(!(ccode.equals(checkcode))){ ActionMessages errors=new ActionMessages(); errors.add("ccode", new ActionMessage("checkcode.error")); super.saveErrors(request, errors); return mapping.getInputForward(); } return null; }
分享到:
相关推荐
2. **进入目录**:使用`cd x11-ssh-askpass-1.2.4.1`进入解压后的目录。 3. **配置**:运行`./configure`来检查系统环境并生成适合的Makefile。 4. **编译**:使用`make`命令编译源代码。 5. **安装**:通常使用`...
2. **Windows**:表示这款SSH客户端是设计用于Windows平台的,使得Windows用户也能方便地连接到使用SSH服务的远程系统。 3. **DameWare**:这个标签代表了软件的开发商,DameWare是一家专业提供IT管理和远程支持...
ganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7z
Java通过ganymed-ssh2-build210.jar库实现SSH远程连接Linux终端是一个常见的应用场景,主要用于自动化运维、系统管理或者开发过程中需要与Linux服务器交互的场景。ganymed-ssh2-build210.jar是Java的一个开源SSH库,...
2024年3月12日制作 适用于centos 7 redhat 7 x86架构操作系统升级更新openssh 9.7 版本,修复...此包为二进制rpm包,包含ssh-copy-id命令 2024年3月11日 官方发布9.7版本,此包基于官方源码制作,无ssl信息显示。
Paramiko是Python编程语言中一个重要的开源库,主要用于实现SSHv2协议,提供安全的网络通信功能...通过`paramiko-1.15.0-py2.py3-none-any.whl`文件,你可以快速地在项目中引入这个强大的库,开始安全的远程操作之旅。
Paramiko是一个广泛使用的Python库,专门用于实现SSHv2(Secure Shell Version 2)协议,提供安全的网络通信。在IT行业中,SSH被用来进行远程控制、文件传输等任务,而Paramiko则为Python开发者提供了方便的接口来...
在WebSSH2项目中,xterm.js是用户与远程服务器交互的界面,用户可以在这个终端中输入命令并查看返回的结果。 其次,socket.io是一个实时应用程序库,它在客户端和服务器之间提供了双向通信。在WebSSH2中,socket.io...
解决openssh升级到8.2以后无法登录的问题,支持jdk1.5及以上版本
由于其全面的SSH2支持和良好的文档,Ganymed SSH2成为了Java开发者在处理SSH相关任务时的首选库之一。 总结起来,Ganymed SSH2 Build 250是一套全面的SSH2工具包,它提供了所有必要的组件,从运行时库到开发辅助...
Linux运维-4.服务管理-001网络服务基础-2、视频014基础-ssh密钥对登录试验.avi
Linux运维-4.服务管理-001网络服务基础-2、视频012基础-ssh密钥对验证模式.avi
python库。资源全名:ssh_jump_hive-0.1.6-py2.py3-none-any.whl
python库。 资源全名:ssh_jump_hive-0.3.0-py2.py3-none-any.whl
标题中的“ganymed-ssh2-262.jar”是一个特定版本的SSH2库,由Ganymed项目提供,用于Java环境下的SSH(Secure Shell)连接。SSH是一种网络协议,常用于安全地远程登录到服务器、传输文件以及执行命令。Ganymed SSH2...
2.操作系统配置 - 4 - 五、 项目任务描述 - 4 - 1.拓扑图 - 4 - 2.网络地址规划 - 4 - ISPSRV - 4 - AppSrv - 5 - STORAGESR - 5 - ROUTERSRV - 5 - INSIDECLI - 5 - OUTSIDECLI - 5 - 六、 项目任务清单 - 6 - ...
ms-vscode-remote.remote-ssh-edit-0.86.0
ssh2_lib.rar与csdn中的ssh2_src.rar是整个项目,把ssh2_lib.rar下载后,直接放在ssh2_src.rar中的\ssh2_src\SSH2\web\WEB-INF目录下,再配置一下mysql就可以使用了. ssh2_src.rar下载地址: ... ssh2_src.rar的具体使用,...
2024年3月12日制作 适用于centos 7 redhat 7 x86架构的二进制...2024年3月11日官方发布9.7版本,内含ssh-copy-id命令,安装后显示openssl版本,此包基于openssl 1.1.1w制作,因此安装后会显示1.1.1w版本的openssl信息