HTML/JSP_上古互联网时期,天地混沌,前后端尚未分离,霓虹正是此未开化状态202304
HTML/JSP_上古互联网时期,天地混沌,前后端尚未分离,霓虹正是此未开化状态20230422
# HTML/JSP_上古互联网时期,天地混沌,前后端尚未分离霓虹的IT是这种未开化的状态20230421
开篇吐槽:
HTML/JSP_上古互联网时期,天地混沌,前后端尚未分离,而霓虹的IT就是这种未开化的状态,依旧通过非物质文化遗产JSP技术进行数据库的管理,正是为了累死开发。20230421_卒
## 一、表单块元素语法form_method action
### 1. form开始标签 method="post|get" 表单提交方式 必须
post|get :规定如何发送表单数据常用值
### 2. form开始标签 action:表示向何处发送表单数据 必须
action=""必填 表单信息提交的位置,可以是网站 也可以是一个请求 处理地址
### 3.示例表单
## 4.输入框input及其指定类型type
form method action >input type=text/radio> 等
form表单元素内_指定input输入框元素类型type为文本框text/单选框radio等属性
### 1. form表单元素内各元素的格式
属性|说明
--|--
type|指定input输入框元素的类型。text文本框,password密码框、checkbox多选框、radio单选框、submit提交按钮、reset重置按钮, file文件, hidden隐藏, image图片 和 button, 默认为 text类型的文本输入框
name必须|指定表单元素的名称,尤其是设置单选框时
value|元素的初始值。type 元素类型 为radio单选框时必须指定一个值
size|指定表单元素的初始宽度。当 type 为text或password时,表单元素的大小以字符为单位。对于其他类型,宽度以像素为单位
maxlength|type为text或 password 时,输入的最大字特数
checked|type为radio或checkbox时,指定按钮是否是被选中
### 1. 单选效果的实现:
1. 将文本框类型为单选框的两个性别radio单选框放在一个p标签元素块中
2. 在单选框设置相同的name元素名称,使男女单选框都同属于gender单选组内
3. 设置value元素的为数据提交的初始数据值 type元素类型为radio单选框时必须指定一个值
## 二、
### 1. 单选框 redio checked
### 2. 多选框 checkbox checked
### 3. 下拉框 select_option_selected
### 4. 文本域 textarea
### 5. 文件域 type file
### 6. 数字 type number
### 7. 邮箱 type email
### 8. 滑块 type range
### 9. 搜索框 type search
## 三、HTML表单插播:切换服务器视角
- 根据客户网页端的提交的表单数据,如何储存到数据库进行管理呢?
HTML只是一种标记语言,不具备编程功能,因此以Java语言来写指令,进行数据库的操作。而在HTML中使用Java代码更是不可行的。
### (一)分支选项 结局一:JSP
HTML/JSP_上古互联网时期,天地混沌,前后端尚未分离,而霓虹的IT就是这种未开化的状态,依旧通过非物质文化遗产JSP技术进行数据库的管理,直接在Web页面中嵌入动态的Java代码,
### 1、JavaServer Pages(JSP)
1. JSP是一种基于Java的Web页面技术,它允许开发人员在HTML页面中嵌入Java代码,从而动态生成页面内容。
2. 在JSP中,Java代码被包含在<% %>标记中。
3. 例:一个简单的JSP页面,让它从MySQL数据库中获取数据并在Web页面上显示。
---
---
### (二)分支选项 结局二 Java Servlet
前后端分离Java Servlet技术
1. 设置Java环境和MySQL数据库的正常连接。可以使用JDBC连接MySQL数据库。
2. 在MySQL数据库中创建一个表来存储提交的文本表单数据。例如,可以创建一个名为“form_data”的表,该表包含列“id”(作为主键)、“name”、“email”和“age”。
3. 在网页前端,创建一个表单form,其中包含要提交的文本数据。确保表单的提交方式为“POST”。
4. 在Java应用程序中,使用Servlet来处理表单提交。在Servlet中,使用JDBC连接到MySQL数据库,并将提交的表单数据插入到“form_data”表中。
### 1. SQL注入 数据注入
SQL注入是一种常见的网络攻击方式,攻击者通过构造恶意SQL语句来实现对数据库的非授权访问和操作。
### 2. SQL注入示例
假设有一个登录页面,用户输入用户名和密码,然后页面将用户名和密码提交到后台进行验证:
```java
String sql = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'";
ResultSet rs = stmt.executeQuery(sql);
```
攻击者可以在用户名和密码的输入框中输入恶意的SQL语句,例如在用户名输入框中输入 ' OR 1=1--,密码输入框中随意输入,那么构造出的SQL语句如下:
```java
SELECT * FROM users WHERE username='' OR 1=1--' AND password=''
```
sql注入解决:
使用PreparedStatement来代替Statement,PreparedStatement支持参数化查询,可以将参数的值与SQL语句进行分离,从而避免了恶意参数的注入,以下是一个使用PreparedStatement进行查询的示例代码:
```java
String sql = "SELECT * FROM users WHERE username=? AND password=?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
```
pstmt使用了参数化查询,将查询条件的值与SQL语句进行了分离,使得恶意参数无法注入到SQL语句中,从而避免了SQL注入攻击的风险。