准备

  1. JDK       (配置JDK_HOME\bin   和 CLASSPATH)   注:JDK8下载已经需要注册了,请使用JDK11(现在是官方长期支持的版本)     对于我们新手来说,JDK11的门槛更多在于:JDK9以来更新的module管理。 但是对module配置方面陌生不应该是守旧的原因,请看: JDK8过渡到JDK11
  2. Tomcat  (需要配置CATALINA_HOME,并为servlet配置CLASSPATH   %CATALINA_HOME%\lib\servlet-api.jar)

        有关环境配置的知识:   JAVA SE11环境变量配置(Windows)        Java中设置环境变量CLASSPATH的意义

  3. 熟悉IDEA最基本操作: IDEA为新手专业打造

  4. HttpServlet 详解(基础)

 遇到的坑:

三 级标题

四 级标题

  1. Java Web项目中解决中文乱码方法总结
  2. IDEA 在同一目录创建多个项目
  3. 解决 IDEA 部署 Tomcat 时,输出路径没有静态资源 :idea输出文件夹没有jsp页面
  4. servlet的url-pattern匹配规则详细描述

原理了解

  1. HTTP协议详解 - 小坦克 - 博客园   (建议看完他的HTTP专题)    [get是requset的一种]

    Python | 解析pcap文件分析HTTP Request/Response报文 | 小武的博客

  2. HTML from 表单提交请求到servlet 实例

    Http响应Response详解 - 勇敢的心 - CSDN博客

                   利用HTML的表单get提交功能,后台Servlet处理request / response

    [response就是平时HTTP把html文件“送”到浏览器的方式

    抓包中看到的各种元素

    servlet的本质是什么,它是如何工作的? - 知乎

  3. JSP与servlet的关系:javaweb学习总结(十四)——JSP原理

           既然开发Java Web项目,那就默认会HTML开发了

  4. JSON教程导读

                  事实上关于网页的语言学习都可以看一下国内两个W3cschool网站

 如果想抓包一下,可以用现代浏览器如Chrome Firefox打开一个网页,然后F12开发者工具 - NetWork 勾上“”Preserve log”,F5刷新一下,可以看到一堆文件,随便点一个,点击Header或Response


开始

首先按如下方法创建JavaEE Web Application项目

Intellij idea创建javaWeb以及Servlet简单实现 - yhao2014的专栏 - CSDN博客

Ps.记得让防火墙放过IntelliJ idea,Idea的代码提示错误是在右侧边栏,没有窗口的...

(如果Application Server选项里没有Tomcat,可以点击旁边的NEW   选择Tomcat Server,然后JIDEA会自动识别你的环境变量)

附:Tomcat 9.0.X 控制台乱码最优解决方案

然后开始代码实现

如果只改动了资源文件,需要刷新Tomcat

在InteliJ Idea里运行Servlet有个坑,

事实上调试栏上的开始是使用Tomcat 8080端口,这个会使得web.xml生效

而浏览器那一栏是单元测试,是用来测试网页的,修改html后刷新就会生效,和Tomcat无关。默认是使用InteliJ Idea的服务器,不会使用你的web.xml.........

(建议,网页编辑部分用VSCode+Live Server插件,保存即可自动刷新预览)

Ps. 如果修改了 web.xml ,则需要Redeploy重新部署    (直接Update classes and resources是没用的,毕竟Tomcat说了算)

另外,我做了一个示例(JDK11 Tomcat9)

度盘链接: https://pan.baidu.com/s/1smw_cTgQXvV8NkB9HaHtOQ

(由于太小,放github浪费,就丢网盘了)提取码: tasz

稍微深入地理解一下Servlet:Java Web(一) Servlet详解!!   [非常重要]

如果看不懂,请看此处解释:

其实就是利用HTML的<form>表单功能:
填写完HTML表单点击“登录”或“取消”(其实我偷懒,所以取消和登录功能写一样了)
然后就会触发表单的submit,这时通知浏览器发送表单内容
其实就是使用表单指定的方法(这里是GET)发送,其实和你直接浏览器访问http://localhost/Login?username=a&password=2
是一样的然后作为 实现了Servlet和Web等功能的服务器Tomcat,Tomcat 就会按照WEB.xml里描述的去拦截Login这个路径并转由 LoginServlet 这个类处理,这样就使得LoginServlet类并启动并执行。之后LoginServlet类就接收Request,根据函数体定义处理,最后发回Response
然后浏览器收到了Response注:Response可以是一个HTML资源,也可以是其他的,最后浏览器根据Response来生成并显示网页内容


逐渐增加功能

1, 使用AJAX技术动态加载内容

我参考了:http://www.w3school.com.cn/ajax/index.asp  短短几页,请务必看完

当然,目前还有一种新技术Fetch可以用

 1 function loadXMLDoc() {
 2     var xmlhttp = new XMLHttpRequest();
 3     console.log("Good");
 4     xmlhttp.open("GET","Login?username=Bill&passwd=jkkdsf",true);
 5     xmlhttp.send();
 6
 7     xmlhttp.onreadystatechange=function() {         /*必须先判断状态*/
 8         if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
 9             document.getElementById("datalist").innerHTML = xmlhttp.responseText;
10         }
11     }
12
13 }

ajax-demo.js

<!--               </form>标签后面                       --><div id="datalist"></div><!--    JS部分放在后面,便于页面内容更快加载展示   --><script src="script/ajax-demo.js"></script><!---              </body>之前                              -->

index.html改动部分

由于JS里的get内容是错误的用户名密码,所以LoginServlet类会转发LoginError.html的所有内容到浏览器,

然后JS把response的Text内容都写到id为datalist的元素里

效果(非常粗暴的把LoginError.html全部加载进来了,但是去掉了一些html标签,我猜测是 浏览器自动去掉的)

由此可见,我们可以轻轻松松地用 JDBC  Servlet  AJAX 来做一个动态加载数据库内容的Java Web项目

稍微深入理解一下Servlet

安全方面(web.xml分角色权限)

java - 使用一个JDBC领域,Glassfish 3安全- 基于表单 认证

使用JDBC读写数据库与网页交互

jsp+servlet+jdbc实现表单提交

JSP+Servlet+JDBC+MySQL实现表单生成

将JDBC ResultSet解析为JSON格式

由于我要做管理员界面,所以不考虑SEO,因此全部前后端分离

关于前后端分离:JavaWeb项目为什么我们要放弃jsp?为什么要前后端解耦?为什么要前后端分离?2.0版,为分布式架构打基础。

前后端分离后对http地址路径的处理:用nginx的反向代理机制解决前端跨域问题


资料区

非常好非常基础的JavaWeb入门教程(Servlet JSP SSH SSM都讲到了):https://skyline75489.github.io/Heart-First-JavaWeb/

通过浏览器打开网页的底层故事:What-happens-when 的中文翻译

JS函数式编程学习:https://skyline75489.github.io/learnrx-zh-cn/

AJAX读取JSON的思路和AJAX读取XML差不多
[感想]原来XML和HTML相近的好处:用JS处理时,调用方法一样 如getElementsByTagName("TITLE");


[计划(不存在的,永久搁置)]

  1. 初步前后端分离,利用JSON传递内容,js处理JSON并修改HTML    (JSON是传递数据的一种格式,比XML简洁高效)
  2. 再继续分离,静态页面交给Nginx(性能好),动态交给Tomcat。    [这个只要让Nginx指定某个路径交给Tomcat就行,权限方面由web.xml配置控制]
  3. 单点登录SSO
  4. 后续会逐步采用Maven、SSM+SpringBoot
  5. 甚至使用nodejs / node-fetch处理JSON

<待写内容>

介绍MVC等抽象模型概念 从Script到Code Blocks、Code Behind到MVC、MVP、MVVM

  框架 架构 设计模式的区别:  架构、框架和设计模式关系

    【架构】 简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用。

【框架】 软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架不是现成可用的应用系统。而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统。

【设计模式】 是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,它强调的是一个设计问题的解决方法。
-------------   lfsf802

JSON

<待了解概念>

Java设计模式

设计模式

转载于:https://www.cnblogs.com/yucloud/p/10904129.html

使用Intellij idea新建Java Web项目(servlet) 原理及初步使用相关推荐

  1. IntelliJ IDEA中新建JAVA WEB项目、maven项目

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 在IntelliJ IDEA 中新建一个Web应用项目. 1. 在主界面顶部菜单栏依次"F ...

  2. IntelliJ IDEA 创建Java Web项目

    1. 创建Web项目 可以先阅读 IntelliJ IDEA 的安装和使用教程 注意:IntelliJ IDEA 中 Project 和 Module 的概念及区别 创建完成后点击Import Cha ...

  3. jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...

    java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...

  4. 图文具体解释 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文具体解释 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...

  5. Idea创建简单Java Web项目并部署Servlet

    1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...

  6. Java Web 项目入门指南(http、Servlet、Request、Response、ServletContext、会话技术[cookie、session]、Filter、Listener)

    概述 web 服务器.项目.资源概述 web 服务器:可以被浏览器访问到的服务器 常见的 web 服务器: tomcat:中小型的服务器软件,免费开源,支持 JSP 和 Servlet apache ...

  7. 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文详解 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目.    2.设置 GAV 坐标  ...

  8. IntelliJ IDEA 12创建Maven管理的Java Web项目(图解)

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要使用图解介绍了使用IntelliJIDEA 12创建Maven管理的Java Web项目的过程. 本文PDF文档下载地 ...

  9. IntelliJ IDEA 中的Java Web项目的资源文件复制新增如何更新到部署包中?

    文章目录 resources目录下的文件复制新增 webapp目录的文件复制新增 IntelliJ IDEA 中的Java Web项目的资源文件如果复制新增,正常的重新部署.重启服务器.update ...

最新文章

  1. 网络管理员&MCSE2003之12: 第8章 应用管理模板和审核策略
  2. python2.7读汉字的时候出现乱码,如何解决
  3. 使用 Carla 和 Python 的自动驾驶汽车第 4 部分 —— 强化学习代理
  4. c++面向对象高级编程 学习五 组合、委托与继承
  5. vb.net 判断是否为ip 正则_什么是个人IP科学定位?标准答案来了|ip|直播|科学|ip魔方...
  6. 企业千人千面管理模式_一汽解放青岛汽车有限公司荣获“2020(第十六届)中国企业教育先进单位百强”...
  7. python爬取百度街景图像
  8. 二值化网络的发展——从原始BNN到MeliusNet
  9. 中国睫毛生长液行业市场供需与战略研究报告
  10. 2021年最新友价商城源码 优化实名认证模块 19套PC模板2套手机模板 服务市场 任务大厅
  11. 【ARM汇编】stmfd sp!, {r0-r3, lr}
  12. 撰写论文时常用的研究方法有哪些?
  13. vmware搭建多台虚拟机-桥接模式
  14. 想了解机器学习?这 3 种算法你必须要知道(中英文对照)
  15. JATG篇(1)——FT2232H入门
  16. 8. 【gRPC系列学习】resetTransport建立TCP连接流程
  17. linux考试不及格反思100字,考试不好的检讨书100字(精选7篇)
  18. cocos creator2.4.4 英文卡牌游戏源码H5+安卓+IOS三端源码
  19. Chrome 浏览器全球大翻车?让 20 多亿用户无网可上
  20. 抖音无水印视频爬虫(二)——爬虫的实现

热门文章

  1. html5自动生成图片,HTML5拖放API如何实现自动生成相框功能 HTML5拖放API实现自动生成相框功能代码...
  2. oracle安装选取字符集,oracle10g字符集问题及设置PL/SQL、sqlplus字符集
  3. 印象笔记打开错误_印象笔记新增桌面便签功能
  4. ORACLE:索引中丢失IN或OUT参数
  5. RabbitMQ的三大交换器详解
  6. centos7下Jenkins管理员admin密码忘记后处理方法
  7. JavaScript(九):JavaScript中的内置对象
  8. Cosmos互联链通信技术规范(上)
  9. 大数据发展火爆,云计算平台主打安全至上
  10. 【第二十九章】 springboot + zipkin + mysql