servlet VS CGI
1)servlet 可移植 跨平台 CGI 不行
2) 在传统 CGI 中每个请求都要启动一个新进程, 若 CGI 程序的本身执行时间较短, 启动进程所需要的进行所需要的开销很可能反而超过实际执行的时间; servlet, 每个请求由轻量级的 java 线程处理
3) 在传统 CGI 中, 若有 N 个并发的对同一个 CGI 的请求, 该 CGI 的程序代码在内存中重载了 N 次, 对于 servlet, 处理请求的是 N 个线程, 只要一份 servlet 类代码
如何实现 servlet 单线程模式
要实现单线程模式, 可以在配置文件中修改 isThreadSafe 属性, 比如,<%@page isThreadSafe=false%>
servlet 页面间对象传递的方法有几种
用 request,session,applicationCookie 等方法实现页面间的对象传递
jsp VS servlet
jsp 是 servlet 技术的扩展, 本质上是 servlet 的简单方式, jsp 编译后是类 servlet 他们最主要额不同在于: servlet 的应用逻辑在 java 文件中, 并且完全从表示层中的 html 分离出来 Jsp 是 java 和 html 可以组合为一个扩展名为. jsp 的文件 Jsp 侧重视图, servlet 侧重控制逻辑
<jsp:include page=include.jsp flash=true> <jsp:forword page=next.jsp>
前者页面不会转向 include 所指向的页面, 只显示该页的结果, 主页面还是原来的页面, 指向完以后还会回来, 相当于函数调用, 并且可以带参数后者完全转向新页面, 不会再回来, 相当于 goto 语句
内置对象
1)request: 用户端的请求, 此请求会包含来着 get or post 请求的参数
2)response: 网页传回用户端的响应
3)pageContext: 网页的属性
4)session: 与请求有关的会话
5)application:servlet 正在执行的内容
6)out: 传送回应的输出
7)conig:servlet 的部件
8)page:gsp 网页本身
9)exception: 网页错误
哪些动作 (6 个)
1)jsp:include 在页面被请求时, 引入一个文件
2)jsp:useBean 寻找 or 实例化一个 JavaBean
3)jsp:setProperty 这只 javaBean 的属性
4)jsp:getProperty 输出某个 javaBean 的属性
5)jsp:forword 把请求转到一个新页面
6)jsp:plugin 根据浏览器类型为 java 插件生成 object or embed 标配
动态 include 与静态 include
动态 include 用 jsp:include 动作实现, 它总是会检查所包含文件中的变化, 使用于包含动态页面
静态 include 用 include 伪码实现, 不会检查所含文件的变化, 适用于包含静态页面
来源: http://www.jianshu.com/p/589af9c85bac