[h2]什么是Servlet和JSP[/h2]
用Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP。 Servlet是在服务器端执行的Java程序,一个被称为[b]Servlet容器[/b]的程序(其实就是服务器) 负责执行Java程序。而JSP(Java Server Page)则是一个页面, 由[b]JSP容器[/b]负责执行。
Servlet和JSP两者最大的区别就是,Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说[b]Java中内嵌HTML[/b]; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即[b]HTML中内嵌Java[/b]。典型的例子如下:
[b]JSP文件[/b]
<html>
<body>
<h1>
<% out.println("JSP"); %>
</h1>
</body>
</html>
[b]Servlet[/b]
public class MyServlet ... {
...
out.println("<html>");
out.println("<body>");
out.println("<h1>");
out.println("Servlet);
out.println("</h1>");
out.println("</body>");
out.println("</html>");
}
可见,JSP便于输出,而Servlet便于进行逻辑处理。因此实际应用中两者常常结合使用,各司其职。
而Tomcat就是上面提到的[b]Servlet容器[/b]和[b]JSP容器[/b]。 各个版本对Servlet/JSP协议支持的情况如下:
| Tomcat版本 |
支持Servlet |
支持JSP |
| 6.0.x |
2.5 |
2.1 |
| 5.5.x |
2.4 |
2.0 |
| 4.1.x |
2.3 |
1.2 |
| 3.3.x |
2.2 |
1.1 |
[b]Web应用程序的结构[/b]
Tomcat安装好以后, 可以去看看tomcat目录下的webapps目录。这个目录就是用来保存Web应用程序的。
[img]http://files.jb51.net/file_images/article/201304/2013042200005.gif[/img]
上图的[b]根目录[/b]就是应当放置在 webapps 目录下的目录。
WEB-INF目录无法从浏览器中访问。
WEB-INF/classes下保存的是编译后的Java程序(主要是Servlet),
WEB-INF/lib 下保存的是 运行时使用的库文件(.jar文件),
web.xml则是整个应用程序的配置信息。
其他文件例如 .jsp、图片、Javascript脚本等,都可以直接放到Web应用程序的根目录下。
[h2]MVC模型[/h2]
所谓MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。
[list]
[*][b]M(Model, 模型)[/b]:用于数据处理、逻辑处理。
[/*][*][b]V(View,视图)[/b]:用于显示用户界面。
[/*][*][b]C(Controller,控制器)[/b]:根据客户端的请求控制逻辑走向和画面。[/*][/list]
而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet。
[list]
[*][b]M = JavaBeans[/b]:用于传递数据,拥有与数据相关的逻辑处理。
[/*][*][b]V = JSP[/b]:从Model接收数据并生成HTML
[/*][*][b]C = Servlet[/b]:接收HTTP请求并控制Model和View[/*][/list]
画成图则如下所示:
[img]http://files.jb51.net/file_images/article/201304/2013042200006.gif[/img]