Struts2+DAO层实现实例01——搭建Struts2基本框架

实例内容

  利用Strust2实现一个登陆+注册功能的登陆系统。

  实现基础流程:

    

实现代码

  JSP页面部分:

<%--
    登陆页面
  Created by IntelliJ IDEA.
  User: Richard
  Date: 2017/6/21
  Time: 12:36
  To change this template use File | Settings | File Templates.

--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>Login</title>
</head>
<style>
    body{
        padding: 0;
        margin:0;
    }
    h1{
        background-color: black;
        color: white;
    }
    .subform{
        width:200px;
        border-style:solid;
        border-color: black;
        border-radius: 2px;
        padding: 10px;
        margin-left: 40px;
        margin-top: 70px;

    }

</style>

<body>
<h1>Login For My Struts</h1>
<hr>

<div class="subform">
    <form method="post" action="loginuser.action" name="pform" >

        <p>用户名:</p><br>
        <input type="text" name="username" id="name"><br>
        <br>
        <p>密码:</p><br>
        <input type="password" name="password" id="key"><br>
        <br>
        <s:actionmessage></s:actionmessage>
        <input type="submit" value="登陆" onclick="return check(this);"/>

        <a href="register.jsp">点我注册</a>

    </form>
</div>

</body>
<script>
    function check(form) {
        if(document.forms.pform.username.value==""){
            alert("用户名不能为空!")
            document.forms.pform.username.focus();
            return false;
        }

        if(document.forms.pform.password.value==""){
            alert("密码不能为空!")
            document.forms.pform.password.focus();
            return false;
        }
    }
</script>

</html>
<%--
  注册页面
  Created by IntelliJ IDEA.
  User: Richard
  Date: 2017/6/21
  Time: 13:04
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>Register</title>
</head>

<style>
    body{
        padding:0;
        margin:0;
    }
    h1{
        background-color: black;
        color:white;
    }
    .form{
        width: 400px;
        border-radius: 2px;
        padding:10px;
        border-style: solid;
        border-color: black;
        margin:0 auto;
    }

</style>
<body>
<H1>Register up for My Struts</H1>
<hr>
<form method="post" action="*reguser.action" name="rform" class="form">

    <p>请输入用户名:</p><br>
    <input type="text" name="username" id="name"><br>
    <br>
    <p>请输入密码:</p><br>
    <input type="password" name="password" id="key"><br>
    <p>请再次输入密码:</p><br>
    <input type="password" name="compassword" id="comkey"><br>
    <br>
    <s:actionmessage></s:actionmessage>
    <input type="submit" value="注册" onclick="return recheck(this);" />
    <a href="login.jsp">登陆</a>

</form>
</body>
<script>
    function recheck(form) {
        if(document.forms.rform.username.value==""){
            alert("用户名不能为空!");
            document.forms.rform.username.focus();
            return false;
        }
        if(document.forms.rform.password.value==""||document.forms.rform.compassword.value==""){
            alert("密码不能为空!");
            document.forms.rform.password.focus();
            return false;
        }
        if(document.forms.rform.password.value!=document.forms.rform.compassword.value){
            alert("两次输入的密码不相同!")
            document.forms.rform.password.focus();
            return false;
        }
    }
</script>

</html>
<%--
  欢迎页面
  Created by IntelliJ IDEA.
  User: Richard
  Date: 2017/6/16
  Time: 21:38
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
<h1>WelCome to My Struts Page</h1>
<hr>
当前登录的用户:${param.username}<br>
</body>
</html>

XML配置方面

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
        <constant name="struts.devMode" value="true"/>
        <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

    <!--利用通配符配置Action需要调用的方法-->
    <package name="user" namespace="/" extends="struts-default">
        <action name="*user" class="UserBlock.UserAction" method="{1}">
            <result name="index">in.jsp</result>
            <result name="login">login.jsp</result>
            <result name="register">register.jsp</result>
        </action>
    </package>
</struts>

Action

package UserBlock;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

import java.util.ArrayList;
import java.util.Map;
import java.util.logging.LogManager;

/**
 * Created by Richard on 2017/6/16.
 * 继承ActionSupport实现一个Action
 * 登陆界面通过loginuser.action调用login()方法来处理数据
 *          login()方法中通过ActionContext调用Session对象,存入输入错误的数据
 *          通过addActionMessage()方法向页面输出相关信息
 * 注册页面通过reguser.action调用reg()方法来处理数据
 */
public class UserAction extends ActionSupport {
    private String INDEX="index";
    private String LOGIN="login";
    private  String REG="register";
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

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

    public String login(){
        try{
            if(username.equals("rekent")){
                if(password.equals("root")){
                    /*登陆成功*/
                    return INDEX;
                }else{
                    ActionContext applicton=ActionContext.getContext();
                    Map session=applicton.getSession();
                    int count;
                    if(session.get("count")==null){
                        count=0;
                    }else{
                        count= (int) session.get("count");
                    }
                    if(count>=3){
                        addActionMessage("错误次数过多");
                        count=0;
                        session.put("count",count);
                        return LOGIN;
                    }else{
                        count++;
                        addActionMessage("您输入的用户名或密码错误"+count);
                        session.put("count",count);
                        return LOGIN;
                    }

                }
            }else{
                addActionMessage("该用户不存在,已经跳转到注册页面");
                return REG;
            }
        }catch (Exception e){
            addActionError(e.getMessage());
        }

        return LOGIN;
    }

    public String reg(){
        try{
            if(username.equals("rekent"))
            {
                addActionMessage("该用户已经存在");
                return REG;
            }
            else{
                return INDEX;
            }
        }catch (Exception e){
                addActionError(e.getMessage());
        }
        return REG;
    }
}

实例代码

示例代码,持续更新

                                    

时间: 2024-10-07 06:30:30

Struts2+DAO层实现实例01——搭建Struts2基本框架的相关文章

Struts2+DAO层实现实例03——添加监听器跟踪用户行为

实例说明 根据上两次的成品进行二次加工. 加入Listener,监听用户的登陆注销情况. 所用知识说明 采用SessionBindingListener对Session进行监听. 同时,Action中获取Application,Session,request的方法(在此只列出一种)更多方法 public class LoginAction { private Map request; private Map session; private Map application; public Str

DAO 层实现

一.实验介绍 1.1 实验内容 本节课程主要利用 MyBatis 框架实现 DAO 层. 1.2 实验知识点 MyBatis 框架 MySQL 1.3 实验环境 JDK1.8 Eclipse JavaEE 二.实验步骤 根据第一节,我们可以知道系统的功能包括了哪些,根据第三节和第四节,我们知道了数据库表的结构和持久化实体,因此,在这里我们完成数据库的访问操作. 首先在项目 hrms 的 Java Resources 目录的 src/main/java 下新建包 com.shiyanlou.dao

ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤

原创整理不易,转载请注明出处:ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤 代码下载地址:http://www.zuidaima.com/share/1760074977233920.htm 最近闲来无事可做,于是开始学习struts2.Struts2和struts1.webwork2有什么区别我也不说了,网上有很多这方面的资料.以前在项目中从未使用过struts,一直使用spring+hibernate,现在既然学习了Struts,也不能

Maven搭建Struts2 Spring Hibernate4框架

Struts2版本 2.3.24,Spring版本4.0.4.RELEASE,Hibernate版本4..2.3.Final.搭建之前刻意查看了下自己电脑下载好的jar包,不用maven的时候就是用这些版本,估计用maven也不会出错,就用这个了. 1:pom.xml: 1)Struts2: struts2-core:Struts2的核心jar包: struts2-convention-plugin:convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action

Struts2原理及简单实例

参考连接: http://blog.csdn.net/laner0515/article/details/27692673/ http://www.cnblogs.com/sobne/articles/5443114.html 一.Struts2原理 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就不在提了. 技术优势 Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The 

Maven搭建struts2+spring+hibernate环境

Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂,简单上手,适合新手. 关于STS的介绍,请参考另一篇文章<Java IDE介绍:Spring开发利器-spring-tool-suite>地址:http://blog.csdn.net/sgl731524380/article/details/8831540 首先,STS自带的maven的插件已

struts2整合spring应用实例

我们知道struts1与spring整合是靠org.springframework.web.struts.DelegatingActionProxy来实现的,以下通过具体一个用户登录实现来说明struts2整合spring的相关内容. 一.准备工作 1.实例分析我们在这不与数据库打交道,所有就是当用登录的时候判断用户名是否为指定值,密码是否为指定值,以及相关的异常处理.         2.为什么我们要说struts2整合spring呢?相信在家都知道,我也不用多说了....         3

ssh_maven的搭建之dao层的开发

之前都是使用我们传统的方式进行引入jar包,现在我们使用maven进行管理依赖,这样,我们的jar就不需要我们进行管理,而且,我们的maven还可以进行项目构建,一个项目从编写源代码到编译,测试,运行,打包,部署的过程,只需要对应的一个命令即可以了,方便了很多 这里,我们直接进入主题,像eclipse中怎么配置maven等这里我们暂时不说,直接从创建项目开始,而且我们采用的是纯配置文件的方式 我们可以看一下我们的目录结构 这咯我们的ssh_parent是父工程,而剩下的都是它的子模块 这里我们的

分享知识-快乐自己:初始 Struts2 (基本概念)及 搭建第一个Demo

1):struts2 的基本概念: 1-1):Struts2 是什么? 1.Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. 2.Struts 2是Struts的下一代产品,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的Struts 2框架. 3.其全新的 Struts 2 的体系结构与 Struts 1 的体系结构差别巨大.Str