HTML基础
(一)基础知识
HTML:超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言。HTML 不是一种编程语言,而是一种标记语言是网页制作所必备的。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言(或超文本标签语言)的结构包括“头”部分和“主体”部分,其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
代码示例:
<!-- HTML 标记语言:通过一个对应的字段来标识某种功能
网页分两部分
1,头部 Header
2,内容 body
-->
<!DOCTYPE html>
<html>
<!--头部信息-->
<head>
<meta charset="utf-8">
<title>我的第一个网页</title>
</head>
<!-- 具体信息-->
<body>
<!-- 显示标题并居中-->
<h1 align="center">HTML</h1>
<h2 align="center">HTML的由来</h2>
<!-- 插入图片并居中 -->
<center><img src="https://gss0.bdstatic.com/94o3dSag_xI4khGkpoWK1HF6hhy/baike/crop%3D0%2C173%2C1024%2C676%3Bc0%3Dbaike116%2C5%2C5%2C116%2C38/sign=7c913fca53df8db1a86126243413f165/54fbb2fb43166d226fbb2bc64b2309f79152d297.jpg" width="150" height="150" align="center"></center>
<!-- 插入段落 -->
<p> 万维网(world wide web)上的一个超媒体文档称之为一个 页面(外语:page)。作为一个组织或者个人在万维网上放置开始点的页面称为主页(外语:Homepage)或首页,主页中通常包括有指向其他相关页面或其他节点的指针(超级链接),所谓超级链接,就是一种统一资源定位器(Uniform Resource Locator,外语缩写:URL)指针,通过激活(点击)它,可使浏览器方便地获取新 的网页。这也是HTML获得广泛应用的最重要的原因之一。在逻辑上将视为一个整体的一系列页面的有机集合称为网站(Website或Site)。超级文本标记语言(英文缩写:HTML)是为“网页创建和其它可在网页浏览器中看到的信息”设计的一种标记语言。
网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 </p>
<!-- 插入链接 -->
<a href="http//:baidu.com">百度链接:</a>
<!--插入表格-->
<center><table border="1" bgcolor="#FF7F50">
<!-- tr表示一行数据 td 表示多少列 -->
<tr>
<td>姓名</td>
<td>班级</td>
<td>成绩</td>
</tr>
<tr>
<td>小王</td>
<td>计科1</td>
<td>96</td>
</tr>
<tr>
<td>小张</td>
<td>计科1</td>
<td>91</td>
</tr>
<tr>
<td>小刘</td>
<td>计科1</td>
<td>93</td>
</tr>
</table></center>
<br><!--换行-->
</body>
</html>
注意:写好的文件后缀必须是html或是htm,然后用浏览器打开。
效果展示:
(二)HTML写一个表单
由HTML写的一个网页可以看作是一个客户端,而客户端不仅可以访问服务器端的
数据,而且可以向服务器端上传数据。如果需要将自己本地的数据提供给外部访问
则需要在自己的电脑上搭建一个服务器比如 apache 。Windows操作系统 必须自己搭建服务器 apache
搭建服务器后如何让外部访问:
- 1,启动服务器
- 2,找到服务器工作路径 workspace
- 3,将需要提供给外部访问的文件放到Apache文件下htdocs目录下
- 4,如何访问:
- 本机访问:127.0.1/test.html
- 其他电脑: 在同一个局域网通过IP地址访问,比如:10.124.23.1/test.html
表单(form):用于浏览器向服务器提交数据。
客户端提交有两种方式:
- get/GET
向服务器提交数据 并获取服务器端返回的结果
特点:提交的数据不会展示在URL里面体现
不安全
当提交的数据比较多时就无法使用
数据不是特别重要,并且量比较少的时候可以使用- post/POST
向服务器提交数据 并获取服务器端返回的结果
特点:提交的数据不会展示在URL里面
安全 可以提交大量数据
代码示例:
<!--做一个表单用于提交用户的数据-->
<!DOCTYPE html>
<html>
<head>
<title>登录</title>
</head>
<body background="3.png">
<h1 align="center">登录</h1>
<!--表单的内容-->
<!-- action -->
<!-- 提交数据有两种 get -->
<form action="login.php" ="login.php" method="get">
<center>
账号:<input type="text" name="user_name">
<br>
<br>
<br>
密码:<input type="password" name="user_password">
<br>
<br>
<input type="submit" name="提交">
</center>
</form>
</body>
</html>
效果展示:
PS:在这个登录界面里输入账号和密码点击提交,客户端就会自动把账号和密码信息发送到服务器端,在由服务器端和数据库里面以后的数据做比对判断登录是否成功,因此我们还要在服务器端写一个文件来操作客户端传送过来的数据
<form action="login.php" ="login.php" method="get">
这句就是将表单的数据传给服务器端的login.php文件处理,传递数据的方法是get
file:///D:/AndroidWeb/Apache/Apache24/htdocs/login.php?user_name=Jack&user_password=123
注:我们可以看到当我点击提交后,使用get传递数据在URL里面就显示出了账号和密码信息
login.php文件:
<?php
//获取提交的用户名
$name = $_GET["user_name"];
//获取密码
$password = $_GET["user_password"];
//查询数据库过程省略
//返回结果
echo " login success";
?>
用Java实现PHP操作的内容
(一)错误写法
Socket socket = new Socket("10.129.25.52",80);
//传递数据
String date = "user_name=jack&user_password=123";
//创建输出流
PrintStream printStream = new PrintStream(socket.getOutputStream());
printStream.println(date);
//接收服务器端返回的数据
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println(bufferedReader.readLine());
(二)用Java封装一个可以用于上传和下载数据的方法
public static void post() throws IOException {
//1,创建URL
URL url = new URL("http://10.127.0.0.1/login.php");
//2,获取连接对象
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//3,设置请求方式为post
connection.setRequestMethod("POST");
// 设置有输入流 需要下载
connection.setDoInput(true);
// 设置有输出流 需要上传
connection.setDoOutput(true);
//4,准备上传数据
String date = "user_name=jack&user_password=123";
//5,开始上传 输出流对象
OutputStream os = connection.getOutputStream();
os.write(date.getBytes());
os.flush(); // 写完了 ,冲洗输入流
// 6. 接收服务器端返回的数据
InputStream is = connection.getInputStream();
byte[] buf = new byte[1024];
int length;
while ((length = is.read(buf)) != -1){
System.out.println(new String(buf,0,length));
}
}
学习感悟:
今天学习的内容比较多,但非常有趣,总的来说并不算很难。对于HTML来说,我觉得自己有着很浓厚的兴趣,以后可以多多深入学习一下。