第一个Java Web程序
1、新建Java Web项目
- file–>new -->project…
这个版本默认使用的4.0
- finish 创建工程就成功了。
alt+1 展开或者隐藏工程,看下目录结构
- 创建class 和lib目录
这个实际工程往往用不到,这里知识为了认知。
WEB-INF下创建两个文件夹 classes和lib
- 修改下index.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2020/1/20 0020
Time: 10:36
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>My First Page</title>
</head>
<body>
<center><H1>Hello World</H1></center>
</body>
</html>
- 点击右上角运行
右上角有个小猫,在旁边点击运行,他直接打开了我的360浏览器–因为它是默认浏览器
很神奇,JDK没有配置,tomct也没配置,它经验支持了java环境,和servlet容器。
说明创建工程之初有默认配置。
2、工程配置
file–>project structure…
- 修改out路径,也就是class编译后的存放路径
- 配置JDK
Project SDK可以对使用的JDK版本进行重新选择
- 添加依赖的jar目录
现在maven为核心的年代,就算添加jar也是上传jar到公司公共仓库,当然有外网的直接饮用。
不过对于传统项目还是要手工导入jar,这里就使用lib玩一下。
这里就可以指向我们自己新建的lib目录了,以后可以把jar都扔到哪里。选择Jar Directory即可。
添加后勾选上lib
3、编辑配置Edit Configurations
-
Tomcat配置
如果是maven工程,可以配置maven自带的插件容器。
核心是看下这个配置列表很有意思,Classes使用了如图两个jar,可以看到Tomcat具有jsp容器和servlet容器。
我们可以想到,任何java程序都有一个main方法作为入口,负责启动和exit。
那么这个方法就在tomcat中,并且servlet还是个调度程序,确保了处理所有请求启用一个系统进程和JVM实例。servlet是单例的。 -
配置默认浏览器
修改 Open browser 即可,还可以看到访问地址 -
修改端口
从上图可以看到,我们把http访问端口改成了10024,防止端口冲突。
可以想象tomcat里面有个监听器,会根据实例持续占用某个端口,通过agent开发的经验看,基本都是一个死循环实现的,while(true)、for(;;)或者其他语言的死循环c。 -
增加Before launch
如增加一个build project
这也就是很多同学说,为啥我java修改了,启动不生效的原因,因为启动没设置重新编译下。 -
增加tomcat实例
我这个IDEA工具也许N月前配置过tomcat,在setting里配置的所以可以直接使用,如果没有怎么办,例如没有maven,没有tomcat。
如上图有个Template,可以在那里配置对应的工具,然后通过+号添加一个服务器实例即可。 -
VM 参数配置
这个很重要,因为真正工程不是helloworld,按照现在工程尿性,加载的jar可能几百个,线程池再开到10000,内存很容易爆掉,所以要设置tomcat对应jvm参数
-Xms1024M -Xmx2048M -XX:PermSize=128M -XX:MaxPermSize=256M -
发布配置,指定上下文
真实工程都会有个上限文根,很少使用/,当然前面的访问路径也要手工修改下:
- 再次运行劳动成功就出来了
小结
我们还是要反思下:
- Tomcat到底扮演什么角色,有哪些核心部分,分别什么作用?
- IDEA 是和eclipse有很大差别,一个工程包含哪些特殊概念,分别什么意思,和怎么配置?
- 第一个web工程包含了哪些部分,有哪些外部依赖?
- web.xml究竟是如何工作的,具体有哪些配置,分别如何配置?
- 整个web的生命周期是什么?
从请求到响应的整个调用链,包含整个数据的传输过程,从浏览器一直到数据传输层如何走的,又如何返回到浏览器的?
- Java Web的核心技术是Servlet,从2~4版本有那些差异?
以上问题,希望到真个Java Web 回顾完可以十分明确的认知,那时候框架都不事,核心就是API的记忆和了解了。
上一篇: 建立个人网站盈利方法介绍
下一篇: Pandoc 实用教程