Struts1.x 登录实验-无数据库版

前言

本实验在 IDEA 2021.2.2(UItimate Edition) 下运行。
使用以下软件、开发包:
JDK-14.0.1
struts-1.3.10
Apache Tomcat 9.0.53
注:请使用Apache Tomcat 9.x版本,亲测使用10.x版本会导致出错。原因是Struts1.x中的servlet-api版本与Apache Tomcat 10.x不兼容。

注:本文仅作为学习,不考虑任何生产环境,谨以此文记录所学,造福后人

环境配置

Apache Tomcat 9.0.53 配置

下载

官方地址:https://tomcat.apache.org/download-90.cgi
在这里插入图片描述

安装和配置

解压即可完成“安装”
如图所示:
在这里插入图片描述
打开conf文件夹中的 logging.properties 文件,
java.util.logging.ConsoleHandler.encoding = UTF-8
修改为:java.util.logging.ConsoleHandler.encoding = GBK

运行bin目录下的 startup.bat
等待Tomcat服务器完成启动
浏览器访问:http://localhost:8080/
出现如下界面,表明启动成功:
在这里插入图片描述
然后运行bin目录下的 shutdown.bat关停Tomcat服务
注:请一定使用此方法关闭。即使关掉了之前的startup.bat窗口, 也请运行shutdown.bat关闭

IDEA中配置Tomcat

用IDEA打开任意工程,点击“运行”–>“编辑配置”
在这里插入图片描述
添加Tomcat服务器,选择本地服务器
在这里插入图片描述
然后按照如下步骤配置
在这里插入图片描述
配置部署工件:
在这里插入图片描述
在这里插入图片描述
创建新项目
在这里插入图片描述
选择Java EE8即可,其他的保持默认
在这里插入图片描述
创建成功后项目结构如下图:
在这里插入图片描述
直接运行进行测试
在这里插入图片描述
显示下图,即为成功
在这里插入图片描述

Struts 1.3.10配置

下载与安装

官网下载地址: https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-all.zip
解压即可。




实验步骤

创建项目

如上述测试Tomcat配置相同的方式创建项目
然后删除 HelloServlet.javaindex.jsp文件
原本项目结构

导入struts

WEB-INF目录下创建lib文件夹
struts1.3.10中的lib文件夹下的所有文件拷贝本工程下的lib文件夹
即,如图:
在这里插入图片描述
然后,在IDEA中右击lib文件夹,选择“添加为库”
在这里插入图片描述
到此,struts库导入完成

配置web服务器

WEB-INF文件夹下的web.xml文件中添加

    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

WEB-INF文件夹下创建struts-config.xml文件
注:web.xml配置的是Tomcat Web服务器对请求的响应(即,转发给struts管理),struts-config.xml配置的是struts如何管理请求

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
        "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>

</struts-config>

struts初始配置完成

编写类

编写登录所用到的类
main\java\com\example\strutsleaning 路径下
创建LoginActionForm.java文件

package com.example.strutsleaning;

import org.apache.struts.action.ActionForm;

public class LoginActionForm extends ActionForm {
    private String username;
    private String password;
    /**
     * @return Returns the password.
     */
    public String getPassword() {
        return password;
    }
    /**
     * @param password The password to set.
     */
    public void setPassword(String password) {
        this.password = password;
    }
    /**
     * @return Returns the username.
     */
    public String getUsername() {
        return username;
    }
    /**
     * @param username The username to set.
     */
    public void setUsername(String username) {
        this.username = username;
    }
}

创建LoginAction.java文件

package com.example.strutsleaning;

import org.apache.struts.action.*;

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

public class LoginAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request, HttpServletResponse response) throws Exception {
        //将ActionForm强制转换为LoginActionForm
        LoginActionForm loginForm = (LoginActionForm) form;

        //从LoginActionForm中提取从页面表单传递过来的参数
        String username = loginForm.getUsername();
        String password = loginForm.getPassword();

        //根据这些参数,执行业务逻辑操作
        if ("admin".equals(username) && "admin".equals(password)) {
            //如果用户名和密码均为admin,则转向登录成功页面
            return mapping.findForward("success");
        } else {
            //否则转向登录失败页面
            return mapping.findForward("error");
        }
    }
}

编写jsp页面

webapp文件夹下
创建login.jsp登录主界面

<%@ page language="java" contentType="text/html; charset=GB18030"
         pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>请登录</title>
</head>
<body>
<form action="login.do" method="post">
    请输入用户名:<input type="text" name="username"> <br/>
    请输入密码:<input type="password" name="password"> <br/>
    <input type="submit" name="submit1" value="登录">
</form>
</body>
</html>

创建login_success.jsp登录成功界面

<%@ page language="java" contentType="text/html; charset=GB18030"
         pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>登录成功</title>
</head>
<body>
欢迎您,您已经成功登录!您创建的第一个Struts应用程序已成功运行!!!
</body>
</html>

创建login_error登录失败界面

<%@ page language="java" contentType="text/html; charset=GB18030"
         pageEncoding="GB18030" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>登录失败</title>
</head>
<body>
您的登录失败了,可能原因是用户名或密码不正确,请返回重新输入
<a href="login.jsp">返回登录页面</a>
</body>
</html>

配置struts-config.xml

<struts-config></struts-config>内添加如下内容

    <form-beans>
        <form-bean name="loginForm" type="com.example.strutsleaning.LoginActionForm"/>
    </form-beans>
    <action-mappings>
        <action path="/login" type="com.example.strutsleaning.LoginAction" name="loginForm" scope="request">
            <forward name="success" path="/login_success.jsp"/>
            <forward name="error" path="/login_error.jsp"/>
        </action>
    </action-mappings>

运行测试

点击运行
在这里插入图片描述
等待浏览器弹出
输入http://localhost:8080/Struts_leaning_war_exploded/login.jsp
返回页面:
在这里插入图片描述
输入账号:admin;密码:admin
成功登录!
在这里插入图片描述
若账号密码不正确
在这里插入图片描述
到此实验完成!
数据库版本,参见:Struts1.x 登录实验(数据库版)


感谢阅读!

有疑问或者认为有错误请留言,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值