蓝桥杯-网络安全比赛(1)基础学习-使用PHP、PYTHON(Flask)、JAVA(Servlet-API)制作登录表单功能

文章探讨了如何使用PHP、Python和Java实现用户登录功能,涉及前后端交互、性能提升、Web服务器选择和开发环境配置等内容。
摘要由CSDN通过智能技术生成
需求:关于用户登录的功能。
在这个需求中,我们需要实现用户输入用户名和密码进行身份验证的过程。
包括前端页面让用户输入信息,
然后后端接收这些信息并与数据源中的用户凭据进行比对。
	如果匹配成功,用户将被允许登录并访问相应的资源;
	如果匹配失败,系统则会提示用户错误信息。

PHP

PHP7是PHP语言的一个重要版本,它在性能、安全性以及新特性方面都有着显著的提升。与之前的版本相比,PHP7的执行速度有了大幅的提高,这主要得益于其底层的优化和对新特性的引入。
Nginx是一个高性能的HTTP和反向代理web服务器,也提供了IMAP/POP3/SMTP服务。它的设计注重性能、稳定性和丰富的功能集。Nginx采用异步非阻塞的事件驱动模型,使其能够处理高并发连接,并且消耗的系统资源相对较少。
HTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的标准标记语言。它通过一系列标签来定义网页中的元素,如段落、标题、链接、图片等。
phpStudy 是一个PHP开发环境集成包,可用在本地电脑或者服务器上,该程序包集成最新的PHP/MySql/Apache/Nginx/Redis/FTP/Composer,一次性安装,无须配置即可使用。如果你的电脑对应的环境可以用这个程序来简单实现PHP环境的配置。

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <form action="login.php" method="post">
    <input type="text" name="username" id="user" required>
    <input type="password" name="pwd" id="pwd" required>
    <input type="submit">
  </form>
</body>
</html>

PHP 代码:

<?php
$user=$_POST["username"];
$pwd=$_POST["pwd"];
if($user=="admin"&&$pwd=="123456")
    echo("<h1>{$user} login success!</h1>");
else
    echo("<h1>Logon failure</h1>")
?>

打开PHPSTUDY启动NGINX
phpstudy
文件目录如图所示:
index.html
然后打开浏览器输入localhost,填写表单admin和123456运行:
admin
登录成功显示:
admin login success

Python

Python3是Python编程语言的最新版本,它带来了许多新特性和改进,使编程变得更加高效和灵活。Python3注重代码可读性和简洁的语法,允许开发者用少量的代码表达想法,非常适合快速应用开发和Web开发。
Flask是一个使用Python编写的轻量级Web应用框架。它诞生于2010年,由Armin Ronacher用Python语言基于Werkzeug工具箱编写。Flask本身相当于一个内核,它使用简单的核心,并通过扩展(extension)来增加其他功能。

HTML代码
simple flask login
Python代码:

#引入所需模块
from flask import Flask, render_template, request, jsonify

app=Flask(__name__) #创建一个Flask应用实例,__name__表示当前模块的名称

@app.route('/') #创建路由/
def index(): #定义index函数并指向模型文件login.html
    return render_template("login.html")

VALID_USERNAME='admin' #定义账号常量
VALID_PASSWORD='123456' #定义密码常量

@app.route('/login', methods=['POST']) #定义登录路由,使用POST请求方式
def login(): #定义登录方法
    #从请求中获取表单数据
    username=request.form.get('username')
    password=request.form.get('pwd')
    #验证如果账号和密码相同则返回成功
    if username==VALID_USERNAME and password==VALID_PASSWORD:
        return jsonify({'status':'success','message':'Login successful.'})
    else: #否则返回失败
        return jsonify({'status':'error','message':'Invalid username or password.'})
#只有单独运行该文件时才运行该应用(而不是通过扩展引入)
if __name__ == '__main__':
    app.run(debug=True)
  • 确保你安装了 Flask。如果没有安装,请使用 pip install Flask 进行安装。
  • 将上面的 Flask 代码保存为 app.py
  • 创建一个名为 templates 的目录,并将 login.html 文件放入其中。
  • 在命令行中运行 Flask 应用:python app.py
  • 在浏览器中访问 http://127.0.0.1:5000/,你应该能看到登录表单。
  • 尝试输入用户名和密码,点击登录按钮。如果输入正确,将弹出一个提示框显示“Login successful.”。如果输入错误,将在表单下方显示错误消息。
    login successful

JAVA

Tomcat 9是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,它是一个轻量级的Web应用服务器,实现了Servlet和JSP规范。Tomcat 9因其先进的技术、稳定的性能以及开源免费的特点,受到了Java开发者的广泛喜爱,并得到了许多软件开发商的认可。Tomcat 9发布于2017年,支持Servlet 4.0、JSP 2.3和EL 3.0规范,并引入了WebSocket子协议和JASPIC等新特性。
JDK 8是Oracle公司在2014年3月18日发布的一个重要版本,也是Java发展史上的一个重要里程碑。JDK 8在JVM、编译器、库以及Java语法特性等方面进行了大量改进,提高了语言的表达力和简洁性。此外,JDK 8还引入了接口新规范,允许在接口中定义默认方法和静态方法,并推出了函数式接口设计。
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
IntelliJ IDEA是JetBrains公司开发的一款Java集成开发环境(IDE)。它被誉为业界最好的Java开发工具,提供了丰富的功能,如智能代码助手、代码自动提示、重构、JavaEE支持、版本控制工具整合、代码分析以及创新的GUI设计等。
  1. 新建一个JAVA项目
    new project
  2. 在项目中右键添加框架支持
    framework support
  3. 勾选Web Application
    在这里插入图片描述
  4. 新建一个目录classeslib classes5. 打开Project Structure的Modules,并把Paths改成你项目中的classes目录在这里插入图片描述
  5. 新增Servlet依赖
    version
  6. 选择tomcat lib目录中的servlet-api包
    attach
  7. 在Web目录下编写index.html文件
    index.html
  8. 在原本的main.java编写后端登录代码。(注意配置访问的注解)
    httpServlet
  9. 新增运行环境 Tomcat Local (可以根据情况修改访问路径),遇到问题就fix掉。
    configuration
    localhost
  10. 访问路径与应用路径需一致,便于开发
    application context
  11. 点击运行后自动弹出浏览器,访问链接http://localhost:8080/login.html

localhost
12. 访问成功
login successful

END

首先,这个需求就像是小小的挑战,它们让我有机会与PHP、Python和Java这三位“朋友”深入交流。与PHP的相处,让我感受到它作为Web开发“老手”的便利和实用。它的语法简洁明了,让我在构建Web页面时能够迅速上手,轻松实现功能。

而与Python的邂逅,则让我体验到了编程的优雅与灵活。Python就像是一位多才多艺的艺术家,无论是处理数据还是构建复杂的逻辑,它都能以简洁的代码和强大的库来助我一臂之力。与它的合作让我深刻体会到编程的乐趣和无限可能。

至于Java,它则像是一位严谨而可靠的工程师。在与Java的交往中,我感受到了它强大的性能和稳定性。虽然它的语法相对复杂一些,但正是这种严谨性让我对编程有了更深入的理解。通过Java,我学会了如何构建健壮的应用程序,并处理各种复杂的业务逻辑。

与这三位“朋友”的交流让我意识到,每种编程语言都有其独特的特点和适用场景。没有绝对的优劣之分,只有最适合的选择。我学习到了在选择编程语言时,要考虑到项目的需求、团队的技能以及开发效率等因素。

此外,这次经历也让我更加明白了编程的本质——解决问题。无论是使用哪种编程语言,我们的目标都是实现功能、满足需求。因此,重要的是掌握编程的基本思想和解决问题的方法,而不仅仅是熟练掌握某种语言的语法和特性。

总的来说,这次与PHP、Python和Java的相处让我收获颇丰。我不仅学会了如何使用这些语言来实现功能,更重要的是,我学会了如何根据不同的需求和场景选择合适的编程语言,并掌握了编程的核心思想和方法。这些经验和教训将伴随我未来的编程之路,让我更加自信和从容地面对各种挑战。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值