IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Struts1.x 登录实验 -> 正文阅读

[Java知识库]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
成功登录!
在这里插入图片描述
若账号密码不正确
在这里插入图片描述
到此实验完成!


感谢阅读!

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

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 11:53:51  更:2021-12-07 11:55:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:31:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码