MappingSystemAction extends MappingDispatchAction

MappingDispatchAction 类


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.MappingDispatchAction;

import com.tarena.biz.IllegalUserException;
import com.tarena.biz.UserBiz;
import com.tarena.entity.User;

/**
 * 系统的核心功能,包括:
 * 1)登录
 * 2)退出
 *
 * MappingDispatchAction工作原理:
 * 1)在配置的时候,为类中的每一个方法都指定一个<action>
 *   通过parameter属性来指定方法的名称。
 *  
 * 2)配置举例:
 *   <action parameter="login" path="/mapping/login" type="...MappingSystemAction">
 *   </action>
 *   <action parameter="logout" path="/mapping/logout" type="...MappingSystemAction">
 *   </action>
 * 3)请求
 *   GET:
 *      <html:link action="/mapping/logout">logout</html:link>
 *   POST: 
 *      <html:form action="/mapping/login">
 *      </html:form>
 */
public class MappingSystemAction extends MappingDispatchAction {

    /**
     * 系统的登录方法.
     */
    public ActionForward login(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        ActionForward forward = null;

        // 获取登录表单中的数据
        UserForm userForm = (UserForm) form;
        String userName = userForm.getUserName();
        String password = userForm.getPassword();
       
        // 创建模型(业务)对象
        UserBiz userBiz = new UserBiz();

        // 执行业务方法处理请求的数据
        User user = null;
        try {
            user = userBiz.find(userName, password);
        } catch (IllegalUserException e) {
            e.printStackTrace();
            throw e;
        }

        // 根据业务的执行结果跳转到下一个页面
        if (user != null) {
            HttpSession session = request.getSession();
            session.setAttribute("user", user);
            forward = mapping.findForward("success");
        } else {
            forward = mapping.findForward("fail");
        }

        return forward;
    }

    /**
     * 系统的退出方法.
     */
    public ActionForward logout(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        HttpSession session = request.getSession();
        session.invalidate();
        return mapping.findForward("login");
    }
}

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

UserForm类

package com.tarena.struts;

import org.apache.struts.validator.ValidatorForm;

@SuppressWarnings("serial")
public class UserForm extends ValidatorForm {
    private String userName;

    private String password;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

validation.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

<form-validation>

  <formset>
    <form name="userForm">
      <field property="userName" depends="required">
         <arg0 key="username" resource="false"/>
      </field>
      <field property="password" depends="required,minlength,maxlength">
         <arg0 key="password" resource="false"/>
         <arg1 key="${var:minlength}" resource="false" name="minlength"/>
         <arg1 key="${var:maxlength}" resource="false" name="maxlength"/>
         <var>
            <var-name>minlength</var-name>
            <var-value>5</var-value>
         </var>
         <var>
            <var-name>maxlength</var-name>
            <var-value>10</var-value>
         </var>
      </field>        
    </form>
   
  </formset> 

</form-validation>

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

struts-config.xml

 

      <action path="/mapping/login" type="MappingSystemAction"
                                          name="userForm" parameter="login" input="/mapping/login.jsp">

          <exception key="errors.illegaluser" type="IllegalUserException"  path="/error.jsp" />     
          <forward name="success" path="/mapping/success.jsp" redirect="true"/>
          <forward name="fail" path="/mapping/fail.jsp" />
      </action> 
     
      <action path="/mapping/logout" type="MappingSystemAction" parameter="logout">
           <forward name="login" path="/mapping/login.jsp" redirect="true" />
      </action>

 

      <message-resources parameter="ApplicationResources" />

 

   <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
      <set-property
          property="pathnames"
               value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
   </plug-in>

 

   <!-- validator-rules.xml  由struts系统给-->

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

login.jsp

 

<%@page contentType="text/html;charset=gbk" %>
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<html>
<head>
  <title>登录</title>
  <html:javascript formName="userForm" />
</head>
<body>
  <center>
    <h3>欢迎使用本系统,请输入用户名和密码</h3>
    <hr>   
    <html:form action="/mapping/login">
    <%--
      方法名已经在xml文件中说明
    --%>
    <table width="300" border="1" align="center">
      <tr>
        <td nowrap>用户名</td>
        <td nowrap>         
          <html:text property="userName" />
        </td>
      </tr>
      <tr>
        <td nowrap>密码</td>
        <td nowrap>
          <html:password property="password" />
        </td>
      </tr>
    </table>
    <br>
    <input type="submit" value="登录" onclick="return validateUserForm(this.form)">
    </html:form>
    <br>
    <html:errors />
  </center>
</body>
</html>

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

success.jsp

 

<%@page contentType="text/html;charset=gbk" %>
<%@taglib prefix="html" uri="http://struts.apache.org/tags-html"%>

<html>
<head>
  <title>成功</title>
</head>
<body>
  <center>
    <h3>登录成功</h3>
    <hr>
    welcome, ${user.userName}
    <%--
      方法名已经在xml文件中指定<action path="/mapping/logout" parameter="logout">
    --%>
      <html:link action="/mapping/logout">退出</html:link>
  </center>
</body>
</html>

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


fail.jsp

 

<%@page contentType="text/html;charset=gbk" %>

<html>
<head>
  <title>失败</title>
</head>
<body>
  <center>
    <h3>对不起,用户名不存在或密码不正确</h3>
    <hr>
    <a href="javascript:history.back()">返回</a>
  </center>
</body>
</html>

 

这个是完整源码 python实现 Flask,Vue 【python毕业设计】基于Python的Flask+Vue物业管理系统 源码+论文+sql脚本 完整版 数据库是mysql 本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发展随后依照传统的软件开发流程,最先为系统挑选适用的言语和软件开发平台,依据需求分析开展控制模块制做和数据库查询构造设计,随后依据系统整体功能模块的设计,制作系统的功能模块图、E-R图。随后,设计框架,依据设计的框架撰写编码,完成系统的每个功能模块。最终,对基本系统开展了检测,包含软件性能测试、单元测试和性能指标。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。本文首先实现了基于Python的Flask+Vue物业管理系统技术的发
源码地址: https://pan.quark.cn/s/a4b39357ea24 # SerialAssistant串口助手 下载地址: 本仓库release文件夹 在线下载:http://mculover666.cn/SerialAssistant.zip 功能说明 本项目是使用C# + WinForm框架编写的串口助手。 目前版本为2.0.0版本,拥有以下功能: 未打开串口时,自动扫描可用端口 接收数据支持文本或者HEX方式显示 支持接收数据加入时间戳 支持将当前接收数据保存为文件 支持发送文本数据或HEX数据 支持自动定时发送数据 支持从文件中(.txt, .json)加载数据到发送文本框 支持发送数据记录(不重复记录) ……欢迎加入更多功能 环境说明 VS2019 .NET Framework 4.5 教程 C#上位机开发(一)—— 了解上位机 C#上位机开发(二)—— Hello,World C#上位机开发(三)—— 构建SerialAssistant雏形 C#上位机开发(四)—— SerialAssistant功能完善 C#上位机开发(五)——SerialAssistant界面升级(WinForm界面布局进阶) C#上位机开发(六)——SerialAssistant功能优化(串口自动扫描功能、接收数据保存功能、加载发送文件、发送历史记录、打开浏览器功能、定时发送功能) C#上位机开发(七)—— 修改窗口图标和exe文件图标 C#上位机开发(八)—— 美化界面(给按钮添加背景) 更新日志 2018/6/3 完成串口属性设置,打开与关闭异常处理; 字符串发送功能; 字符串接收功能; 2018/6/4 完善串口扩展功能界面部分 2018/6/6 完善...
基于共轭转移与噬菌体介导的 CRISPR 系统对抗耐药菌的建模研究(Matlab代码实现)内容概要:本文档标题为《基于共轭转移与噬菌体介导的 CRISPR 系统对抗耐药菌的建模研究(Matlab代码实现)》,但实际内容并未围绕该主题展开具体论述,而是列举了大量与Matlab仿真相关的科研技术服务项目,涵盖智能优化算法、机器学习、路径规划、无人机应用、电力系统优化、信号处理等多个领域,并提供了相关资源的网盘下载链接。文档强调科研需逻辑缜密、善于借力与创新,建议按目录顺序阅读以避免迷失方向。真正关于CRISPR系统对抗耐药菌的研究内容缺失,标题与正文严重不符。; 适合人群:具备一定科研基础,熟悉Matlab编程,从事工程优化、生物信息、控制系统、电力系统、人工智能等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①获取各类科研问题的Matlab代码实现资源,如优化调度、预测建模、路径规划等;②复现高水平论文中的算法模型;③开展跨学科仿真研究时借鉴技术方案与代码框架;④利用提供的YALMIP等工具包进行优化问题求解。; 阅读建议:注意本文档标题与实际内容不符,重点应放在其所列出的技术服务范围和提供的网盘资源上,使用者可根据自身研究方向筛选相关内容,结合提供的代码实例进行学习与二次开发,同时注意甄别信息的有效性与准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值