网站中文名,如何做二手车网站,好的手机网站建设公司,横岗网站建设公司这篇简单介绍一些入门的有关项目和行业的知识#xff0c;并带着实现一个小项目。便于已经编程入门的各位准备进阶到下一个阶段。 先大致地介绍#xff0c;一个完整的项目(不看客户端、服务端的分类)基本可以划分为三部分#xff1a;
1.前端。比如你现在看到的CSDN页面就是一… 这篇简单介绍一些入门的有关项目和行业的知识并带着实现一个小项目。便于已经编程入门的各位准备进阶到下一个阶段。 先大致地介绍一个完整的项目(不看客户端、服务端的分类)基本可以划分为三部分
1.前端。比如你现在看到的CSDN页面就是一个前端页面。前端的作用是负责与用户交互即将项目的数据以人性化的形式展示给用户并收集用户的各种操作信息和输入信息返回给后端进行相应的事件流程。
2.后端。初学编程时你写的print(Hello World)那个就是后端部分不过这个还不够准确。比如int a 0;b a - 1;这种有事件流程的就是一个项目的后端部分。后端的作用是根据编程好的程序处理与其对应的数据和请求。
3.数据库。数据库就是字面意思它存储数据的仓库。学习阶段哪怕是毕业设计项目的工程量可能全用内存也足够但正式的项目中数据量会非常非常大就像你现在浏览的CSDN如此多篇文章大量的文字和图片信息显然内存是不可完成这些存储的。而且也不可能用内存因为现在的内存就是设计给运行时使用的不适合存储(感兴趣可以查询cpu和内存空间硬件层运行逻辑的资料)。
简介
前端 前端常见的有web页面。常见的分包有 css、js、image、video、WEB_INF等等。 css的专门存储css样式文件的包、js则是存储JavaScript脚本文件的包、image和video则是存储图片和视频而WEB-INF则是存储不可直接访问的前端资源有页面资源和配置信息(比如web.xml)。 下面是一个示例: 当然这个不太规范通常情况下css等资源会放在WEB_INF或用其他方式避免被用户直接访问 。放在WEB-INF下的资源用户只能通过页面引入或请求转发等方式来访问。 后端 后端常见的有使用Java、C进行编写。 Java面向对象是以C、C为基础的语言主要是用来写业务的。而C、C则是面向过程不像java那样底层上没那么多弯弯绕绕。 同样的一个事件C处理完通常比Java快30%。所以Java一般用于各种项目中编写业务而C则是用于各种电子机器设备(比如洗衣机)的硬件编程包括各种大型游戏都是用C写的。 这里稍微提一嘴python我的一名从业人员的导师(导师只是我对他的敬称)的说法是python主要还是担任一种插件一样的角色在爬虫、人工智能这些领域上很合适但是总体的还是干不过Java和C如果是想进入这个行业那么不要先学python。之所以提是因为我个人最近看到许多python培训课程口号是学了...就...这种怕有同志走了弯路。当然只是兴趣或者其他的便不用担心了注意法律就好。 然后介绍一下java后端的常见分包。java后端常见的分包有service、dao、util、config、entity、constant、exception。
service存放各种业务代码通常为service根据业务的种类划分每个种类的业务开一个接口分装然后在service下再开一个impl包实现每个接口的方法。
dao存放访问数据库的代码Java用的连接数据库的技术是JDBC获取连接的工具类不放在dao包而是放在util包下。与service包一样包下会根据操作数据的相关内容分类成一个个接口然后在dao包下再开一个impl包实现这些接口。
config存放后端要使用的各种配置文件。比如.xml文件。
constant存放各种常量、变量的包。这些一般是运行时才加载到内存中。
util存放各种工具类的包。比如刚刚讲到的JDBC获取连接的工具类另外像jdk里面的Math类这些就是工具类用于完成某种功能。
entity存放各种实体类。这些类一般用来进行数据的封装比如学生类、用户类封装姓名、id、性别这些信息来进行数据的传递(只在后端中使用前端无法直接解析这些开发人员自定义的实体类)。
controller与前端连接的包通常存放各种servlet等请求响应类。在Tomcat服务器搭建的项目中又常命名为servlet包。 数据库 学习阶段基本上就是使用MySQL了。常见的数据库还有很多功能最为强大的现在是Oracle数据库当然它是收费的而且很贵(进入行业后正式的商业工程是肯定不能用破解版的这属于侵权行为也能查到的当然这种侵权你不商用也不会找你麻烦)。 还有很多:DB2、SQL Server、Sybase等等。
前端连接后端 前端连接后端常见的技术有AJAX、WebSocket等等。当然这些是进阶一点的Tomcat服务器提供的基础技术为Servlet。AJAX就是在servlet基础上异步交互的技术。使用详情可以看我的Servlet使用文章。
后端连接数据库 后端连接数据库Java用的技术为JDBC。不管是哪个语言一般该语言的开发公司会提供一个统一的数据库对接该编程语言的标准由每个数据库的开发公司根据这个标准提供自己的数据库驱动。这篇文章我使用Java和JDBC详情可以看我的文章JDBC使用。 项目入门 这里我们一步一步写一个简单的登录功能。 首先我们先编辑前端页面资源 % page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/titlelink href
/head
bodydiva hrefWEB-INF/jsp/login.jsph1点我进行登录/h1/a/div
/body
/html 大家可以先试一试然后就会发现访问不了login.jsp报404错误。 这是因为Tomcat是不允许用户通过URL直接访问WEB-INF下的任何资源的。我们想要访问只能通过servlet转发或页面包含的形式来进行访问。这里我们使用请求转发为了美观我们使用Post请求。 为了易于理解我这里改为使用form表单。其中action设置Servlet的URLmethod设置请求方式。给表单添加一个按钮将属性设置为submit用于发出请求。
修改后的jsp页面:
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/titlelink href
/head
bodydivform action/toLogin methodpostbutton typesubmith1点我进行登录/h1/button/form/div
/body 到了servlet这里我们就可以直接使用路径来访问WEB-INF下的login.jsp了。
对应的Servlet文件:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;WebServlet(/toLogin)
public class toLoginServlet extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getRequestDispatcher(/WEB-INF/jsp/login.jsp).forward(req, resp);}
}
这个时候我们就可以成功打开login页面了。 前面提到过了Servlet就已经是Java代码了可以访问Java代码资源并与之互动。 转到登录页面之后前端连后端的流程基本一致。我们直接从发出请求到Servlet后开始讲。
先给出项目完整的结构图: 完整的登录事件流程: 在LoginServlet处我们访问service下的LoginImpl调用其中的boolean login(String username,String password)方法。 然后LoginImpl调用dao包传入参数username查询数据库中的数据。 在dao包的LoginDaoImpl中调用相关方法访问数据库如果存在用户名为username的用户将该用户的信息打包返回LoginImpl。 LoginImpl进行业务判断如果密码正确则返回true给servlet如果密码错误或者用户不存在都返回false。 这是一个完整的登录流程。补充两点
1.其中dao包中的SQL语句应该存放在/src/constant包里面这里我写的时候忘记了直接写在了dao包里面这样的编程并不规范。
2. 对比用户信息也就是判断密码是否正确应当由service包来完成dao包只用专注于自己的访问数据库就好。可能会有伙伴绝对多余是因为这里只有一个登录的判断。实际中会访问的用户数据不止这一点甚至用户的账户信息(账号、密码等)和个人信息(出生日期、姓名性别等)会专门分成两个表进行存储。 本文原意便是希望帮助后来的伙伴了解编程规范所以进行了两点补充当然本文也只做一个简单参考。往后的开发中会逐渐使用各种框架由开源的也有公司自己私有的业务需求有时候分包也会有很多不同但大体上都会遵循前端、后端、Dao包 三大块。
示例项目的完整文件下载回文章开头处。