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应用的动态 页。

当接受到访问响应时,会将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进行处理,非常感谢!