javaWeb第一课

news2024/12/24 0:16:05

前言:

先来说说本来写完了的聊天室的项目,然后后面凡尔赛不小心改错了的然后一个上午才发现的问题,真的很有必要总结一下,气死我了:关于要将这个ArrayList的某个类型要转换为数组,我刚开始这么写的:

Message/*这是数组类型,自己定义的类*/[]mm=(Message[])arrayList/*这是对应的ArrayList类型*/.toArray();
//好像大概就是这么写的
//然后也没报错,就也运行了,但是一直卡在这里,也没有其他的,就真的很难发现,我哭死

至于正确怎么写的网上搜一下到处是,别这样写就行了; 

1.小提示 

javaWeb将网页和数据库联系起来;数据库管理系统管理数据库;MySQL不区分大小写,关键字建议大写,SQL单行注释'-- '(即两个斜杠加一个空格),以分号结束;MySQL特有的以#为注释也可以;下载的的开发工具最好安装在没有中文的路径下,避免引发不必要的麻烦;记住每次打开html的时候都要记得去用ctrl+s保存一下; 这里可以查看官方文档:w3school 在线教程

2.初识前端

三个组成部分:HTML(负责网页的结构,包括页面的元素和内容),CSS(负责网页的表现,界面元素的外观,位置),JavaScript(网页的行为,交互效果);

HTML:

超文本标记语言(超越了文本的限制,除了文字信息还可以定义图片,音频,视频等内容,有预先定义好的标签组成的,最终由浏览器来解读);在HTML里面无论点击多少个空格,在浏览器里面都只会显示一个空格,如果实在要用空格,可以使用空格占位符 

1)小练习:

1.新建文本文件,后缀名改为.html

2.编写HTML结构标签(用记事本打开,仅一次)

3.在<body>中填写内容

标签当中的属性来指定src指定图片,如果通过src已经指定了图片那么后面图片的闭合标签可写可不写(如果不写的话要在后面加一个斜杠让标签自闭合)

展示图:(浏览器内)

<html>
    <head>
        <title>HTML快速入门</title>
    </head>
    <body>
    <h1>Hello HTML</h1>
    <img src="1.jpg"/>
    </body>

</html>

文件内视图: 

请注意:HTML里面的标签是不区分大小写的,在标签中可以使用双引号也可以使用单引号;

2)简单属性介绍

 图片路径绝对路径和相对路径:

绝对路径

绝对磁盘路径:比如"D:\小练习\img\logo-title.jpg"

绝对网络路径:比如:news_logo.png (137×36) (sinaimg.cn)

相对路径:比如:img/logo-title.jpg

相对目前html所在的文件的位置

图片高度和宽度:

高度和宽度有两个单位:像素:px,百分比:%(占整个界面的多少(分长宽,长占多少,宽占多少));

一般是不同时修改高度和宽度的,如果同时修改的话就容易使图片变形,所以一般只调整一个,另外一个会按比例调整;

 3)小试牛刀

在vsCode里面将之前的文件导入,然后再新建一个HTML文件,开始编辑新建的文件,在vsCode里面就输入一个‘!’(即一个感叹号)然后回车就可以出现这样的框架;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

4)超链接标签

标签名为a,其中有两个属性:一个是href,表示链接打开的url,另一个属性名为target,表示在哪里打开这个链接:有两个选项:_self在当前页面打开,_blank在新的界面打开;

但是注意:超链接文字默认是带有下划线的蓝色字体的,所以要想要修改可以通过color和text-decoration即可

5)视频标签

属性:

6)音频标签

 7)文本处理标签

浏览器解析文本的时候并不会通过编辑器里面的换行达到换行效果,而是一个标签<br>,文本也会经常用到这个段落标签<p>,还有两个文本加粗的标签,一个是<b>一个是<strong>后者具有强调的语义

8)两个标签

 9)表格标签

10)表单标签

<form>

 11)表单项标签

如果没有对method属性进行规定的话,那么就是将它们直接提交到html后面加一个?再加数据;也就是get参数,所以说由于网框有限制,所以说这个参数方法是有限制的,但是,如果是 post参数的话,那么表单数据是在请求体或者消息体中传递的;参数大小无限制;注意:表单项必须有name属性,否则是没办法提交的

CSS:层叠样式表

引入方式:

行内样式:直接在标签中通过style属性来指定样式(<h1 style="color: red;">焦点访谈:中国底气 新思想夯实大国粮仓</h1>)

内嵌样式:编写style标签,通过选择器对某个组件都有效;可以写在页面内任何位置,但通常约定写在head标签中;

h1{
   color: red;
  }

外联样式:写在一个单独的.css文件中(需要通过link标签在网页中引入) <link rel="stylesheet" href="./css/news.css">    href这个指的是引入的css的urlye'jiu'sh

颜色小tips:

用颜色的话除了用纯色还可以用rgb3配色,还可以用十六进制,但是两个的表达方式不一样:

rgb:

 color:rgb(219, 239, 250);

十六进制:

color: #DBEFFA;

没有语义的标签:

span标签:可以在一行同一类型的字包裹起来,可以在一行使用多个标签

CSS选择器:

元素选择器:根据标签的名字来选择标签的样式;

<style>
        h1
        {
            color: #007ACC;
        }
    </style>

id选择器:为标签使用id属性,通过id来选择要哦,id在页面当中不能重复;

#mark
        {
            color: #007ACC;
        }

类选择器:为标签设置class属性,class属性是可以重复的

但是如果这几个同时存在的时候,优先级只是这样的:行内样式>id选择器>类选择器>标签(元素)选择器;

style的属性:

color:设置文字颜色

font-size:设置文字大小;

 color: #007ACC;
font-size: 13px;

text-decoration:修改文本修饰,包括下划线等

text-decoration: none;

text-indent:段落首行缩进值

line-height:设置行高

text-align:指定文本的对齐方式

盒子模型:

外边距指定上右下左四个值,但是也可以指定两个值,第一个表示上下,第二个表示左右;然后还有一个属性是auto表示计算机自动计算外边距;但是如果只需要设置一个方向的话就可以在要设置的属性后面加上一个-方位,比如要设置左边的外边距,就这样写margin-left 

JavaScript:

跨平台,面向对象的脚本语言;可以直接经过浏览器解释就可以运行了(注意,js每行分号结尾的注释可有可无)

引入方式:

内部脚本:

<script>
        alert('hello JS');
    </script>
外部脚本:

 <script src="./js/demo.js"></script>

基础语法:

输出语句:

变量:

 注意:var定义的变量作用域比较大,属于全局变量,可以重复定义,但是let不能重复定义

  数据类型:

 

 但是如果使用typeof来测试运算符,测得的null不是null类型,这是早期沿用的错误,现在被认为null是对象的占位符;

运算符:

==会进行类型转换,===不会进行类型转换

 类型转化:

 

 注意:在自动类型转换成数字的时候,碰到不是数字的就停止转换,如果刚开始就不是数字,那么转换为NaN;

函数:

JS里面的函数通过function关键字来定义(注意,JS函数声明没用参数类型和返回值类型,可以传递任意个数的参数,哪怕没有对应到生命的参数类型个数):两种定义方法:

 l

 基础对象:

Array:

数组的定义:

 注意:JS中的数组是变长的,可以储存任意类型的数据;

 数组的方法:

 

 简化后:

 删除元素:

 String:

声明:

 方法:

 JSON:

是通过对象标记法书写的文本;语法简单,层次鲜明,多用于作为数据载体,在网络中进行数据传输。

JS自定义对象:

注意,一定要将定义的变量类型明确,不然就会导致JS不报错,但是不会有结果,如上图的male如果没有双引号,就不会有正确的结果;如果在对象内定义的函数,function是可以从省略的,可以简化成这样:

 JSON定义:

方法: 

 var jsonstr='{"name":"Tom","age":18,"addr":["北极","南极"]}';
//对象化
    var obj=JSON.parse(jsonstr);
    alert(obj.name);
//JSON格式化
    alert(JSON.stringify(obj));

浏览器对象模型:

主要介绍两个对象:

Window:

 简单介绍一下:

confirm方法:一个参数,里面装的是确定取消消息的文本框的内容;

 var flag=confirm("你确定删除该记录吗");

setInterval方法:有两个参数,一个是执行的方法,另一个是隔多少时间(毫秒)执行一次:

var i=0;
setInterval(function()
{
console.log("你好呀+i");
i++;
},2000);

setTimeout方法:有两个参数,和上面不一样的是,这个只是执行一次,相当于这个就是执行到这段代码后延迟多久执行这里面的函数代码;而上面的则是重复周期式的去执行; 这个参数和上面是一样的;

location:

地址栏对象

文档对象模型:

基本概念了解:

 实战操作:

要求:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS对象-DOM-案例</title>
</head>
<body>
   <img id ="h1" src="img/1.png"><br><br>
   <div class="cls">小饺子</div><br>
   <div class="cls">小麻子</div> <br>
   <input type="checkbox" name="hobby">电影
   <input type="checkbox" name="hobby">旅游
   <input type="checkbox" name="hobby">游戏
</body>
<script>
    //点亮灯泡
    var img=document.getElementById('h1');
    alert("haha");
    img.src="./img/2.png";
    //将所有的div标签的后面内容加上红色字体的very good
    var divs=document.getElementsByTagName('div');
    for (let i = 0; i < divs.length; i++) {
        const element = divs[i];
        element.innerHTML+="<font color='red'>very good</font>";

        
    }
    //是所有的复选框都呈现出选中状态
    var ins=document.getElementsByName('hobby');
    for (let i = 0; i < ins.length; i++) {
        const element = ins [i];
         element.checked=true;
    }
</script>
</html>

 总结:JS的代码如果后面错了可能会导致前面也运行不了,所以要注意;刚刚我在这段代码里面写了一个这个语句:

 element.innerHTML+="<font color='red'>very good</font>";

但是最外面没有写双引号,以至于一整个JS代码都没有生效QAQ;

事件监听:

事件监听的两种方式:

常见事件:
实战操作-事件监听 :

总结:写这个的时候虽然var是全局变量,但是这个里面我这样写是不对的:

<script>
    function on()
    {
        var img=document.getElementById("light");
        img.src="img/2.png";

    }
    function off()
    {
       
        img.src="img/1.png";
    }
</script>

要这么写熄灯才会正常运行:

<script>
    function on()
    {
        var img=document.getElementById("light");
        img.src="img/2.png";

    }
    function off()
    {
        var img=document.getElementById("light");
        img.src="img/1.png";
    }
</script>

最后完成的代码是这样的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>事件监听-小灯泡升级</title>
</head>
<body>
    <img src="img/1.png" id="light" ><br>
    <input type="button" value="点亮" onclick="on()">
    <input type="button" value="熄灭" onclick="off()">
    <br><br>
    <input type="text" id="name" value="ITCAST" onfocus="lower()" onblur="upper()">
    <br><br>
    <input type="checkbox" name="hobby">电影
    <input type="checkbox" name="hobby">游戏
    <input type="checkbox" name="hobby">旅游
    <br>
    <input type="button" value="全选" onclick="checkAll()">
    <input type="button" value="反选" onclick="reverse()">
</body>
<script>
    function on()
    {
        var img=document.getElementById("light");
        img.src="img/2.png";

    }
    function off()
    {
        var img=document.getElementById("light");
        img.src="img/1.png";
    }
    function lower()
    {
         var input=document.getElementById("name");
         input.value= input.value.toLowerCase();

    }
    function upper()
    { 
        var input=document.getElementById("name");
         input.value= input.value.toUpperCase();
    }
    function checkAll()
    {
       var hobbies=document.getElementsByName("hobby");
       for (let i = 0; i < hobbies.length; i++) {
        const element = hobbies[i];
        element.checked=true;
       }
    }
    function reverse()
    {
        var hobbies=document.getElementsByName("hobby");
       for (let i = 0; i < hobbies.length; i++) {
        const element = hobbies[i];
        element.checked=false;
       }
    }
</script>
</html>

好久都没敲代码的,在家和快要放假这段时间几乎没学,哎,要上点心灵鸡汤了:

我始终相信 ,走过平湖烟雨岁月山河 ,那些历尽劫数尝遍人间百味的人 ,会更加生动而干净

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python(八十五)格式化字符串

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【算法】手把手学会二分查找

目录 简介 基本步骤 第一种二分 第二种二分 例题 搜索插入位置 数的范围 总结 简介 &#x1f965;二分查找&#xff0c;又叫折半查找&#xff0c;通过找到数据二段性每次都能将原来的数据筛选掉一半&#xff0c;通过这个算法我们能够将一个一个查找的 O(n) 的时间复杂…

从头搭建一个基于webpack的项目

从头搭建一个基于webpack的项目 一、起步 1、创建目录&#xff0c;初始化npm&#xff0c;安装webpack mkdir vue3-spa-templatecd vue3-spa-templatenpm init -ynpm install webpack webpack-cli --save-dev备注&#xff1a;在安装一个 package时&#xff0c;此 package 要…

一篇文章告诉你,为什么要使用Javascript流程图来可视化进程?(下)

DHTMLX Diagram库是有各种类型的图组成的&#xff0c;其中最广泛使用的是JavaScript流程图&#xff0c;它可以显示任何类型的的工作流、过程或系统&#xff0c;您可以下载DHTMLX Diagram的评估版并亲自试用。 在上文中&#xff08;点击这里回顾>>&#xff09;&#xff0…

Python标准库概览

Python标准库概览 知识点 标准库: turtle库(必选)标准库: random库(必选)、time库(可选&#xff09; 知识导图 1、turtle库概述 turtle&#xff08;海龟&#xff09;是Python重要的标准库之一&#xff0c;它能够进行基本的图形绘制。turtle库绘制图形有一个基本框架&#x…

ubuntu18.04复现yolo v8之最终章,realsenseD435i+yolo v8完美运行

背景&#xff1a;上一篇博客我们已经为复现yolov8配置好了环境&#xff0c;如果前面的工作顺利进行&#xff0c;我们已经完成了90%&#xff08;学习类程序最难的是环境配置&#xff09;。 接下来将正式下载yolov8的相关代码&#xff0c;以及进行realsenseD435i相机yolo v8的de…

ONLYOFFICE 文档如何与 Alfresco 进行集成

ONLYOFFICE 文档是一款开源办公套件&#xff0c;其是包含文本文档、电子表格、演示文稿、数字表单、PDF 查看器和转换工具的协作性编辑工具。要在 Alfresco 中使用 ONLYOFFICE 协作功能&#xff0c;可以将他们连接集成。阅读本文&#xff0c;了解这如何实现。 关于 ONLYOFFICE…

长胜证券:逾九成北交所公司上半年盈利,两大板块表现优异

到现在&#xff0c;已有28家北交所公司净赢利增速超越30%。 逾九成北交所公司完成盈余 半年报进入密布发表期。证券时报数据宝统计&#xff0c;到8月23日收盘&#xff0c;已有88家北交所上市公司发布2023年半年度相关陈述。 从营收规模来看&#xff0c;合计69家北交所公司上半…

传感器IMU

IMU根据其属性&#xff0c;可以知道其主要测量是线加速度和角加速度&#xff1a; (1) (2) 其中和分别是线加速度偏差和角加速度偏差,可以利用随机游走模型建模&#xff0c;, ,且符合高斯分布;和是噪声&#xff0c;一般认为符合高斯分布;表示全球坐标下的重力加速度;表示旋转变…

网络电子词典

一、项目要求&#xff1a; 1. 登录注册功能&#xff0c;不能重复登录&#xff0c;重复注册 2. 单词查询功能 3. 历史记录功能&#xff0c;存储单词&#xff0c;意思&#xff0c;以及查询时间 4. 基于TCP&#xff0c;支持多客户端连接 5. 采用数据库保存用户信息与历史记录…

002 编程是什么?

魔法师:在这个充满魔法和奇迹的数字时代,你是否好奇过计算机是如何运作的?当你用手机玩游戏、在电脑上浏览网页、看动画电影,你是否想过这背后的秘密是什么?别担心,今天我们将揭开这神秘的面纱,一起来探索编程的神奇世界! 编程,简单地说,就是一种让计算机执行任务的…

第五章:认证和动态菜单功能【基于Servlet+JSP的图书管理系统】

一、登录功能 1.认证实现 53-图书管理系统-登录功能-认证处理 首先完成最基础的登录功能&#xff0c;也就是在登录页面通过表单提交账号和密码到Servlet中。做相关的校验。给出不同的反应。 然后对应的Servlet中的处理逻辑 WebServlet(name "loginServlet",urlPatt…

软件测试的常用概念

目录 需求 需求和软件测试人员的关系 需求是侧式人员进行软件测试工作的依据,需要通过软件需求,来设计测试用例 软件的生命周期 在每个阶段,测试人员需要做什么事? 软件测试的生命周期 BUG 什么是bug? 如何描述一个bug? bug的级别 bug的生命周期: 调试和测试的区…

Linux虚拟机安装(Ubuntu 20)

最近这段时间使用VMWare安装了一下Ubuntu版本的Linux虚拟机&#xff0c;在这里记录一下安装时参考的文章以及需要注意的细节 参考链接&#xff1a; 虚拟机&#xff08;VMware&#xff09;安装Linux&#xff08;Ubuntu&#xff09;安装教程 VMware虚拟机下安装Ubuntu20.04&…

这所985重大科目变更!新增专硕可考信号!

一、学校及专业介绍 重庆大学&#xff08;ChongqingUniversity&#xff0c;CQU&#xff09;&#xff0c;简称“重大”&#xff0c;是教育部直属的全国重点大学&#xff0c;是国家“211工程”和“985工程”重点建设的高水平研究型综合性大学、国家“世界一流大学建设高校&#…

跨境电商系统开发:打破国界壁垒,拓展全球市场

拓展全球市场的必然选择 随着国际贸易水平的不断提升和全球市场的日益开放&#xff0c;跨境电商作为一种高效的贸易模式&#xff0c;受到了越来越多电商企业的关注和青睐。跨境电商不仅可以打破国界壁垒和时差限制&#xff0c;还可以在全球市场上实现销售的拓展&#xff0c;带来…

SVN 项目管理笔记

SVN 项目管理笔记 主要是介绍 SVN 管理项目的常用操作&#xff0c;方便以后查阅&#xff01;&#xff01;&#xff01; 一、本地项目提交到SVN流程 在SVN仓库下创建和项目名同样的文件夹目录&#xff1b;选中本地项目文件&#xff0c;选择SVN->checkout,第一个是远程仓库项…

FOC之SVPWM学习笔记

一、参考资料 【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 知乎FOC入门教程_zheng是在下的博客-CSDN博客DengFOC官方文档技术干货 |【自制】FOC驱动板 二、FOC控制算法流程框图 在FOC控制中主要用到三个PID环&#xff0c;从内到外依次是&#xff1a;电流环、速度环、位…

DevExpress WinForms数据编辑器组件,提供丰富的数据输入样式!(二)

DevExpress WinForms超过80个高影响力的WinForms编辑器和多用途控件&#xff0c;从屏蔽数据输入和内置数据验证到HTML格式化&#xff0c;DevExpress数据编辑库提供了无与伦比的数据编辑选项&#xff0c;包括用于独立数据编辑或用于容器控件(如Grid, TreeList和Ribbon)的单元格。…

第60步 深度学习图像识别:误判病例分析(Pytorch)

基于WIN10的64位系统演示 一、写在前面 上期内容基于Tensorflow环境做了误判病例分析&#xff08;传送门&#xff09;&#xff0c;考虑到不少模型在Tensorflow环境没有迁移学习的预训练模型&#xff0c;因此有必要在Pytorch环境也搞搞误判病例分析。 本期以SqueezeNet模型为…