J2EE开发HelloWorld
J2EE开发实战基础系列一 HelloWorld
开始咱们的第一个程序,首先是配置环境,按照上一章所描述的方式下载开发工具,然后配置Java环境变量,给大家看下具体的结构:
环境变量配置OK的提示,如上图。
Eclipse和Tomcat的文件目录位置,本系列采用的都是绿色版本,如上图。
启动Eclipse.exe,Workspace路径的配置,下面的复选框表示选中后就默认一直使用该工作空间,不选择每次启动都出出现该提示框,如上图。
在这里讲解下Workspace的概念,这里目录存储项目程序段的,假如你在别的目录创建一个Java的项目,那么在Workspace会映射同时创建和你创建项目同名的目录,这里存储配置信息,每次运行的时候Eclipse都是通过这里来读取配置信息。例如我的Workspace设置为C:\Users\MB\workspace,我在D:\LhkJava下创建一个名为HelloWorld的项目,那么相应的C:\Users\MB\workspace下会创建HelloWorld的目录,存储着HelloWorld的代码段和配置信息,如果HelloWorld项目我使用了非常多的外置Jar包,而且是用相对路径引入,现在我换电脑了,把D:\LhkJava\HelloWorld目录拷贝到新电脑去运行,可能跑不起来,但是把C:\Users\MB\workspace下的HelloWorld也一同拷贝过去,放在新电脑Eclipse的Workspace目录再去运行HelloWorld就不会出现问题了,希望这段描述可以加深大家对Workspace的理解,在实际工作中遇见很多人换了电脑或者重装系统后,以前做的项目就跑不起来了,最简单的解决方案就是一同拷贝Workspace下的目录。
选择OK,我的工作空间就默认设置为C:\Users\MB\workspace,启动后的界面如下图:
这就是传说中的开发工具了,通过Eclipse大家可以实现各种项目,包括Android项目,下面就要新建一个项目了?NO,不要急,我们做Web开发,需要有一个Web服务器来运行我们所写的程序,由于Eclipse是绿色版的,所以没有内置Tomcat,并且没有Tomcat的插件,需要自己配置,如果使用Maven框架来做项目,就不需要配置Tomcat了,这个在进阶教程以后会讲到,目前就讲这种方式的配置,而且不是Tomcat插件配置方式,那种对环境依赖比较大,目前我们以实战为主,尽量都做绿色配置,首先选择Eclipse上菜单的Window--->Preferences--->Server--->Runtime Environments-->Add,在这里我们选择Tomcat7,然后点Next,如下图:
点击Next出现配置Tomcat7的界面,Name不用管,第二个地方填写Tomcat的路径,本文一开始就截图了我的Tomcat解压路径,第三个地方选择JRE版本,我的是1.6版本,如下图所示:
配置好后,点击Finish,点击OK,选择Tomcat配置好了,开始创建第一个Java Web项目,选择 File--->New--->Other--->输入WEb--->选择Dynamic Web Project 如下图:
选择Dynamic Web Project点击Next后,出现项目的配置填写,ProjectName填写项目的名字,Target runtime目标运行的环境,我们就选择之前配置好的Tomcat7,
Dynamic web module version需要配置和Tomcat对应的版本,我们使用的是Tomcat7,所以这里需要选择3.0,Configuration里选择默认的Tomcat7.0作为模型,Working set不需要配置,这个选项是避免多个项目存在同一Workspace造成加载缓慢和查找项目复杂,可以很好的释放Package Explore的压力,设置好后然后一直点击Next最后点击Finish即可,不需要额外添加类到src,配置如下图:
创建好后的界面如下图:
接下来,咱们在Servers面板上添加Tomcat7,点击No servers are.......后在弹出的面板上点Next,然后添加我们的项目到Tomcat,如下图:
选中Tomcat7.0后,点击Next,把当前项目Add到右侧的列表中,,Server面板就会出现添加项目的选项,选择绿色的启动按钮,Tomcat服务器就启动了,如下图:
启动后,Console会输出运行的信息,如果出现 Server start up就说明启动成功了,可以输入网址去查看项目的运行效果,但是我们现在还不能运行这个项目,因为一个Java Web项目需要有web.xml,而且需要添加页面才可以,下面我们来添加web.xml和index.jsp这两个文件:
web.xml中我们只做最基础的配置,代码如下:
1
2
3
4
5
6
|
<?xml version= "1.0" encoding= "UTF-8" ?> <web-app id= "WebApp_ID" version= "2.4" xmlns= "http://java.sun.com/xml/ns/j2ee" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > <welcome-file-list> <welcome-file>welcome.html</welcome-file> </welcome-file-list> </web-app> |
index.jsp中我们只输出HelloWorld,通过HTML和Java Web两种方式,代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<%@ page language= "java" contentType= "text/html; charset=ISO-8859-1" pageEncoding= "ISO-8859-1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=ISO-8859-1" > <title>Insert title here</title> </head> <body> Hello,World! <%= "Hello,World." %> </body> </html> |
添加的位置如下:
然后,让我们再来到Server的面板,点击绿色的启动按钮,
输出结果如下图:
启动成功,我们打开浏览器,输入:http://localhost:8080/HelloWorld/index.jsp访问,则看到以下页面:
OK,第一个Hello,World!完成了,不要高兴噢,现在是刚刚开始,之前所做的只是一个铺垫,目前才是学习的开始,我们来分析问题,大家肯定也有很多疑问:
1.Tomcat在Eclipse中启动和在Tomcat的Bin目录下Startup.bat启动有什么区别?
2.8080是什么?为什么路径中需要输入HelloWorld?localhost是什么?
3.为什么需要web.xml文件?
4.index.jsp中显示的结果都一样,区别在哪里?
PS:今天先到这里,等待大家的问题反馈,我刚提到的只是典型的问题,明天白天会完善后面的信息,并且包括Tomcat插件方式和这种方式运行机制区别的解析。
接着昨天的,咱们继续,首先,先把昨天的4个问题回答了先:
1.Tomcat在Eclipse中启动和把源程序放置在Tomcat的webapps目录下,然后启动Tomcat的bin目录下的startup.bat是一样的,这种在Eclipse内置的方式方便调试和断点跟踪,其他和Tomcat中直接启动都是一样的,我们把一个新的项目通过Server面板中的Add把项目添加到Tomcat,其实和手动把项目放置在Tomcat下的Webapps目录是一个概念,我们点击绿色的启动按钮,相当于启动Tomcat的bin目录下startup.bat,两则的最主要区别则是内置的tomcat适用于开发,而通过Tomcat直接启动的方式比较适用于正式运行,发布后的项目,具体的区别我做了演示,大家可以到这里地址去体验下,当然最好自己实际动手试下,感受下,下面贴出不同的地方:
先说按照本文教程这种方式配置的Tomcat,配置完后会在右侧的面板有一个Servers的文件夹,这里装载着eclipse关联的tomcat有关配置信息,端口号和映射等的配置,可以通过修改server.xml来实现
而直接在tomcat下运行的,启动程序startup.bat在tomcat目录下的bin目录下,项目文件放在tomcat目录下的webapps目录下,配置文件放在tomcat目录下的conf目录下的server.xml,如图所示:
在这里特别要注意的是:eclipse配置的tomcat虽然和tomcat是一个目录,但是修改eclipse配置的tomcat的配置,不会对tomcat的conf目录下server.xml有影响,反之对tomcat目录下的conf目录下的server.xml修改,也不会对eclipse关联的tomcat配置有影响,他们用了一个实例,但是配置是按照各自的读取,不会互相干涉,而且只允许运行一个,如果运行了tomcat的bin目录下的startup.bat就不可以在eclipse里启动关联的tomcat,反之亦然。
2.8080则是端口号【http://localhost:8080/HelloWorld/index.jsp】这个网址解释下来就是访问IP是127.0.0.1的机器,端口号为8080,目录是HelloWorld,页面是index.jsp,访问的协议是http,下面来详解:
协议:访问的协议有HTTP,FTP,TCP/IP,UDP,HTTPS等,一般我们使用互联网使用的协议都是HTTP,登录的协议一般用的都是HTTPS+SSL协议加密,例如网银的登录和一些涉及比较重要信息的验证都会使用的安全协议;FTP协议一般是操作文件,例如我们买一个空间,IDC会提供给我们一个IP和账户密码,这个IP就需要用FTP访问,例如:FTP:*.*.*.*;
TCP/IP和UDP这种一般是通信协议,像网络通信和最早的网游都是通过TCP/IP协议实现的,UDP协议腾讯刚开始采用的是,但是基于这种协议只管发送,不等待确定是否收到信息,通信过程中容易丢失数据,所以应用面比较窄,具体协议的有关内容,是属于网络编程的范畴,不多描述
IP/域名:每个联网的计算机都会有IP,如果不联网就只有本机IP,例如:localhost或者127.0.0.1,这两个都是一个意思,如果只连接内网会有内网IP,例如192.168.*.*这类的,如果连接外网就会有一个外网的动态IP,这个IP每次分配的不同,所以叫动态IP,而服务器是静态IP,静态IP就是不变的IP,一般我们在互联网访问的网站都是静态IP,如果老变的话,我们就无法去访问网站了,因为IP不好记忆,所以出现了域名,例如 baidu.com,cnblogs.com这些都是域名,通过域名映射到一个IP,然后IP根据这台计算机的Web服务器相关配置,找到对应目录,对网站进行访问,我们在DOS下通过ping 域名的方式,可以看出域名对应的IP,首先这个IP的计算机没有禁止ping才可以,域名涉及到上线的范畴,不过讲,大家明白http://后面的这段IP和域名的作用即可
目录/端口:目录名则是通过映射来决定的,有可能我没有HellWorld的目录,但是我可以映射过去,这个是在web服务器中设置的,看下图就是我们这个项目的映射路径,通过用户输入网址的HellWorld访问到实际的HellWorld目录,我们也可以把这里的path改为'/',这样以来这个访问地址就变为http://localhost:8080/index.jsp,如果我们再把tomcat的端口号改为80,访问的地址就变为:http://localhost/index.jsp,如果我们做一个本地IP的映射,在hosts文件里把 www.baidu.com映射为127.0.0.1,那么访问http://www.baidu.com/index.jsp就可以访问我们的项目了,其实它真实的网址是:http://127.0.0.1:80/index.jsp,如果你在项目的web.xml中配置下过滤,把html映射为jsp页面,那么访问:http://127.0.0.1:80/index.html也可以访问的
更改目录
更改端口
更改IP映射(只有本地访问有效)
访问结果:
3.为什么需要web.xml,是因为从Serlvet3.0开始强制规定的,并且对目录也有强制要求,web.xml里面汇总配置信息,更深刻的体验Java Web程序,就和我们当初刚学Java时候手动写.java文件一样,我们来手动写一个Java Web程序,这样就能更深刻的认知:
1.需要创建一个文件夹,这个是项目名,随便起,我取的名字就是:MyNotAutoJspProgram
2.需要按照Java Web程序的标准结构来构造,所以需要创建一个WEB-INF文件夹,这个文件夹下需要有classes文件夹和lib文件夹,并且需要有一个标准的web.xml文件,classes放置编译后的字节码文件,lib文件放调用到的jar包,web.xml里面做配置
3.结构搭建好后,我们需要有一个jsp页面,把它放在MyNotAutoJspProgram下面,页面的名字随便起,我就新建一个index.jsp吧,里面输出一句话:我不是eclipse生成的
web.xml的代码,设置默认页面为index.jsp
1
2
3
4
5
6
|
<?xml version= "1.0" encoding= "UTF-8" ?> <web-app id= "WebApp_ID" version= "2.4" xmlns= "http://java.sun.com/xml/ns/j2ee" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" > <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> |
index.jsp的代码,输出一句话
1
2
3
4
5
6
7
8
9
10
11
12
|
<%@ page language= "java" contentType= "text/html; charset=gbk" pageEncoding= "gbk" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=gbk" > <title>Insert title here</title> </head> <body> <%= "我不是eclipse生成的" %> </body> </html |
然后把这个文件夹拷贝到tomcat下的webapps目录,这个步骤类似我们在eclipse中在server面板中为tomcat添加一个项目一样:
现在要做的就是启动tomcat,到tomcat文件夹下的bin目录,找到startup.bat(启动这个文件,必须保证eclipse中的tomcat处于停止状态,否则不能运行成功)
记下来我们输入:http://localhost:8080/MyNotAutoJspProgram/,就可以看到效果了,为什么不输入index.jsp?因为我们在web.xml里面配置了默认页面就是index.jsp所以不用输入了
4.两种输出结果,写法不同的区别在于没有<%%>的这种叫做html代码,有<%%>叫做jsp代码,html代码是静态的,不可以改变,但是jsp代码,我们就可以做我们想要的事情了,例如早上访问这个页面,我们需要输出‘早上好’,下午访问,我们需要输出‘下午好’,用html代码直接不能实现需要借助js,但是jsp就可以实现,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<%@ page language= "java" contentType= "text/html; charset=gbk" pageEncoding= "gbk" %> <%@ page import = "java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=gbk" > <title>Insert title here</title> </head> <body> <% Calendar rightNow = Calendar.getInstance(); String showString= "" ; if (rightNow.AM == 1 ) showString= "早上好" ; else showString= "下午好" ; %> <%=showString %> </body> </html> |
首先,导入工具包,因为我们获取当前时间,就需要使用到Calendar类,这个类来自util包,而且是内置的,所以不需要额外导入jar包,例如我现在要操作sql就不广要import,还需要导入有关的jar文件,继续回到代码来,导入包后,我们发现写法和之前不同了,之前是<%=%>,现在变成了<%%>,区别在于有=号的是输出显示,没=号的这种代码块就和在.java文件里面写法一致,首先获取当前日期的示例:
1
|
Calendar rightNow = Calendar.getInstance();<br><br> |
然后声明一个变量,来显示出来结果,最后一个判断是否是早上,如果是早上,这个AM返回就是1,如果不是1,说明不是早上,就输出下午好,这里对于没有Java基础的,不知道用哪些类,调用那些内置API的时候,可以参考JDK的帮助(建议看英文版本的,为了方便大家理解我刚随便下载了一个中文版本的JDK帮助):
大家看下结果运行后的结果:
解决了问题,熟悉了两种tomcat的关联,手动穿件了Java Web项目,熟悉了JSP的目录结构,下面就是需要熟悉JSP的思想,熟悉servlet的用法,搞懂web.xml的结构,这样就可以轻松实现WEB程序了,在这里,给出学习的思想,但是具体的实现,希望大家自己去查找JDK的帮助文档,做开发最主要的就是自学能力和一种求知的欲望,
J2EE开发HelloWorld的更多相关文章
- 摘:J2EE开发环境搭建(1)——安装JDK、Tomcat、Eclipse
J2EE开发环境搭建(1)——安装JDK.Tomcat.Eclipse 1:背景 进公司用SSH(Struts,spring和hibernate)开发已经有两个月了,但由于一 直要么只负责表示层的开发 ...
- J2EE开发时的包命名规则
http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...
- J2EE开发规范
J2EE开发规范一 JAVA编码规范1 命名规范1.1 包命名 包名称必须全部用小写. 命名方式:业务领域名.公司名.项目名.模块名 如com.yr.xxx.dao.1.2 类命名类名以英文单词取 ...
- J2EE开发之常用开源项目介绍
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层: 1)Hibe ...
- J2EE开发常用开源框架技术(转)
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层:1)Hiber ...
- Eclipse SDK构建J2EE开发环境
鄙视官Java EE Developers 体积庞大的兄弟们可以提出自己的J2EE开发环境! 1.第一次去Eclipse官网下载Eclipse IDE 我使用的是:Eclipse IDE for Ja ...
- J2EE开发环境--RAP
J2EE开发环境--RAP J2EE开发环境分四步: 1.JDK环境 2.tomcat 3.redis环境 4.mysql环境 5.RAP包 线上环境,推荐使用源码,自建应用用户,设置对应规则,禁止关 ...
- 搭建J2EE开发平台-Eclipse+MySql+tomcat
搭建J2EE开发平台-Eclipse+MySql+tomcat 分类: ·Java 2010-10-10 15:45 2596人阅读 评论(3) 收藏 举报 mysql平台eclipsetomcatj ...
- Step by Step: 基于MFC下的COM组件开发-Helloworld
http://blog.csdn.net/sybifei/article/details/45008745 [这篇文章有问题, 仅供参考] http://blog.csdn.net/define_us ...
随机推荐
- hdu4705 Y 简单树形DP 2013多校训练第十场 J题
题意:求一棵树中不在一条链中的三个点的对数. 转化一下,用总对数减去在一条链上的三点对数即可. 考虑经过根节点,然后可能是不同的子树中各选一个:或者是子树中选一个,然后当前节点为根的子树以外的节点选一 ...
- 产品 线上 保持 和 支持 服务 (Support and maintenance solutions)
Maintenance and support are the key factors for the smooth functioning of ERP solutions. ERP mainten ...
- HTML5游戏开发引擎Pixi.js完全入门手册(二)元素对象属性解析
下面,我们来解释下PIXI里面对象的各个属性.. 首先我们来看看这个各个元素对象里面到底长啥样.. alpha Number 整个舞台对象的透明度. buttonMode Boolean 渲染是否作为 ...
- 【LaTeX排版】LaTeX纸排版<两>
1.文件夹的生成 直接使用命令\tableofcontents就可以. 其默认格式例如以下: 我们会发现.这种格式不一定是我们所期望的. 比方说,我们也希望章标题与页码之间也有点连线,而且也希 ...
- 【Socket计划】使用C++实现Server结束Client结束
我是在Visual Stdio 2013两人的建立project.编译如下两个人main文件,然后测试 服务器:Server.cpp #include <WINSOCK2.H> #incl ...
- 前端学习笔记(zepto或jquery)——对li标签的相关操作(四)
对li标签的相关操作——五种方式给奇数项li标签设置样式 demo演示: 1 2 3 4 5 6 7 // 详解: 通常我们为多个li添加样式时常用的是使用filter,但我们在第三节中可以看到fil ...
- 通过SMTP协议来发送邮件
简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是事实上的在Internet传输email的标准. SMTP是一个相对简单的基于文本的协议.在其之上指定了 ...
- hdu2203 KMP水的问题
两种方法 首先是纯KMP #include<stdio.h> #include<string.h> #include<iostream> using nam ...
- EF结合SqlBulkCopy
EF结合SqlBulkCopy在项目中的使用 这是我第一次写博客,由于水平有限,写不出什么好东西,还望见谅. 我现在参与的这个项目采用的是EF框架,方便了数据库的访问.但在实际中,发现项目中导入市县E ...
- Java阅读word程序说明文件
完成office文件操作可以帮助apache.poi包(我用poi-3.10-FINAL),导入对应的jar包(最好所有导入) 以下的程序演示了一些操作word的过程,具体的函数功能能够查看此包的官方 ...