引言

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

笔者一直主要从事.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. GCD教程(三):Dispatch Sources

    接上一篇,原帖地址:http://www.dreamingwish.com/dream-2012/intro-to-grand-central-dispatch-part-iii-the-dispat ...

  2. 字典破解zip

    def pojie_zip(FilePath,PwdPath): zipFile = zipfile.ZipFile(FilePath , 'r' , zipfile.ZIP_DEFLATED) pa ...

  3. redis.clients.jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set

    使用哨兵模式连接redis连接池时,遇到错误: Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR Client sen ...

  4. Struts1文件上传、单文件、多文件上传【Struts1】

     将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...

  5. cmake的两个命令: option 和 configure_file

    本节要讨论的是cmake的两个命令: option 和 configure_file option 选项,让你可以根据选项值进行条件编译. configure_file 配置文件,让你可以在代码文件中 ...

  6. JS 与 OC

    做项目需要从网页点击跳转到app的一个页面上,并且需要获取参数. 当时后台给写的参数是这样的.自己打开浏览器看的源码 JavaScript:window.location.href=   这句话在js ...

  7. block和delegate的区别

    代理  可读性高  大部分可以属性 block   写的代码少 一般作为参数通知   占用资源 无论是block还是delegate模式本质上都是回调,使用block,其优点是回调的block代码块直 ...

  8. PLSQL程序流程

    IF语句结构: if(条件表达式)- -then- -执行语句;- -end; IF-THEN-ELSE语句结构: if(条件表达式)- -then- -执行语句;- -else- -执行语句;- e ...

  9. JAVA中的数据结构 - 真正的去理解红黑树

    一, 红黑树所处数据结构的位置: 在JDK源码中, 有treeMap和JDK8的HashMap都用到了红黑树去存储 红黑树可以看成B树的一种: 从二叉树看,红黑树是一颗相对平衡的二叉树 二叉树--&g ...

  10. css特殊字符编码