JavaWeb项目学习教程(1) 准备阶段
写在最前面
为什么要写一个这样的教程?作为一个软件工程专业的学生,上课老师讲得飞快,几乎都是在课后自己消化,我知道学习记录的重要性。我自己本身还有很多很多基础的东西都没有学会,比较博客园的人有很大的差距。而写这个不是要求看的人都遵守我的想法,即使这个教程不会讲多大的概念方面的东西,但也希望你能够在里面学习到一些自己觉得有用的东西,学到一些思维和想法就好了。希望我写的哪些地方有错误的能够指正,谢谢。
我们想用的包括JSP、Servlet、MySql、Tomcat、。当然,前端的“三驾马车”就是更基础的东西了。要知道这些东西。
我的HTTP协议还不算熟悉,大家可以看这个文章学习。http://www.cnblogs.com/ranyonsue/p/5984001.html
一、JSP
JSP的教程在菜鸟教程和W3School上看,JSP可以写HTML代码,也可以在<% %>中写代码。然后和Servlet两者结合起来使用的话,效率很高,而且JSP写的前端代码灵活性很强,当然这里只会说纯JSP和Servlet了,不考虑Vue和AngularJS等这些框架。
我们看一个普通的例子,抛开JSP的已经给我们做好的循环<c:forEach>标签。
假设我们要循环显示很多用户的信息,我们用<table></table>来表示,假设已经获取到ArrayList<User> users;
<table>
<%
for(int i = 0; i < users.size(); i++){
%>
<tr>
<td><%=users.get(i).username() %></td>
<td><%=users.get(i).password() %></td>
</tr>
<%
}
%>
</table>
这样,一个users就能够动态的一行一行的显示用户名和密码的信息。这就是结合起来用带来的优势,总而言之,JSP就是HTML文件,只是可以写Java进去。
二、Servlet
说实话,最开始学习Servlet和JSP的那会儿进了实验室,学习的几乎没有懂,那会儿大一,有很多东西都不了解,后来记得检查的时候,我也是写了一个漂漂亮亮的HTML的界面,然后实现的功能基本没实现,处理业务等的信息全部都在JSP中实现了。实在惭愧,后来做项目的时候,慢慢地才把这些学到了。
那什么是Servlet呢?如果想很深的了解的话就多看博客,然后看看他们的讲解就好了。这里我的解释就是Servlet就是一种中间的东西,当我们需要把自己本地的服务器和Web浏览器相连接的时候,Servlet就起作用了。同时,我们最常用的就是Servlet获取form表单所传递过来的数据。
举个例子,我们想要实现登陆功能,首先从JSP中传入用户名和密码,然后再在Servlet中进行处理。为什么要在Servlet中处理呢?其实可以选择在JSP中直接获取很多很多信息的,但是HTML代码始终时HTML代码,插入HTML不仅仅会影响效率,还给程序员在修改和维护代码的时候找麻烦。
<form action="Login" method="post">
<input type="text" name="username" />
<input type="text" name="password" />
<input type="submit" value="login" />
</form>
比如这个,使用的时候,在action中填写路由的地址,这里指向Login的Servlet。method="post"则是以Post方法向Servlet传递。这里一般采取Post或者Get方法,两者有什么区别呢?假设我们填入用户名:admin 密码:admin。
Get:http://localhost:8080/项目名称/Login?username=admin&password=admin
Post: http://localhost:8080/项目名称/Login
不难发现,Get和Post的差别是很大的,至少在路由上,Get将用户名和密码都显示了,这是很不安全的,Post则不显示,所以这里采用Post更加可靠。当然,Get和Post不仅仅只是显示不显示的不同,它们在请求的大小也是不一样的。
三、MySql
数据库,很多人都在说数据库数据库,数据库是什么呢?MySql就是一种数据库,它是关系型数据库,简单来说,两个表之间想产生联系的话,是通过字段之间的关系。人的一生要产生很多数据,但我们不会把所有的信息都保存在一张很大很大的表里面,这样速度会极大降低......于是我们把一些信息建在多个表里面,两个表通过一个相同的字段进行联系,这样两个表就有关系了。和结婚一样的,两个人本身没有什么联系,是属于两个户口本上的,而假如放在一个户口本上,就是一家人了是吧。
那我们需要知道MySql的什么呢?学会怎么使用和书写Sql语句,并且分清楚,MySql和Navicat之间有什么区别,又有什么联系。如何书写MySql语句,这些都是最基础的,我只需要讲怎么构建一个简单的项目好啦。
如果我们安装了MySql,那我们就有了可以操作的数据库了。我们可以在下载好的MySql的控制台增删改查,当然如果每次都仅仅是使用命令行进行操作的话,至少我是觉得有些难受的。于是就想,怎么样才能让MySql的数据显示的更加直观,更好操作呢?于是Navicat就来了,它帮我们简化了管理数据库的操作。所以,Navicat不是数据库,它仅仅是管理数据库的一个工具,它帮助我们直观的看到数据库的内容和图形化界面,而严格来说,不使用Navicat项目一样可以链接数据库。他们之间的关系,就如同Linux系统和Linux的图形化界面,要的就是方便。
四、Tomcat
我们必须要它,不然我们不能运行项目!Tomcat可谓是Servlet和JSP项目最漂亮的Web服务器了。我们需要将项目显示在浏览器上,所以Tomcat就可以把我们的项目装在里面,然后运行起来,发布到自己电脑的本地服务器上,这样我们就可以直接直观的看到自己所写的内容了。
五、总结
学会使用这些,就很好了。
当然,有时候最开始还是很懵而搞不清他们之间的关系,要想构建一个简单的项目,他们缺一不可。JSP和Servlet就是要写的代码,MySql就是要用的数据库,Tomcat就是把我们的项目发布的东西。如果准备好了开始做一个小的项目,调试好了所有的配置,就再看接下来的一篇文章就好了。
JavaWeb项目学习教程(1) 准备阶段的更多相关文章
- JavaWeb项目学习教程(2) 系统数据库设计
最开始本来想写一个管理系统,因为考虑到期末来临,我女朋友就可以看着教程然后学一些东西,然后可以自己慢慢手敲代码.但无奈自己也太懒,两个月过后,我才开始继续写这个博客,而现在我都已经开学了.不过博客还是 ...
- Linux服务器部署JavaWeb项目完整教程
本文大部分参考网上其他教程,是实际操作后回过头来的一些总结,希望可以对正在部署项目的你有所帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 安装JDK yum ...
- 从javaweb项目学习
1.sql语句 在insert语句中需要插入查询出来的值. Insert into a (a1,a2,a3) values (1,select num from b where id=1,3) 这样写 ...
- redhat7学习笔记之从零到部署javaweb项目
REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...
- Github点赞超多的Spring Boot学习教程+实战项目推荐!
Github点赞接近 100k 的Spring Boot学习教程+实战项目推荐! 很明显的一个现象,除了一些老项目,现在 Java 后端项目基本都是基于 Spring Boot 进行开发,毕竟它这 ...
- maven学习(八)——使用maven创建javaweb项目
构建JavaWeb项目 1.创建JavaWeb项目 1.使用mvn archetype:generate命令,如下所示: mvn archetype:generate -DgroupId=com.my ...
- IDEA实用教程(八)—— 创建JavaWeb项目
七. 创建JavaWeb项目 创建工程 1) 第一步 2) 第二步 3) 第三步 如果要修改JavaEE版本,请根据下图所示进行修改 4) 第四步 2. 发布工程 1) 第一步 2) 第二步 3) 第 ...
- 《从零玩转JavaWeb+项目实战》-系列课堂录制计划
点击试听课程 前言 很多自学编程的同学经常和我说想学一门语言自己到网上找一些教程看到一半就像背单词背到ambulance一样坚持不下去了....究其原因基本上都是:内容太多,太枯燥,专业术语听不懂,学 ...
- JavaWeb项目之多条件过滤
相信很多同学在学习java基础之后,面对各种项目还是相当头疼,那今天我将手把手教你学会JavaWeb项目中的多条件过滤,希望你能在与我实战的过程中积累经验,更进一步. 分页查询 需求分析:在列表页面中 ...
随机推荐
- Spring Boot 集成 thymeleaf 模版引擎
Spring Boot 建议使用 HTML 来完成动态页面.Spring Boot 提供了大量的模版引擎,包括 Thymeleaf.FreeMarker.Velocity等. Spring Boot ...
- 将替代ListView的RecyclerView 的使用(一)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/by317966834/article/details/36205923 RecyclerView 是 ...
- 死磕nginx系列--使用upsync模块实现负载均衡
问题描述 nginx reload是有一定损耗的,如果你使用的是长连接的话,那么当reload nginx时长连接所有的worker进程会进行优雅退出,并当该worker进程上的所有连接都释放时,进程 ...
- Netty入门(十)解码分隔符和基于长度的协议
我们需要区分不同帧的首尾,通常需要在结尾设定特定分隔符或者在首部添加长度字段,分别称为分隔符协议和基于长度的协议,本节讲解 Netty 如何解码这些协议. 一.分隔符协议 Netty 附带的解码器可以 ...
- BZOJ5415:[NOI2018]归程(可持久化并查集,最短路)
Description Input Output Sample Input1 14 31 2 50 12 3 100 23 4 50 15 0 23 02 14 13 13 2 Sample Outp ...
- [SQL123] Oracle SQL 统计一定时间间隔内的数据
--Group by State_ts "per X minutes"select to_char(state_ts, 'hh24')||':'||floor(to_char(st ...
- Docker技术入门与实战 第二版-学习笔记-10-Docker Machine 项目-2-driver
1>使用的driver 1〉generic 使用带有SSH的现有VM/主机创建机器. 如果你使用的是机器不直接支持的provider,或者希望导入现有主机以允许Docker Machine进行管 ...
- RMAN常用命令汇总!
进入RMAN:$ rman target sys/oracle@orcl --远程连接到rman$ rman target sys/oracle@orcl @backup_db.ram --远 ...
- std::lexicographical_compare函数的使用
按照词典序比较前者是否小于后者. 当序列<first1, last1>按照字典序比较小于后者序列<first2, last2>,则返回true.否则,返回false. 所谓字典 ...
- SpringMVC原理&MVC设计思想
什么是MVC? MVC是一种架构模式 --- 程序分层,分工合作,既相互独立,又协同工作 MVC是一种思考方式 --- 需要将什么信息展示给用户? 如何布局? 调用哪些业务逻辑? MVC流程图如下图所 ...