什么是Servlet和JSP

用Java开发Web应用程序时用到的技术主要有两种,即Servlet和JSP。 Servlet是在服务器端执行的Java程序,一个被称为Servlet容器的程序(其实就是服务器) 负责执行Java程序。而JSP(Java Server Page)则是一个页面, 由JSP容器负责执行。

Servlet和JSP两者最大的区别就是,Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码, 即HTML中内嵌Java。典型的例子如下:

JSP文件

复制代码代码如下:
<html>  
   <body>  
     <h1>  
     <% out.println("JSP"); %>  
     </h1>  
   </body>  
 </html> 

Servlet

复制代码代码如下:
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就是上面提到的Servlet容器JSP容器。 各个版本对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

Web应用程序的结构

Tomcat安装好以后, 可以去看看tomcat目录下的webapps目录。这个目录就是用来保存Web应用程序的。

上图的根目录就是应当放置在 webapps 目录下的目录。WEB-INF目录无法从浏览器中访问。 WEB-INF/classes下保存的是编译后的Java程序(主要是Servlet),WEB-INF/lib 下保存的是 运行时使用的库文件(.jar文件),web.xml则是整个应用程序的配置信息。

其他文件例如 .jsp、图片、Javascript脚本等,都可以直接放到Web应用程序的根目录下。

MVC模型

所谓MVC模型就是将数据、逻辑处理、用户界面分离的一种方法。

  • M(Model, 模型):用于数据处理、逻辑处理。
  • V(View,视图):用于显示用户界面。
  • C(Controller,控制器):根据客户端的请求控制逻辑走向和画面。

而在Java中,MVC这三个部分则分别对应于 JavaBeans、JSP和Servlet。

  • M = JavaBeans:用于传递数据,拥有与数据相关的逻辑处理。
  • V = JSP:从Model接收数据并生成HTML
  • C = Servlet:接收HTTP请求并控制Model和View

画成图则如下所示:

Servlet和JSP简述的更多相关文章

  1. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  2. Servlet,jsp,JSP技术 ,JSP编程

     一.Servlet 思考 1 浏览器可以直接打开JAVA/class文件吗? 不可以 2浏览器可以打开HTML.JS 文件吗? 可以 3 JAVA程序可以生成HTML文件吗?可以的,用IO流. 4 ...

  3. Servlet与JSP版本历史以及Tomcat支持的版本

    查询这个的关键字:Java EE的版本历史. JavaServer Pages (JSP) Java Servlet 参考: https://en.wikipedia.org/wiki/Java_EE ...

  4. JBoss和Tomcat版本、及Servlet、JSP规范版本对应一览 【转】

    原文地址:http://blog.csdn.net/hills/article/details/40896357 JBoss和Tomcat版本.及Servlet.JSP规范版本对应一览 JBossAS ...

  5. 你也可以当面霸-Servlet与JSP的原理及特点

    既然是面试系列,就是面试官和应聘者之间的对话.本文是采用一问一答的形式呈现给读者的,这样能有一个明确的考察点,不像理论知识那么枯燥. 01.什么是Servlet技术 Servlet是和平台无关的服务器 ...

  6. Servlet、JSP选择题(2)

    Java EE软件工程师认证考试 试题库-选择题 一.    选择题(包括单选和双选) 1.B 编写一个Filter,需要(  ) A. 继承Filter 类 B. 实现Filter 接口 C. 继承 ...

  7. Servlet的生命周期,并说出Servlet和CGI的区别,Servlet与JSP的区别

    一.Servlet 生命周期 1.加载 2.实例化 3.初始化 4.处理请求 5.销毁 二.Servlet与cgi的区别: Servlet处于服务器进程中,它通过多线程方式运行其service方法,一 ...

  8. 如何查看Servlet、JSP的版本(Tomcat V7.0.70)

    1. 简要说明:Tomcat6.0 所支持的是Servlet2.5,Tomcat 7.0 所支持的Servlet3.0,Servlet2.5 和Servlet3.0的差异较大,对于Servlet3.0 ...

  9. myEclipse6.5与数据库(SQL Server2008)连接遇到的问题(自己总结的干货)<用SSH框架的时候,用servlet+javabean+jsp的时候>

    昨天因为学习SSH框架的搭建,时隔一年又重新遇到了myEclipse连接数据库的问题.废话不多说,上干货 (以下全部按照我遇到的问题的顺序,也就是没有顺序,就是任性) 请注意:这是在myEclipse ...

随机推荐

  1. Python Requests快速入门

    迫不及待了吗?本页内容为如何入门Requests提供了很好的指引.其假设你已经安装了Requests.如果还没有, 去 安装 一节看看吧. 首先,确认一下: Requests 已安装 Requests ...

  2. Fiddler的Java抓包

    代码处理 System.setProperty("http.proxySet", "true"); System.setProperty("http. ...

  3. Mac eclipse 连接 手机调试

    Mac eclipse 连接 手机调试 更新:2014-11-10 20:13 1 2 3 4 5 6 分步阅读 很多Android程序员 用Mac 来开发.但是Mac下eclipse连接 手机存在一 ...

  4. (转)Android 自定义 spinner (背景、字体颜色)

    Android 自定义 spinner (背景.字体颜色) (2012-07-04 17:04:44)   1.准备两张图片,并做好9.png   2.在drawable中定义spinner_sele ...

  5. mybatis返回Date类型数据 格式化

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") public Date getC ...

  6. Linux修复磁盘操作

    Linux修复磁盘操作 1.卸载分区 umount /data 修复磁盘,先判读是磁盘坏了,还是文件系统坏了:一般可以修复,但是建议换磁盘. 2.fsck  -y /dev/sda1  ##-y 参数 ...

  7. DHCP(三)

    选择阶段:即DHCP客户端选择IP地址的阶段.如果有多台DHCP服务器向该客户端发来DHCP Offer报文,客户端只接受第一个收到的DHCP Offer报文,然后以广播方式发送DHCP Reques ...

  8. iSCSI存储的3种连接方式

    我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器.工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统. iSCSI设备的主机接口一般默认都是IP接口,可以直接与 ...

  9. yum安装报错“rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 1e5e0159”

    Do not forget to set gpgkey when installing the oracle-validated rpm Read more: http://oracletoday.b ...

  10. 阿里云ubuntu 创建svn服务器

    1.SubVersion服务安装 sudo apt-get install subversion sudo apt-get install libapache2-svn 2.服务器配置 2.1相关用户 ...