zoukankan      html  css  js  c++  java
  • 使用struts2进行登录功能的开发

    使用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内容自定。

    运行结果如图:

    会根据输入进行跳转。

  • 相关阅读:
    jquery插件之文字无缝向上滚动
    jquery插件之tab标签页或滑动门
    jquery插件之表格隔行变色并鼠标滑过高亮显示
    jquery过滤器之:contains()、.filter()
    css3动画在动作结束时保持该状态不变的解决办法
    CSS3两个动画顺序衔接播放
    css去掉使用bootstrap框架后打印网页时预览效果下的超链接
    R in action读书笔记(13)第十章 功效分析
    Python学习 Day 7 面向对象 类和实例 访问限制
    R in action读书笔记(12)第九章 方差分析
  • 原文地址:https://www.cnblogs.com/pingxin/p/p00004.html
Copyright © 2011-2022 走看看