- 浏览: 824768 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
struts1和struts2都是基于MVC的开源框架,不过从配置都实现都是完全不同的两个框架。
struts1是在01年左右发布的,一出来就很受欢迎,经过很长时间的发展,有很好
的稳定性,现在企业中都还有很多企业在用;缺点就是它实在是太老了,对后来发
展的其他框架比如spring,freemarker的支持都不太好。
struts2则是集合了webwork和struts1的优点的核心为webwork的开源框架,它有自
己的AOP库,同其他的框架可以很好的兼容。学过struts1的人都知道,struts1是
直接依赖于servlet的API的,这样导致了类之间耦合度过高,需要修改的时候甚至
会牵扯到视图层,这个是struts2比struts1明显要好的地方。
至于servlet呢,是J2EE的核心技术的一部分,struts1、struts2什么的都是以它
为基础的。简单的说,它是服务器端负责处理客户端发送过来的请求并产生回应的一
个控制器。如果你有心向J2EE发展,servlet的知识是一定要掌握的。至于其余的什
么框架,只要清楚原理,要入门都很简单。
Servlet原理2009-08-21 09:01一、Servlet基础
1、Servlet执行过程
用户请求一个Servlet,Servlet容器自动构建请求和响应对象,然后执行Servlet的service()方法,该
方法会接收请求和响应对象,通过响应对象将处理结果发送给用户。
2、怎么请求Servlet
用户通过一个URL来请求一个Servlet。比如:http://localhost:8080/HelloApp/HelloServlet
3、怎么处理请求
当用户请求Servlet时,容器构建ServletRequest对象request,并传递给Servlet的Service()方 法,
Service通过request对象获取到请求的参数,然后,根据参数做出相应的处理,通过ServletResponse对
象来向客户端发送响应 内容。
4、怎么响应客户端
当用户请求一个Servlet时候,容器会自动创建ServletResponse对象response,然后通过response对象
向客户端发送响应内容。
5、Servlet的生命周期
a、Servlet的class经过部署,并启动容器
b、(当请求该Servlet时候)容器自动创建Servlet对象xServlet,然后xServlet调用其init()方法。
到此,Servlet初始化结束。
c、一旦客户端请求该Servlet,xServlet自动调用service()来处理请求。
d、一旦很长时间都没有请求该Servlet(或者说该Servlet超时),则容器会将xServlet从容器中清除掉。
二、Servlet接口API
1、接口五个方法
2、Servlet的分支
3、Servlet的请求对象ServletRequest
4、Servlet的响应对象ServletResponse
5、Http相关的Servlet
三、总结
1、Servlet是一种规范,称为Servlet规范,是J2EE规范的一部分。
2、Servlet规范定义了Servlet相关的一组接口、其实现是由Servlet容器开发商来实现,类似于JDBC驱动。
3、Servlet的也是类,其对象是通过Servlet容器来创建,Servlet只能在Servlet容器
中运行。打个比方说:容器是青山,Servlet是松柏。
4、当客户端请求Servlet时,容器会做两件事情:
a、Servlet容器会将请求自动组装为一个ServletRequest对象,并自动产生一个ServletResponse对象,这
两个对象一并传递给Servlet的service(request,response)方法。
b、在该Servlet对象上调用service(request,response)方法来处理并响应用户的请求。
5、用户无法直接调用Servlet的方法,也无法去创建Servlet的实例。
servlet原理与生命周期java 2009-12-03 09:58:35 阅读313 评论0 字号:大中小
当客户端向服务器发送一个http请求的时候。服务器端(httpd)会判断是静态的HTML还
是包含动态的页面。如果是静态的页面,服务器端会返回相应的结果(HTML代码)。如果
是动态页面的话,会有两种方式去寻找结果。
1、CGI(Common Gateway Interface,公共网关接口)程序
工作原理:当一个客户端请求到来,该程序会启动一个CGI进程,与相应的数据库服务器或
应用服务器进行连接。得到相应的结果,由服务器返回给客户端。当多个客户端请求同时
到来,会产生多个进程并发执行。
优点:每个进程占用独立的资源,运行速度快(但服务器启动进程并不快,因为要分配出
独立的资源)。当客户请求教少的时候,服务器可以承担这样的消耗。
缺点:当客户请求巨大时,会造成服务器死机。当然,可以在服务器端限制,比如说用户请
求超过某个范围,就不响应请求。或者采用多台服务器集合工作。
2、servlet实例方式
工作原理:服务器端会有一个servlet实例,然后服务器会启动一个进程去使用一个servlet实例。
当多个客户端请求同时到来,会产生多个线程并发的去使用同一个servlet实例。
优点:因为是同一个servlet实例,而且多个线程只是占用同一进程的资源(一个进程可以启动多个
线程)。因为一开始进程就准备好了(不用最分配资源),所以启动线程非常快。
缺点:当线程非常多的时候,会存在一个对进程资源争夺、冲突的问题。这样也会影响到运行
的速度(当然,如果处理好资源争夺、冲突的问题,还是很快)。
比较而言:
CGI程序采用多进程方式为并发请求客户服务,进程占独立资源,运行快,但启动慢。
Servlet采用多线程方式,启动快,资源冲突时速度慢
并发客户量非常大时,进程因为共享资源而占很大优势。
所谓开发一个servlet组件,就JAVA来说,不过是开发一个servlet接口。该接口是所有Servlet必
须遵守的规范。定义如下:
void destroy()//不是销毁servlet,而是一个servlet对象即将被销毁执行的一个方法。(释放资源)
ServletConfig getServletConfig()//servlet部署的相关配置有关。
String getServletInfo()//获取servlet信息,告诉调用者干什么用的字符串描述。
void init(ServletConfig config)//不是创建对象,而是servlet被创建对象之后调用的方法(分配资源)
void service(ServletRequest req,ServletReponse res)//一个请求到达时,servlet对象
调用该方法进行工作。任务:给客户端制造出结果。
写一个类,里面包括这些方法,然后去实现相应功能。(说的很容易,写很难哦)!
servlet生命周期:
由servlet引擎(容器)启动和停止,当第一个请求到达servlet引擎,servlet会去查
看有没有创建这样一个servlet对象,如果没有,会创建一个servlet实例。调用
init()方法,做相关配置文件的读取。初始化之后,调用service()方法,按照客
户的某些数据和参数工作,为客户端产生输出结果。
当第二个请求到来,servlet已经创建过,不再调用init()方法,直接执行service()方法,init只被执行一次。
servlet服务器停止,会调用destroy()方法。关闭对象。
servlet服务器存在多个应用程序,当一个应用程序停止会重启的时候,servlet会把该应用
程序对应的servlet对象销毁。
(当一个servlet实例好久没人用,会被保存到文件,不占用内存了。当有人用时,在加载
进内存。有效节约资源)(是各大应用服务器自己的优化方案)
struts1是在01年左右发布的,一出来就很受欢迎,经过很长时间的发展,有很好
的稳定性,现在企业中都还有很多企业在用;缺点就是它实在是太老了,对后来发
展的其他框架比如spring,freemarker的支持都不太好。
struts2则是集合了webwork和struts1的优点的核心为webwork的开源框架,它有自
己的AOP库,同其他的框架可以很好的兼容。学过struts1的人都知道,struts1是
直接依赖于servlet的API的,这样导致了类之间耦合度过高,需要修改的时候甚至
会牵扯到视图层,这个是struts2比struts1明显要好的地方。
至于servlet呢,是J2EE的核心技术的一部分,struts1、struts2什么的都是以它
为基础的。简单的说,它是服务器端负责处理客户端发送过来的请求并产生回应的一
个控制器。如果你有心向J2EE发展,servlet的知识是一定要掌握的。至于其余的什
么框架,只要清楚原理,要入门都很简单。
Servlet原理2009-08-21 09:01一、Servlet基础
1、Servlet执行过程
用户请求一个Servlet,Servlet容器自动构建请求和响应对象,然后执行Servlet的service()方法,该
方法会接收请求和响应对象,通过响应对象将处理结果发送给用户。
2、怎么请求Servlet
用户通过一个URL来请求一个Servlet。比如:http://localhost:8080/HelloApp/HelloServlet
3、怎么处理请求
当用户请求Servlet时,容器构建ServletRequest对象request,并传递给Servlet的Service()方 法,
Service通过request对象获取到请求的参数,然后,根据参数做出相应的处理,通过ServletResponse对
象来向客户端发送响应 内容。
4、怎么响应客户端
当用户请求一个Servlet时候,容器会自动创建ServletResponse对象response,然后通过response对象
向客户端发送响应内容。
5、Servlet的生命周期
a、Servlet的class经过部署,并启动容器
b、(当请求该Servlet时候)容器自动创建Servlet对象xServlet,然后xServlet调用其init()方法。
到此,Servlet初始化结束。
c、一旦客户端请求该Servlet,xServlet自动调用service()来处理请求。
d、一旦很长时间都没有请求该Servlet(或者说该Servlet超时),则容器会将xServlet从容器中清除掉。
二、Servlet接口API
1、接口五个方法
2、Servlet的分支
3、Servlet的请求对象ServletRequest
4、Servlet的响应对象ServletResponse
5、Http相关的Servlet
三、总结
1、Servlet是一种规范,称为Servlet规范,是J2EE规范的一部分。
2、Servlet规范定义了Servlet相关的一组接口、其实现是由Servlet容器开发商来实现,类似于JDBC驱动。
3、Servlet的也是类,其对象是通过Servlet容器来创建,Servlet只能在Servlet容器
中运行。打个比方说:容器是青山,Servlet是松柏。
4、当客户端请求Servlet时,容器会做两件事情:
a、Servlet容器会将请求自动组装为一个ServletRequest对象,并自动产生一个ServletResponse对象,这
两个对象一并传递给Servlet的service(request,response)方法。
b、在该Servlet对象上调用service(request,response)方法来处理并响应用户的请求。
5、用户无法直接调用Servlet的方法,也无法去创建Servlet的实例。
servlet原理与生命周期java 2009-12-03 09:58:35 阅读313 评论0 字号:大中小
当客户端向服务器发送一个http请求的时候。服务器端(httpd)会判断是静态的HTML还
是包含动态的页面。如果是静态的页面,服务器端会返回相应的结果(HTML代码)。如果
是动态页面的话,会有两种方式去寻找结果。
1、CGI(Common Gateway Interface,公共网关接口)程序
工作原理:当一个客户端请求到来,该程序会启动一个CGI进程,与相应的数据库服务器或
应用服务器进行连接。得到相应的结果,由服务器返回给客户端。当多个客户端请求同时
到来,会产生多个进程并发执行。
优点:每个进程占用独立的资源,运行速度快(但服务器启动进程并不快,因为要分配出
独立的资源)。当客户请求教少的时候,服务器可以承担这样的消耗。
缺点:当客户请求巨大时,会造成服务器死机。当然,可以在服务器端限制,比如说用户请
求超过某个范围,就不响应请求。或者采用多台服务器集合工作。
2、servlet实例方式
工作原理:服务器端会有一个servlet实例,然后服务器会启动一个进程去使用一个servlet实例。
当多个客户端请求同时到来,会产生多个线程并发的去使用同一个servlet实例。
优点:因为是同一个servlet实例,而且多个线程只是占用同一进程的资源(一个进程可以启动多个
线程)。因为一开始进程就准备好了(不用最分配资源),所以启动线程非常快。
缺点:当线程非常多的时候,会存在一个对进程资源争夺、冲突的问题。这样也会影响到运行
的速度(当然,如果处理好资源争夺、冲突的问题,还是很快)。
比较而言:
CGI程序采用多进程方式为并发请求客户服务,进程占独立资源,运行快,但启动慢。
Servlet采用多线程方式,启动快,资源冲突时速度慢
并发客户量非常大时,进程因为共享资源而占很大优势。
所谓开发一个servlet组件,就JAVA来说,不过是开发一个servlet接口。该接口是所有Servlet必
须遵守的规范。定义如下:
void destroy()//不是销毁servlet,而是一个servlet对象即将被销毁执行的一个方法。(释放资源)
ServletConfig getServletConfig()//servlet部署的相关配置有关。
String getServletInfo()//获取servlet信息,告诉调用者干什么用的字符串描述。
void init(ServletConfig config)//不是创建对象,而是servlet被创建对象之后调用的方法(分配资源)
void service(ServletRequest req,ServletReponse res)//一个请求到达时,servlet对象
调用该方法进行工作。任务:给客户端制造出结果。
写一个类,里面包括这些方法,然后去实现相应功能。(说的很容易,写很难哦)!
servlet生命周期:
由servlet引擎(容器)启动和停止,当第一个请求到达servlet引擎,servlet会去查
看有没有创建这样一个servlet对象,如果没有,会创建一个servlet实例。调用
init()方法,做相关配置文件的读取。初始化之后,调用service()方法,按照客
户的某些数据和参数工作,为客户端产生输出结果。
当第二个请求到来,servlet已经创建过,不再调用init()方法,直接执行service()方法,init只被执行一次。
servlet服务器停止,会调用destroy()方法。关闭对象。
servlet服务器存在多个应用程序,当一个应用程序停止会重启的时候,servlet会把该应用
程序对应的servlet对象销毁。
(当一个servlet实例好久没人用,会被保存到文件,不占用内存了。当有人用时,在加载
进内存。有效节约资源)(是各大应用服务器自己的优化方案)
相关推荐
下面我们将深入探讨Struts1和Struts2的区别。 1. 设计模式: - **Struts1**:基于Front Controller模式,只有一个Servlet(ActionServlet)处理所有请求。它使用Plug-In和Dispatcher机制来实现业务逻辑和视图的...
Struts1和Struts2是两个非常著名的Java Web框架,它们在处理MVC(Model-View-Controller)架构方面有着显著的区别。以下是关于这两个框架在关键特性上的对比: 1. **Action类**: - **Struts1**:要求Action类继承...
Struts1和Struts2是两个非常著名的Java Web框架,它们都用于构建MVC(Model-View-Controller)架构的应用程序。尽管它们都是Struts家族的一部分,但它们在设计哲学和实现方式上存在显著差异。 首先,从Action类的...
### Struts1与Struts2的主要区别 #### 一、Action执行机制的不同 - **Struts1**: 在Struts1框架中,Action是基于单例模式的,这意味着所有的请求都会共享同一个Action实例。这就导致了如果在Action中保存实例变量...
### Struts1与Struts2的区别与对比 #### 概述 Struts1与Struts2是基于Java的两种流行的Web应用框架,它们都遵循MVC(Model-View-Controller)设计模式,用于构建结构化的Web应用程序。Struts1是早期版本,在2000...
在探讨Struts2与Struts1的区别时,我们需深入理解这两个框架的设计理念、架构模式以及它们在实际应用中的表现差异。以下将从多个角度详细分析这两种流行Java Web框架的不同之处。 ### 1. **Action类的区别** #### ...
Struts2 和 Struts1 是两个著名的 Java Web 开发框架,它们都出自 Apache Software Foundation,但有着显著的区别。Struts1 是早期的 MVC 框架,而 Struts2 则是在 WebWork 框架的基础上发展起来的,它吸收了 Struts...
### Struts1与Struts2本质区别 #### 1. 在Action实现类方面的对比 - **Struts 1**:要求Action类必须继承一个抽象基类`Action`,这种设计方式意味着开发者必须按照预设的结构来编写代码,灵活性较低。这种通过抽象...
### Struts1与Struts2的主要区别 #### 1. Action类的设计差异 - **Struts1**: 在Struts1框架中,Action类必须继承自一个抽象类`org.apache.struts.action.Action`。这种方式可能导致的问题是代码灵活性较低,尤其...
### Struts2与Struts1的主要区别 #### Struts2架构设计与实现方式 - **Struts2**在设计上采用了更加灵活的方式,每个请求都对应一个实例化的Action对象,而不是像**Struts1**那样在整个请求周期内共享同一个Action...
### Struts1.x与Struts2.x的主要区别 在深入探讨Struts1.x与Struts2.x的区别之前,我们先来了解一下这两个框架的基本背景。Apache Struts是用于构建企业级Web应用程序的开源框架,它提供了MVC(模型-视图-控制器)...
通过对比分析Struts1和Struts2的特点,我们可以更好地理解这两种框架之间的区别,并能够根据实际项目需求做出合理的选择。这对于软件开发人员来说至关重要,能够帮助他们在日常工作中更高效地解决问题。
Struts1使用的是JSP和Tiles框架来组织视图,而Struts2引入了FreeMarker和Velocity等模板引擎,提供了更多样化的视图渲染方式。 **5. 配置方式:** Struts1的配置主要在XML文件中完成,而Struts2引入了更简洁的注解...
Struts1和Struts2是两个不同的版本,它们各自拥有独特的特性和功能,但在Java Web开发领域都扮演了重要角色。 **Struts1** Struts1是最早的版本,它在2001年发布,是基于ApacheJakarta项目的一个框架。Struts1的...