Servlet和JSP迈上新台阶

Servlet和JSP迈上新台阶,第1张

即将面世的J EE 提供用Java开发Web应用程序的新的Servlet 和JavaServer Pages (JSP) 技术 本文展示了这两种技术的新特性 并在适当的地方提供每个特性的示例代码 本文假设读者熟悉以前的 Servlet 和JSP 版本 给出的例子已用Tomcat (包含在Java Web Services Developer Pack 中)进行了测试 Servlet和JSP毫无疑问是两种应用最广的J EE技术 Servlet技术是用Java进行Web应用编程的基础 也是JSP的基础 但是 servlet编程可能会非常麻烦 特别是当你不得不发送一个没多少代码的长HTML页面时更是如此 每个HTML标记必须嵌入到字符串中 用PrintWriter对象的显示方式发送 是一种工作单调乏味而烦人的工作 使用servlet的另一个缺点是每一处改变都需要servlet程序员介入 Sun公司了解到这一问题之后便开发了JSP作为解决方案 在JSP中 程序员和页面设计员的分工变得容易多了 并且当JSP页面更改时会自动进行编译 不过请注意 JSP是servlet技术的一个扩展 而不是废弃servlet 在实际应用当中 servlet和JSP页面一起使用 Servlet 的新特性 Servlet 提供了几个新类 且不支持javax servlet SingleThreadModel接口 这一版本只支持>

Servlet技术是Sun公司提供的一种实现页的解决方案,它是基于Java编程语言的WEB服务器端编程技术。

Servlet技术也是Jsp技术的基础。

一个Servlet程序就是一个实现了特殊接口的Java类,它由支持Servlet(具有Servlet引擎)的WEB服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端的访问请求信息和产生响应内容。

Applet是用于浏览器的Java小程序,Servlet是用于WEB服务器端的Java小程序。

Servlet程序可以完成普通Java程序所能完成的大多数任务:

1获取客户端通过HTML的FORM表单提交的数据和URL后面的参数信息

2创建对客户端的响应信息内容

3访问服务器端的文件系统

4连接数据库并开发基于数据库的应用

5调用其他的JAVA类

Servlet的注册与运行

Servlet程序必须通过Servlet引擎来启动运行,并且储存目录有特殊要求,通常需要存储在<WEB 应用程序目录/WEB-INF/classes/目录中。

Servlet程序必须在WEB应用程序的webxml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被外界访问。

一个<servlet元素用于注册一个Servlet,它包含有两个主要的子元素:<servlet-name和<servlet-mapping,分别用于设置Servlet的注册名称和Servlet的完整类名。

一个<servlet-mapping元素用于映射一个已经注册的Servlet的一个对外访问路径,它包含有两个字元素:<servlet-name和<url-name,分别用于指定Servlet的注册名称和对外访问路径。

<servlet

<servlet-nameAnyName</servlet-name

<servlet-classwyfTestServlet</servlet-class//用于注册的完整类名

</servlet

<servlet-mapping

<servlet-nameAnyName</servlet-name

<url-pattern/test/WYF/AA</url-pattern//路径名,用于URL地址输入,严格区分大小写的。

同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping元素的<servlet-name 子元素的设置值可以是同一个Servlet的注册名

Jsp

优点:

一次编写,到处运行。除了系统之外,代码不用做任何更改。

系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

缺点:

与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。

Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

Servlet

优点:

方便  

Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置>

功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。例如,Servlet能够直接和Web服务器交互,而普通的CGI程序不能。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。

可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为IPlanet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。

节省投资  

不仅有许多廉价甚至免费的Web服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet的话,要加上这部分功能也往往是免费的(或只需要极少的投资)。

缺点:

Servlet 没有图形界面,运行在服务器端。

Servlet是一个早期的不完善的产品,写business layer很好,写presentation layer就很臭,并且两层混杂。

为了更好地满足动态网页的开发,更加方便的进行动态网页的可视化,于是产生了jsp技术。在jsp技术没有产生前,人们确实在用servlet做部分网页的设计。但是渐渐的人们发现servlet在设计界面上远远不如jsp简洁美观。

于是程序员便将代码分为了视图层(view)和业务逻辑层(control),这样明确的分工,极大地提高了编码效率了和程序的可维护性,也就形成了jsp+servlet技术风格。

扩展资料:

JSP的优缺点

优点:

一次编写,到处运行,除了系统之外,代码不用做任何更改。

系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

缺点:

(1) 与ASP也一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大地增加了产品的复杂性。

(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。

JSP由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。

参考资料来源:百度百科-JSP

1什么是SERVLET

Servlet是用Java编写的服务器端程序, 其主要功能在于交互式地浏览和修改数据,生成动态Web内容

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,我们一般将Servlet理解为后者。

这段话可能听起来有些绕, 但如果大家把Servlet与Spring MVC 的前端控制器 DispatcherServlet

结合起来理解, 应该立马就知道它是做什么的了 Servlet 是Java JDK提供的一个接口, 所有的Servlet都继承于它,

而DispatcherServlet是一个继承了实现了Servlet接口的类的类

2知识剖析

Servlet 的生命周期

Servlet 的生命周期分为三个阶段, 分别对应Servlet中的三个接口

init() 初始化

service() 处理客户端的请求, 具体业务逻辑 ServletRequest 对象用于获得客户端信息,ServletResponse 对象用于向客户端返回信息(客户端可以理解为浏览器)

destroy() 结束时调用 这个方法只有在servlet的service方法内的所有线程都退出的时候,或在超时的时候才会被调用。

init() 和 destroy() 都只会在Servlet创建和销毁时调用一次, 而service() 则会在响应不同请求时多次调用

注意Servlet是一个接口,实现了servlet的类,是不能直接处理请求的 

请求需要通过Servlet容器来发送到Servlet, Servlet是运行在Servlet容器中的 

Servlet容器是Web服务器和servlet进行交互的必不可少的组件。常见Web服务器有Tomcat, jetty, resin, 它们也可以称为应用服务器

3常见问题

1 Servlet 如何接收才能接收到Servlet容器发来的请求

2 Servlet 什么时候被初始化

3 DispatcherServlet 如何处理容器发来的请求

4解决方案

1 Servlet 容器通过监听端口(8080)来接收用户发送的请求, 然后通过webxml中的 Servlet-mapping 配置, 来匹配到请求Heades中的url信息, 将其转发到对应Servlet配置中的Servlet实现类完成请求接收

2 Servlet 的初始化是由Webxml 中的 loadOnStartup 配置控制的 

当 loadOnStartup < 0 或者不写时, 接收到第一次请求的时候实例化

当 loadOnStartup > 0 web容器启动的时候做实例化处理,顺序是由小到大,正整数小的先被实例化 

当 loadOnStartup = 0 web容器启动的时候做实例化处理,相当于是最大整数,因此web容器启动时,最后被实例化

3 通过DispatcherServlet 的执行流程来看它时如何处理请求的

希望对您有所帮助!~

以上就是关于Servlet和JSP迈上新台阶全部的内容,包括:Servlet和JSP迈上新台阶、让别人做了一个java的程序,是基于J2EE的管理系统,说是用了servlet架构,如何判断是否是这个架构呢、servlet是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10631463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存