引言

  记得上学时,有位导师说过一句很经典的话:"编程语言只是工具,最重要的是掌握思想。"

笔者一直主要从事.net领域的开发工作。随着工作阅历的丰富,越来越深刻的理解当年导师说的那句话的意义。

"他山之石,可以攻玉",相互借鉴,然后为我所用,无疑是一种开放的态度。

一、基本目标

  同.net开发环境的搭建相比,javaweb开发环境的配置可谓相当"繁琐",所以这里会觉得微软Visual Studio IDE的强大。

本文是javaweb学习实践的一次较为详细的记录,希望能够对初学者带来一点帮助,少走弯路。

二、环境搭建

  Javaweb开发环境的搭建,笔者选择的IDE是IntelliJ IDEA(ideaIU-2016.3.4).安装 包括以下几点:

  • IDEA 安装
  • JDK安装和配置
  • appache-tomcat的配置
  • IDEA 构建Maven
1.IDEA 安装

  Windows安装包

  

2.JDK安装和配置

  JDK 8安装包

  安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量

  系统变量→新建 JAVA_HOME 变量

变量值填写jdk的安装目录(本人是 C:\Program Files\Java\jdk1.8.0_60)

  系统变量→寻找 Path 变量→编辑

在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)

  系统变量→新建 CLASSPATH 变量

变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

  检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

若如图所示 显示版本信息 则说明安装和配置成功。

3.appache-tomcat的配置

  apache-tomcat-8.0.41

  配置Tomcat环境变量

  计算机→属性→高级系统设置→高级→环境变量

  在系统变量中添加以下变量

  1)新建TOMCAT_HOME变量

变量名:TOMCAT_HOME

变量值:F:\JavaSoftwares\tomcat\apache-tomcat-8.0.41

  2)新建CATALINA_HOME变量

变量名CATALINA_HOME

变量值F:\JavaSoftwares\tomcat\apache-tomcat-8.0.41

  3)修改变量Path

在系统变量中找到Path变量名,双击或点击编辑,在末尾添加如下内容

;%CATALINA_HOME%\bin;%CATALINA_HOME%\lib

这里要注意,各个变量值之间一定要用;分隔。

  4)启动Tomcat服务器

在cmd命令窗口下输入startup回车,运行如下图所示

  5)测试Tomcat服务器是否安装成功

在浏览器中输入http://localhost:8080或http://127.0.0.1:8080

三、创建JavaWeb Maven项目

1.maven配置

  1)下载 Apache Maven 3.3.9

其中包含针对不同平台的各种版本的Maven下载文件。

  2)解压maven压缩包. 我解压的路径为:D:\Maven\apache-maven-3.3.9

  3)配置maven的环境变量

右键“计算机”,选择“属性”,之后点击“高级系统设置”,点击“环境变量”,来设置环境变量,有以下系统变量需要配置:

新建系统变量: MAVEN_HOME 变量值:E:\Maven\apache-maven-3.3.9

编辑系统变量 Path

添加变量值: ;%MAVEN_HOME%\bin

  4)检测是否安装成功

最后检验配置是否成功:用win键+R,来打开命令行提示符窗口,即Dos界面,输入mvn --version 若出现以下情况说明配置成功

2.idea配置JDK

  IDEA配置JDK

  打开IDEA IDE

  依次点开File -->ProjectStructure,点击左侧标签页,点击SDKs

  点击+号,选SDK

  在弹出框选择jdk路径(我本地C:\Program Files\Java\jdk1.8.0_60)

  点击OK,可以看到jdk配置好了

3.idea构建Maven

  如上maven已经下载并解压到本机(我本地D:\Maven\apache-maven-3.3.9)

  1) 找到/conf/setting.xml文件,用文本编辑器打开。由于Maven远程仓库在国外,所以在下载相关jar包时非常慢,将其配置为Alibaba的仓库,需添加下面代码:

<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
--> <mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror> <mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror> <mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror> <mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror> </mirrors>

  2)配置 IDEA默认设置

此处解决了『maven骨架生成项目速度慢的令人发指,都在Generating project in Batch mode等待,Idea状态显示栏还在不行runing,并没有卡死。查看debug信息发现,是maven获取archetype-catalog.xml导致。』的问题。

  3)新建项目

注意:要选maven-archetype-webapp,而不是cocoon-22-archetype-webapp

  4)配置tomcat

4.配置tomcat

  配置tomcat

  在主页面打开ProjectStructure,点击图示的按钮或是按ctrl+shift+alt+s快捷键。

  打开ProjectStructure后,按照图示依次点击Facets->+号,在弹出的对话框个中选择Web.

  在弹出的对话框选择刚才创建的Maven项目(MavenDemo),点击ok.

  接着会出现图示的结构,点击Deployment Descriptors 对话框右侧的加号,会弹出一个图示的小对话框,选择web.xml所在的路径,点击Ok。

  再次点击Web Resource Directories对话框右侧的加号,会弹出一个图示的小对话框,选择webapp所在的路径,点击Ok。

  再次回到Project Structure,点击左侧 Artifacts,依次点击+号->Web Application:Exploded->From Modules.

  出现下图的对话框,点击Ok即可。

  接下来开始配置Tomcat。然后在右上角点击那个下拉框,再点击Edit Configurations

  接着回到Server选项卡,配置一下Tomcat的基本参数,最后点击Ok即可

四、调试

  以上已经完整地创建了一个maven架构的webapp

效果如下:

五、总结

  总的来说,第一次使用感觉很繁琐.

  这篇算是为JavaWeb之旅开个头.后续会逐渐深入.

从零开始学JavaWeb的更多相关文章

  1. 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)

    Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...

  2. 从零开始学 Java - Spring 集成 ActiveMQ 配置(一)

    你家小区下面有没有快递柜 近两年来,我们收取快递的方式好像变了,变得我们其实并不需要见到快递小哥也能拿到自己的快递了.对,我说的就是类似快递柜.菜鸟驿站这类的代收点的出现,把我们原来快递小哥必须拿着快 ...

  3. 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)

    硬盘和内存的作用是什么 硬盘的作用毫无疑问我们大家都清楚,不就是用来存储数据文件的么?如照片.视频.各种文档或等等,肯定也有你喜欢的某位岛国老师的动作片,这个时候无论我们电脑是否关机重启它们永远在那里 ...

  4. 从零开始学 Java - 我放弃了 .NET ?

    这不是一篇引起战争的文章 毫无疑问,我之前是一名在微软温暖怀抱下干了近三年的 .NET 开发者,为什么要牛(sha)X一样去搞 Java 呢?因为我喜欢 iOS 阿!哈哈,开个玩笑.其实,开始学 Ja ...

  5. 从零开始学 Java - Spring 集成 ActiveMQ 配置(二)

    从上一篇开始说起 上一篇从零开始学 Java - Spring 集成 ActiveMQ 配置(一)文章中讲了我关于消息队列的思考过程,现在这一篇会讲到 ActivMQ 与 Spring 框架的整合配置 ...

  6. 从零开始学Python07作业思路:模拟人生小游戏

    标签(空格分隔): 从零开始学Python 一,作业说明 模拟人生: 1 定义三个人物,屌丝John,美女Liz,高富帅Peter. John和Liz大学时是恋人,毕业工作后,Liz傍上了Peter, ...

  7. 从零开始学 Java - 利用 Nginx 负载均衡实现 Web 服务器更新不影响访问

    还记得那些美妙的夜晚吗 你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把最新的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见 ...

  8. 从零开始学 Java - log4j 项目中的详细配置

    你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...

  9. 从零开始学 Java - Spring 支持 CORS 请求踩的坑

    谁没掉进过几个大坑 记得好久之前,总能时不时在某个地方看到一些标语,往往都是上面一个伟人的头像,然后不管是不是他说的话,下面总是有看起来很政治正确且没卵用的屁话,我活到目前为止,最令我笑的肚子痛得是下 ...

随机推荐

  1. win8解决“telnet不是内部或外部命令”问题

    http://jingyan.baidu.com/article/870c6fc330c18ab03ee4be4f.html 打开“控制面板”里的“程序”选项. 点击“程序和功能”下的“启用或关闭wi ...

  2. C# backgroundworker使用方法

    # BackgroundWorker 控件的几个实例(C# backgroundworker使用方法): 在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面 ...

  3. easyUI progressbar组件

    easyUI progressbar组件: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  4. Activity生命周期完全解析

    **转载请注明出处:http://www.cnblogs.com/landptf/p/6309108.html** 生命周期是个老生常谈的问题了,今天做个汇总,全当是记个笔记,以后查找起来方便一些.下 ...

  5. python关于列表的操作

    列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型.列表中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类 ...

  6. objectc中函数前的加号和减号

    看object-c中的代码里,函数(方法)前总有一个加号或者减号,不知道是什么意思,度娘了一下. http://zhidao.baidu.com/link?url=gw9-JR3bh0i7E_CHbr ...

  7. 最快让你上手ReactiveCocoa之基础篇(简称RAC)

    前言 很多blog都说ReactiveCocoa好用,然后各种秀自己如何灵活运用ReactiveCocoa,但是感觉真正缺少的是一篇如何学习ReactiveCocoa的文章,小编看了很多篇都没看出怎么 ...

  8. 【原创】梵高油画用深度卷积神经网络迭代十万次是什么效果? A neural style of convolutional neural networks

    作为一个脱离了低级趣味的码农,春节假期闲来无事,决定做一些有意思的事情打发时间,碰巧看到这篇论文: A neural style of convolutional neural networks,译作 ...

  9. [转载] ping和telnet的区别

    转载自:http://www.cnblogs.com/Jtianlin/p/4045021.html windown7下打开telnet功能: 控制面板 --- > 程序(小图标下直接到[程序和 ...

  10. 如何用CSS进行网页布局---学习总结

    页面布局:对页面的文字.图形或表格进行格式设置.包括字体.字号.颜色纸张大小和方向以及页边距等 页面布局分为4种: 一栏布局 两栏布局 三栏布局 混合布局 灵活利用float.position对页面进 ...