其实我倒是推荐学习Web的同学们先看这个教程,因为它有具体的实例代码,可以保证同环境下运行成功。至于编程语言之间的差异只能说是洒洒水,思想是不会变的,形式多学点无妨。
JSP
JSP全称JavaServer Pages(Java服务器页面),是一种动态网页技术标准。JSP是一种Servlet。
如我上面所言,JSP是一种技术而非框架。这意味着编写者需要做的事情更多了,同时也更自由了(比如说你的JSP没必要一定遵循MVC,虽然最好不这么做)。JSP使用JSP标签在HTML中插入Java代码,这样的混合体文件的后缀通常为.jsp。
Tomcat
由于JSP只是一个技术,所以其本身并没有服务器程序的功能。本教程的JSP项目使用Tomcat服务器,因为其对Java Servlet的支持较好。
JSP标签
我就不细讲了,直接列出来(使用等价XML的方式不写):
-<% 语句 %>:这里的语句是任意代码片段
-<%! 声明 %>:这里的声明是变量等的声明
-<%= 表达式 %>:JSP将直接把表达式的值输出到HTML
-<%-- 注释 --%>:注释
-<%@ 指令 %>:这些指令用于设置和页面有关的属性,也可以用来引入包、标签
在此我顺便介绍一下JSP提供服务的顺序:JSP会先将页面里的所有标签语句运行出结果,然后填入HTML中返回,也就是说,提供给页面的一定是预先就静态化的文件。
用MyEclipse10创建Web工程
事实上,大多数Java项目开发过程在良好IDE的协助下都能简单不少。为了这个Web项目我特意下载了MyEclipse10(主要是我的IDEA一直提不出错)。
1 创建Web工程
打开MyEclipse10(如果打开过程报错建议以管理员身份运行),选择File->new->WebProject,填上项目名并点击Finish就可以了。所以本项目中的资源文件夹和web文件夹都是默认的src和WebRoot。
2 部署Tomcat
安装Tomcat。
MyEclipse10主界面选择MyEclipse->Preferences->MyEclipse->Servers->Tomcat->Tomcat7.x(本教程使用的是Tomcat7,其他关于版本的问题请查看本教程的系列介绍),在右边的选项里将Tomcat home directory指向你的Tomcat安装位置,下面的选项应该会在置顶了Tomcat home之后制动填写。顺便查看一下上面是否是选中Enable,如果没有选中它。
主界面查看是否有下图所示,如果没有选择Window->Show View->Servers打开服务页面。
Web工程目录详解
Web工程目录树如下:
NewWeb(工程根目录)
│ .classpath
│ .mymetadata
│ .project
│
├─.myeclipse
├─.settings
│ .jsdtscope
│ org.eclipse.jdt.core.prefs
│ org.eclipse.wst.common.component
│ org.eclipse.wst.common.project.facet.core.xml
│ org.eclipse.wst.jsdt.ui.superType.container
│ org.eclipse.wst.jsdt.ui.superType.name
│
├─src
└─WebRoot
│ index.jsp
│
├─META-INF
│ MANIFEST.MF
│
└─WEB-INF
│ web.xml
│
├─classes
└─lib
我们主要关注WebRoot文件夹下文件的内容(需要注意的是,这个文件夹名貌似是MyEclipse的特产,Eclipse的Web项目里没有这个文件夹):
-WebRoot根目录:这里是WEB项目前端映射到后端的根文件夹。比如说你的Tomcat运行在127.0.0.1:8000,访问127.0.0.1:8000/项目名/index.jsp就对应着WebRoot/index.jsp。这个目录下的文件并不安全,因为其能在前端被直接访问。(如果这个Web程序遵循了MVC,一定程度上也可以认为它不够健壮,因为这种情况下直接访问jsp文件绕过了其Controller,它的逻辑不完整)
-WEB-INF:安全目录,也就是此文件夹中的文件不能被直接访问到。
-WEB-INF/web.xml:配置文件。如果你的项目不遵循MVC的话,可以不设置,我们就先跳过。
-*WEB-INF/classes:这里存放了运行之后生成的.class文件(我注意到MyEclipse生成的Web工程里没有这个文件夹)
-WEB-INF/lib:存放项目所需要的jar文件
-META-INF:相当于一个信息包
-META-INF/MANIFEST.MF:自动生成信息描述文件