处理多个请求,每个处理都通过servlet代码作为单独的线程来处理 。
将servlet作为所有应用程序请求的公共入口点时,可以获得对应用程序页面流的整体控制 。
当使用servlet作为控制器时,必须处理下列基本要求:
所有请求处理都必须传递到单独的控制器servlet中 。
servlet必须能够区分请求,以便进行不同类型的处理 。
可以使用现成的struts servlet 。
struts servlet根据请求URI中的一部分来断定请求的类型,查找对应的行为类(使用配制信息),并调用execute()方法 。
execute()方法不显示应答 , 只关心商务逻辑 。该方法返回一个strutsActionForward实例,其中包含应答应该调用以显示应答的JSP页面的相关信息 。该页面由逻辑名称进行标示 , 并影射到配置文件中的实际页面逻辑上 。因此可以通过重新配置,而不是改变代码,从而至少在某种程度上控制页面流 。
使用servlet的最佳解决方案是定义servlet的映射规则:
而不是使用:/myapp/servlet开头的调用,或是使用
form action=”/ora/servlet/controller/someAction”
以上方式的调用servlet将会导致安全问题和程序部署的问题 。
servlet的service()方法与doGet()、doPost()方法区别:
public void service(request,response) {
if request.getMethod().equals("POST") {
doPost(request,response);
}else if request.getMethod().equals("GET") {
doGet(request,response);
}
}
有用户请求 , 对应有get/post才会调用doGet()/doPost(),service()有无请求都执行或用在定时执行 。
Servlet是用Java编写的Server端程序,它与协议和平台无关 。Servlet运行于Java-enabled Web Server中 。Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务 。
最早支持Servlet技术的是JavaSoft的Java Web Server 。此后,一些其它的基于Java的Web Server开始支持标准的Servlet API 。
一、Servlet的特点
Servlet是Java技术对CGI编程的回答 。Servlet程序在服务器端运行,动态地生成Web页面 。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是, Servlet程序员收入要比Perl程序员高:-)
高效
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间 。而在Servlet中 , 每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进 程) 。在传统CGI中,如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个 线程,只需要一份Servlet类代码 。在性能优化方面,Servlet也比CGI有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等 。
方便
Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等 。
功能强大
在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成 。例如,Servlet能够直接和Web服务器交互 , 而普通的CGI程序不能 。Servlet还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现 。
可移植性好
Servlet用Java编写,Servlet API具有完善的标准 。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar 。几乎所有的主流服务器都直接或通过插件支持Servlet 。
节省投资
推荐阅读
- 区块链技术也称为,区块链技术的含义是
- pvslinux命令,linux的pipe指令
- 3080主板配什么cpu,3080主板搭配
- vivo经营手机游戏,vivo游戏款
- mysql怎么设置属性 mysql数据类型设置
- pgrestore大数据库导入,pg数据库copy命令导入表数据
- 华为云服务器安全在哪里,华为云服务器有什么作用
- 微信里怎么看好友视频号,微信里怎么看好友视频号呢
- c语言反码函数 c语言反码补码