一篇文章指明做JavaWeb项目需要的前置知识+完整项目初解读(萌新必看,十分友好)

前言

过了web这个阶段了,项目也完成了的我想给各位后来者总结一下我整个项目从开始到结束的经验,当然,也不是一帆风顺,报错有时候折磨的要死,废话不多说,现在就开始吧。
本文一共分为两个部分:纯理论科普和对一个完整项目的解读。

一.web前置知识(纯理论,如已知可跳到详细项目解读)

1.涉及知识

1)前端部分

技术总结:http,css,JavaScript,jquery,Ajax等
框架总结:bootstrap,VUE等
说白了,如果一个后端人不太能写出像样的页面,最好就是套模板,然后根据自己学到的知识去改里面的数值,就这样已经不错了。
但是上面的东西一定要了解!!!

2)后端部分

技术总结:java基础,jsp(逐渐没啥用),servlet,tomcat等
框架总结:(够卷可以学)MyBatis,spring等
毕竟萌新,我觉得框架应该大多数人都不会这时候去了解,能把上面的东西全搞懂而已写出一个玩不坏的系统以及很不错了。

3)数据库

技术总结:MySQL,Oracle等
工具:Navicat(可视化数据库管理工具)
起码要会基本的sql语句吧,业务逻辑复杂的时候可能需要多表查询,需要一定基础。

2.个人体会

1)分包

在我写自己的项目之前,我研究了一个学长写的web项目源码一段时间,从中得到了不少感悟
在此我给大家分享一下他的分包:
fenbao
不知道你们看不看得懂这些包的含义,没关系,接下来我会解读,并给出自己的分包,初学者不需要像他分的这么细。

2)程序亮点

学长这个web项目一眼望过去,全是注解!!!
annotation
通篇都在“玩注解”,这是一种很省事的写程序方法,但是看起来老费劲了,我读了挺久才搞明白他整个项目的运行逻辑的
没错,我真正想向你们说明的一点是:要学好反射!!!!!!
等你学通反射就知道这东西多好用了。

二.解读项目篇

1.jar包

1)要用什么,就导入什么

先想好自己会用到什么包,比如用不用数据库连接池?用不用log4j?等等…
但是基本的tomcat,mysql-connection包都得提前想好。

libs
这是我用到的包,可以作为参考,不懂的可以去百度下作用

2)项目结构

src目录下:
src
先说一个结论,这是经典的三层架构:
controller-》service-》dao
它们分别代表着:控制层,服务层,持久层
控制层:假如你开发了一个网站,再如果将“用户输入用户名密码后点击登录”这一类行为称为“用户的请求”,那么控制层就是专门用来接收这些请求的。
服务层:它负责“业务逻辑”,可以简单理解为一个中转站,用来接收控制层的请求并调用持久层。
持久层:换句话就是数据操作层,这个包内的所有方法都用来与数据库进行交互,如“增删改查”操作。

entity:这是实体类,对应着数据库的表
filter:过滤器
utils:工具类
druid.properties:本项目用了druid数据库连接池,这是其配置文件。

=====================================================================

web目录下:
web
admin:这是一个商城系统,admin包下的全是后台管理的页面,比如增加商品,管理职员等。
css:顾名思义,放置css资源。
error:错误页面,万恶的404,500页面等。
yh:银行的意思,里面存放着每个银行的logo,均为gif。
之后的不一个一个地介绍了,顾名可思义

尾声

之前连架构,建包都不懂的我,虽然空有一点浅薄知识,但是没有研究过完整项目,一直对项目有着云里雾里的概念,虽然没有涉及实际操作,但我接下来会发表一篇较为完整的,从零开始的web项目教程,请多支持,谢谢

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

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

相关文章

HashMap 实现原理

转载自 HashMap 实现原理HashMap是常考点,而一般不问List的几个实现类(偏简单)。以下基于JDK1.8.0_102分析。 内部存储 HashMap的内部存储是一个数组(bucket),数组的元素Node实现了是Map.Entry接口(hash, key, value, next)&#…

mybatis-启动源码分析

【1】测试用例 mybatis-config.xml <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configurat…

git 合并冲突_git分支管理的策略和冲突问题

备注&#xff1a;知识点关于分支中的冲突分支管理的策略分支策略备注&#xff1a;本文参考于廖雪峰老师的博客Git教程。依照其博客进行学习和记录&#xff0c;感谢其无私分享&#xff0c;也欢迎各位查看原文。知识点git log --graph --prettyoneline --abbrev-commit查看分支合…

mysql duplicate key与replace into对比

【REDME】 有些业务场景如下&#xff1a; 对于数据已经存在的&#xff0c;则更新&#xff1b;否则新增&#xff1b; 怎么判定数据已经存在&#xff0c;通过主键或唯一索引来判断&#xff1b; 业务场景&#xff1a;业务库的全局参数表的参数值的新增或更新就是 有则更细无则…

基于springboot+vue的前后端分离商城系统

springboot前后端分离商城 介绍 springboot前后端分离商城 本项目由本人根据教程实现的一个springboot项目&#xff0c;基本已实现项目&#xff0c;但是本人希望加入自己的小功能&#xff0c; 请期待下一次的更新~ 教程地址&#xff1a;教程 软件架构 软件架构说明: 本项目…

Java 8 HashMap键与Comparable接口

转载自 Java 8 HashMap键与Comparable接口 这篇文章主要介绍了 Java 8 在 HashMap 哈希冲突处理方面的新特性。 相对之前的版本&#xff0c;Java 8 在许多方面有了提升。其中有很多类被更新了&#xff0c;HashMap 作为最常使用的集合类之一也不例外。这篇文章将介绍 Java 8 中…

hash地址_一致性Hash在负载均衡中的应用

作者&#xff1a;marklux原文&#xff1a;http://marklux.cn/blog/90简介一致性Hash是一种特殊的Hash算法&#xff0c;由于其均衡性、持久性的映射特点&#xff0c;被广泛的应用于负载均衡领域&#xff0c;如nginx和memcached都采用了一致性Hash来作为集群负载均衡的方案。本文…

(转)linux上nginx源码编译安装

亲测有效&#xff1b; 转&#xff1a; https://segmentfault.com/a/1190000007116797https://segmentfault.com/a/1190000007116797 nginx服务器详细安装过程&#xff08;使用yum 和 源码包两种安装方式&#xff0c;并说明其区别&#xff09; 正在上传…重新上传取消​fuyi…

牛客网JAVA专项联系共899题--个人记录学习经历

总览 共刷900题 其中也有许多知识点是未曾涉足的&#xff0c;但大部分还是java的基础。 基本数据 正确题数&#xff1a;正确率百分之67&#xff0c;即&#xff1a;对了603题&#xff1b; 时间&#xff1a;5天&#xff08;每天4小时左右&#xff09; 错题&#xff1a; 收藏数…

ffmpeg中文开发手册_快速调用复杂命令,支持中文注释,命令行备忘工具navi两天就火了...

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI刚学的一句新命令&#xff0c;才用完就忘了用法&#xff1f;通常情况下&#xff0c;命令后加一句—help就行了。但是&#xff0c;命令的帮助文档往往内容太太太太多了&#xff0c;在里面找到自己关心的部分实在太难了。查找出来的…

用python绘制图形_使用Python的turtle画炫酷图形

例子一&#xff1a; import turtle t turtle.Pen() turtle.bgcolor("black") sides6 colors["red","yellow","green","blue","orange","purple"] for x in xrang(360): t.pencolor(colors[x%sides]) t…

leetcode初级算法1.删除排序数组中的重复项

leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录&#xff0c;不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nums) {int n nums.length;if (n 0) {return 0;}int fast 1, slow 1;while (fast < n) {if (nums[fast] ! num…

(转)mybatis热部署加载*Mapper.xml文件,手动刷新*Mapper.xml文件

转自&#xff1a; https://blog.csdn.net/LOVELONG8808/article/details/78738086 由于项目已经发布到线上&#xff0c;要是修改一个Mapper.xml文件的话&#xff0c;需要重启整个服务&#xff0c;这个是很耗时间的&#xff0c;而且在一段时间内导致服务不可用&#xff0c;严重…

图解HashMap和HashSet的内部工作机制

转载自 图解HashMap和HashSet的内部工作机制HashMap 和 HashSet 内部是如何工作的&#xff1f;散列函数&#xff08;hashing function&#xff09;是什么&#xff1f; HashMap 不仅是一个常用的数据结构&#xff0c;在面试中也是热门话题。 Q1. HashMap 如何存储数据&#xff1…

window location href 手机端无法跳转_Window对象在前端领域的角色

特殊的window提起window&#xff0c;在网页当中很常见&#xff0c;比如像这样&#xff1a;window.onloadfunction(){ //执行函数体 }这段代码的意思是当网页内容加载完成后要做什么。在js的领域&#xff0c;window对象有着双重角色&#xff0c;既是用来访问浏览器窗口的接口&am…

leetcode初级算法2.旋转数组

leecode初级算法2.旋转数组 仅为个人刷题记录&#xff0c;不提供解题思路 题解与收获 我自己的解法&#xff1a; public static void rotate(int[] nums, int k) {int move k % nums.length;Stack<Integer> stack new Stack<>();if(move 0){return;}else {f…

java运行环境变量及自定义变量

【README】 本文主要介绍java运行环境变量的获取&#xff0c;如何读取 env.properties 文件并将自定义变量写入到系统变量&#xff1b; 【1】System.getenv() 获取环境变量 public static void main1() {Map<String, String> envMap System.getenv();envMap.entrySet(…

Java HashSet和HashMap源码剖析

转载自 Java HashSet和HashMap源码剖析总体介绍 之所以把HashSet和HashMap放在一起讲解&#xff0c;是因为二者在Java里有着相同的实现&#xff0c;前者仅仅是对后者做了一层包装&#xff0c;也就是说HashSet里面有一个HashMap&#xff08;适配器模式&#xff09;。因此本文将重…

怎么把页面按比例缩小_meta viewport 是做什么用的,怎么写?

前置知识&#xff08;有助于viewport的理解&#xff09;李明&#xff1a;设备像素、设备独立像素、CSS像素、分辨率、PPI、devicePixelRatio​zhuanlan.zhihu.com移动端的问题屏幕窄&#xff0c;一般来说设备独立像素不超过400px。比如把网站侧边栏宽度设置为10%&#xff0c;这…

(转)java动态代理与aop

转自&#xff1a; Java 动态代理与AOP - 如果的事 - 博客园动态代理与AOP 代理模式 代理模式给某一个目标对象(target)提供代理对象(proxy)&#xff0c;并由代理对象控制对target对象的引用。 模式图&#xff1a; 代理模式中的角色有&#xff1a; 抽象对象角色(Abstrachttps://…