使用struts2进行登录功能的开发

一、 设计需求

使用idea和maven开发具有登录功能的web应用,java语言,使用struts2框架。

二、 设计步骤

1.使用idea创建maven应用,利用maven的webapp模板

填入groupId和ArtifactId后进行下一步,选择maven位置和属性,一般idea会自动读取,之后设置项目位置。

创建成功后,在pom.xml中加入struts2

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>
  <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.14</version>
  </dependency>
</dependencies>

2.目录结构如图

3.创建控制层login.java

不需要继承自任何的类,需要定义函数,struts2的入口函数,类似与main函数

public String execute()

login.java源代码为:

package com.hyp.controller;

import com.hyp.model.UserinfoService;

/**
 * @author hyp
 * Project name is LearnStruts
 * Include in com.hyp.controller
 * hyp create at 2018/7/14
 **/
public class login {
    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 execute()
    {
        UserinfoService userinfoService=new UserinfoService();         if (userinfoService.login(username,password))
        {
            return "toOKJSP";
        }else
        {
            return "toNOJSP";
        }
    }
}

4.业务层UserinfoService.java

登录的核心功能,这里进行简化

package com.hyp.model;

/**
 * @author hyp
 * Project name is LearnStruts
 * Include in com.hyp.model
 * hyp create at 2018/7/14
 **/
public class UserinfoService {
    public boolean login(String username, String password) {
        if ("hyp".equals(username)&&"123".equals(password))
        {
            return true;
        }
        return false;
    }
}

5.创建视图文件login.jsp

<%--
  Created by IntelliJ IDEA.
  User: hyp
  Date: 2018/7/14
  Time: 17:15
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
<form action="login.action" method="post">
    username:<input type="text" name="username"><br>
    password:<input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>
</body>
</html>

6.在WEB-INF/classes下创建struts.xml文件

设置登录后的页面跳转,struts.devMode是指开发模式,报错信息输出较完整,<package name="struts2login" extends="struts-default">定义一个包,及继承默认的配置。<action name="login" class="com.hyp.controller.login">定义action名, 以及实现的类。Result是对返回结果的一个处理。

<?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"/>
    <package name="struts2login" extends="struts-default">
        <action name="login" class="com.hyp.controller.login">
            <result name="toOKJSP">/ok.jsp</result>
            <result name="toNOJSP">/no.jsp</result>
        </action>
    </package> </struts>

Web.xml中是

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <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>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>     <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.js</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>
</web-app>

no.jsp和ok.jsp内容自定。

运行结果如图:

会根据输入进行跳转。

使用struts2进行登录功能的开发的更多相关文章

  1. struts2,登录功能模块实现

    功能: ·UserLogin作为控制登录的Action,校验密码成功后记录session,可以选择记住登陆状态,登陆成功后自动跳转到登陆前的URL: ·UserLogout作为控制登录推出的Actio ...

  2. 2、使用Struts2实现登录功能(没有连接数据)

    1.创建如下的目录结构 2.在com.entity包下创建 package com.entity; /** * 用户类 * @author Holly老师 * */ public class User ...

  3. Struts2整合Hibernate3实现用户登录功能

    所用技术:struts2 ,hibernate,jsp,mysql 本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰 ...

  4. 一步步开发自己的博客 .NET版(3、注册登录功能)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  5. 项目开发-->一键登录功能汇总

    开发网站经常会提供一些一键登录功能,如:QQ.新浪微博.淘宝账号.开心网账号.人人网账号等进行快捷登录,下面记录几个常用的开放平台地址,方便以后开发需要. 1.QQ互联 2.新浪微博 网站接入QQ互联 ...

  6. 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)

    由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教. 一 ...

  7. node+vue进阶【课程学习系统项目实战详细讲解】打通前后端全栈开发(1):创建项目,完成登录功能

    第一章 建议学习时间8小时·分两次学习      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章]) 视频教程地 ...

  8. Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之登录功能

    昨天的博客中我分享了个人关于ssh实现员工管理的框架整合,今天我在分享管理员登录功能的实现.  转载请注明出处"http://www.cnblogs.com/smfx1314/p/78013 ...

  9. 基于IntelliJ IDEA开发工具搭建SSM框架并实现页面登录功能详细讲解二

    接: 接下来配置类 UserController package com.chatRotbot.controller; import com.chatRotbot.model.User; import ...

随机推荐

  1. ef core 随记

    EntityTypeConfiguration internal class OrderEntityTypeConfiguration : IEntityTypeConfiguration<Or ...

  2. CSS Specificity

    CSS的specificity特性或称非凡性,它是一个衡量CSS值优先级的一个标准. 其实就是解决冲突,当同一个元素被CSS选择符选中,按照优先权取舍不同的CSS规则. specificity用一个四 ...

  3. oracle函数 VARIANCE([distinct|all]x)

    [功能]统计数据表选中行x列的方差. [参数]all表示对所有的值求方差,distinct只对不同的值求方差,默认为all 如果有参数distinct或all,需有空格与x(列)隔开. [参数]x,只 ...

  4. 实验4 JavaBean创建和使用(计算器)

    实验4  JavaBean创建和使用 一.实验目的 1.掌握JavaBean创建和使用方法: 2.领会JavaBean简化页面设计的优势等. 二.实验内容 1.设计诸如以下页面的简单计算器 要求:完成 ...

  5. Android ListView批量选择(全选、反选、全不选)

    APP的开发中,会常遇到这样的需求:批量取消(删除)List中的数据.这就要求ListVIew支持批量选择.全选.单选等等功能,做一个比较强大的ListView批量选择功能是很有必要的,那如何做呢? ...

  6. Python--day68--Django ORM的字段参数、元信息

    字段参数 null 用于表示某个字段可以为空. unique 如果设置为unique=True 则该字段在此表中必须是唯一的 . db_index 如果db_index=True 则代表着为此字段设置 ...

  7. 2019-9-2-win10-uwp-车表盘-径向规

    title author date CreateTime categories win10 uwp 车表盘 径向规 lindexi 2019-09-02 12:57:38 +0800 2018-2-1 ...

  8. CentOS7 network.service loaded failed 处理技巧

    某一日,用systemctl --failed查看到如下错误信息,但实际上网络是OK的,真奇怪: 1 2 3 4 5 6 7 8 [root@localhost.localdomain media]# ...

  9. linux mysql 查看默认端口号和修改端口号

    如何查看mysql 默认端口号和修改端口号 2015-03-19 17:42:18 1. 登录mysql [root@test /]# mysql -u root -p Enter password: ...

  10. Codeforces Round #186 (Div. 2)

    A. Ilya and Bank Account 模拟. B. Ilya and Queries 前缀和. C. Ilya and Matrix 考虑每个元素的贡献. 边长为\(2^n\)时,贡献为最 ...