JavaWeb之面向故事学习

JavaWeb之面向故事学习

前言

由于花太多的时间在算法上,项目完全不了解,再加上学校恶心排课压缩课时,致使毫无项目基础的我听课跟听天书一样。虽然讲清楚了如何写,但我完全不知道“为何写”。

这个专业,如果你不知道“为何写”,即使你写的再多,我认为是和CtrlCV没有区别的。——仲舟

所以写个博客,主要记录学习项目时,各专业术语直接的作业及其关系,将抽象的术语具体化,指明学习方法,既希望便于我的学习,也希望对初学者有所帮助。

我的学习方法:通过在各大 站的学习,对某个不了解的专业术语用近似的术语替换,快速构建自己的认识(当然可能存在错误),再带着目的、面向实体学习,再进行反馈,对认识进行修正。

初次学习项目,有很多不妥之处,还请多多指教!如有任何疑问或建议,欢迎在评论区留言。

什么是Java Web

我一直以为是一个软件,直到上 查了,才知道是用Java技术来解决相关web互联 领域的技术栈。也就是说,在软件方面,javaweb可以算是java、jsp、css、js、servelet、maven等等的统称,下面我将展示我对各专业术语的理解。

前置知识

《C语言》、《数据结构与算法》、《数据库》、《计算机组成原理》、《操作系统》、《Java基础》、《HTML和CSS》

一、前端基础

什么是前端,前端可以理解成 页,又由于之后我们是自己写 页,是一种创造,所以编写 页整个过程可以理解为:为自己的房间装修。
所以,故事从这开始:

页:一个房间
写 页:给房间装修
女主A:20岁,女,软件开花班,是班里有名的 学术妲己 女神,平常没事就是“大佬带我”。
男主B:20岁,男,软件开花班,是班里有名的 舔狗 卷王,他努力学习Javaweb只为让女神参观他装饰的房间。

于是,B开始装修自己的房间。
(故事纯属虚构,请勿对 入座)

显示在浏览器的语言 HTML

如果说,C语言是在控制台上显示,则HTML则是在浏览器上显示的编程语言,如果要写 页,HTML是不可缺少的。
所以,我将其理解成:

HTML:最初是一个空房间,通过写代码增加物件:比如窗口、挂灯等。

HTML效果:

使 页变得有交互能力的 Javascript

交互:即交流互动
如果说,CSS能赋予 页“自动”动画效果,那么Javascirpt则能赋予 页“手动”动画效果。
也就是说:我们希望点击某个位置, 页会发生我想要的变化。
我们可以理解成:输入、处理与输出——某个位置接受反应,处理,回馈反应(比如出现一个弹窗)。
就输入输出来说,像极了C语言,但这次用的是类似Java语言(所以叫Javascript吧控制交互能力。
所以,我将其理解成:

Javascript:让用户控制物件活动,比如让电视能换台。

HTML+CSS+Javascript效果:

接收请求与发送 页 物理服务器

物理服务器负责接收请求与发送 页。
将 页挂在物理服务器上,就能直接访问静态 页了,解决了人工发送方式。

物理服务器:一座空旅馆

B将他的 页挂在了服务器上,于是A访问的过程就变成了这样:

服务程序 Java

空服务器是没有智慧的、无法产生动态 页的。
就像前台只会将现成的房间给顾客参观。
于是B雇佣了一个名为Java的旅馆经理,用以提供不同装饰的房间给用户参观:

Java:旅馆经理
B编写Java程序:B雇佣旅馆经理

B:“想吃什么点!”
……
Java没有任何反应,仿佛饿昏了。
(导演仲舟:你写程序问程序怎么写是吧br> B:“那行吧,我帮你点点。”
于是,遇到了各种问题:

Maven会根据你要的Jar包,会先从本地仓库找是否有这些Jar包以及依赖的Jar包,如果没有,会从 上下载对应版本的Jar包:如上gif

B:欸,我没点奶黄包啊r> Maven:这是配肉包的,不然他吃不下
B:你骗谁不是……
Java:Maven真懂我!就知道我吃肉包要配奶黄!
B:……建议原地结婚

Servlet:旅馆经理
JDBC:旅馆仓库管理员

于是,仲舟旅馆里逐渐形成了一套比较完善的旅馆管理体系:

服务器记录的技术 Session

B觉得Cookie方法不错,于是采用了Cookie技术,直到B发现了这回事——

动态创建 页的技术2.0 JSP

不止用户端使用有不便之处,开发人员开发 页也有不便之处,比如:用Servlet返回动态 页时,需要考虑 页排版、交互等前端工作,而Servlet由后端人员编写,这导致了后端人员的工作量大幅增加。
我们不禁思考:由于HTML是静态的,Java(Servlet)是动态的,而前者专注排版,后者排版麻烦。有没有一种技术,能将Java插入HTML的动态位置,解决上述问题r> 这个技术就是——JSP!
JSP:简化的Servlet设计,在HTML标签中嵌套Java代码,用以高效开发Web应用的动态 页。

JavaWeb之面向故事学习
当接受到访问响应时,会将JSP文件转化为Java(Servlet),再执行Servlet,在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器

与数据库的信息做映射的实体类 JavaBean

有时数据库传过来的数据会有很多属性,单存进数组中肯定是不方便调用的,所以我们需要对传过来的数据进行封装,在Java中就是通过类来实现,我们把对数据库做映射的实体类叫做JavaBean。
有时间再学

过滤器 Filter

有时间再学

监听器

有时间再学

五、项目搭建

上述讲了Javaweb主要技术的作用,如果只是对这些知识有大致了解,甚至没有开始写代码都没关系,到这只要明白了相关专业术语大致的意思就行,目的就是为了理解为什么要做后面的工作。到这里的进度应该就是老师开始敲Java代码的进度了。

部分老师教学本末倒置,边写代码边说作用,好比教我们怎么种田,但我们却不知道种田能得到什么。——仲舟

创建Maven项目

打开IDEA,我们首先要创建Maven项目。
B:不创建不可以吗r> 可以,但是前面提过Maven的作用,如果使用空项目的话,需要自己手动下载jar包,异常麻烦。
(具体怎么创建和配环境找其他教程,这里主要说作用)
Maven的一个特点是:约定大于配置。你配置的文件必须存在其约束的存储位置下才能起作用!
所以就有了一个标准的目录结构,你新建的Maven应长成这样:

所有文件只能基于这种目录放置,之后细分的目录可以随便放,但是一般会这样放:
我将这些文件用途分析之前,先去掉一些没必要的文件——
其中,标“#”的是系统配置文件,我们不需要管,把不管的项目去掉,就成了:

你会发现text的文件和main文件很像,text的文件可以理解成debug的代码,可以先去掉:

pom.xml,写入代码,就是告诉Maven“给我来份豆沙”,他买来的一系列“包子”会放入target中。

剩下的是代码的核心,其中,资源文件往往是放一些后端代码调用的文件,如:properties文件(记录些全局常量,如数据库连接地址)、excel文件(记录些程序数据)、js文件(有时java可能会调用其他的语言)等。我们可以理解为:其他文件夹。
所以我们主要布局工作还是放在java文件和webapp文件下。

webapp目录

先说说前端目录

众所周知,css放css,js放js,img放图片,还能新建其他文件夹,这我不多说。
一般主要的html和jsp文件放在外面。
这里重点说说WEB-INF:

web.xml:告诉容器哪些servlets需要部署,以及URL映射关系。
classes:存放java(标签处理类)。
lib:存放jar,通常存放第三方依赖。

MVC三层架构

欲知后事如何,请听下回分解……

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93818 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月15日
下一篇 2022年9月15日

相关推荐