Servlet&JSP

1>http常见错误信息: 

404--url地址找不找, 

403--禁止访问 

500--服务器内部错误 





2>Servlet的生命周期: 

*生命全过程:加载 ClassLoader-->实例化 new-->初始化 init(ServletConfig)-->处理请求service doGet doPost-->退出服务destroy(); 

*整个过程只有一个servlet对象 

*API中的过程:init()//只执行一次  destroy()//web application 退出的时候 

注意:j2ee要求只new一个servlet,所以init()只执行一次在整个web application结束时就调用destroy(); 

              

3>request和response的关系: 

         |--request-->| 

客户端-|            |--服务器; 

        |<--reponse--| 





4>Cookie:保存到客户端的一个文本文件,与特定客户相关,以“名-值”对的形式保存数据; 





5>Cookies特点如下: 

    1:服务器可以向客户端写内容 

    2:只能是文本内容 

    3:客户端可以阻止服务器写入 

    4:只能拿自己webapp写入的东西 

    5:Cookie分为两种:a、属于窗口/子窗口(放在内存中的) b、属于文本(有生命周期的) 

    6:一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到 (路径是指URL而不是真实文件路径) 





7>session实现方式:a、cookie实现,创建Session的时候会把SessionID保存在 





Cookie里。b、URL实现,自己编程使用URL重写的方式实现Session; 





8>Session总结: 

a,服务器的一块内存(存key-value) 

b,和客户端窗口对应(子窗口)(独一无二) 

c,客户端和服务器有对应的SessionID 

d,客户端向服务器端发送SessionID的时候两种方式:cookie(内存cookie)和 





rewriten URL 

e,浏览器禁掉cookie,就不能使用session(使用cookie实现的session) 

f,如果想安全的使用session(不论客户端是否禁止cookie),只能使用URL重 





写(大大增加编程负担),所以很多网站要求客户端打开cookie; 





9>application是用于保存整个WebApplication的生命周期内都可以访问的数据; 





10>区别:cookie记录在客户端,session记录在服务器; session对应一个窗口, 





application对应所有客户端; 





11>jsp声明:<%!声明为成员变量%> <%声明为局部变量%> 





12>jsp表达式:<%=...=%> 





13>编译指令:是在编译期间执行的指令: 

<%@Directive 属性=“属性值”%> 

常见的Directive有page,include,taglib; 





14>动作指令:是在运行期间的命令 

常见的有jsp:usebean,jsp:include,jsp:forward; 





15>编译指令的<% include file="fileURL"%>和动作指令的<jsp:include 





page="URL" flush="true"/">的区别:1,include编译指令是在JSP程序的转换时期就 





将file属性所指定的程序内容嵌入,然后再编译执行;而include指令在转换时期是 





不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入 





2,Include不能带参数, 而<jsp:include>可以; 





16><jsp:forward>与response。sendRedirect的区别: 

<jsp:forward>: 

a,使用同一个request; 

b,forward后的语句不会继续发送给客户端; 

c,速度快; 

d,服务器内部转换; 

e,可以传参数; 

response.sendRedirect: 

a,是不同的request; 

b,send后的语句会继续执行,除非return; 

c,速度慢; 

d,需要客户端的往返,可以转到任何页面; 

e,可以传参数,直接写在url后面; 





17><jsp:usebean.../> <==> new beanname() 

   <jsp:setProperty name=“beanName” property=“propertyName”/> 

<==>beanName.setPropertyName(); 

   <jsp:getProperty name=“beanName” property=“propertyName”/> 

<==>beanName.getPropertyName();

马士兵Servlet&Jsp学习的更多相关文章

  1. 马士兵 Servlet & JSP(1) Servlet (源代码)

    1.HTTP协议基础测试(获取页面源代码) import java.io.BufferedReader; import java.io.IOException; import java.io.Inpu ...

  2. [转载]马士兵Java视频教程 —— 学习顺序

    书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:马士兵Java视频教程 —— 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5. ...

  3. 马士兵Java视频教程 —— 学习顺序

    第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重 ...

  4. 马士兵讲jsp项目--BBS项目分析笔记

    1 导言 作为一个新手JAVA程序员,我相信很多人和我一样急切的想要寻找项目来做,这里我把马士兵老师讲的JAVA WEB的第一个小项目拿过来给大家分享一下. 首先,对一个项目而言我们先要认识清楚我们要 ...

  5. 算是学完了《Servlet&JSP学习笔记》,立此存照

    我感觉从构架上来说,算是入门了, 终于可以正式进入SPRING的学习啦...爽 代码就不弄了,真的太多了...花了差不多两周呢..

  6. Hibernate 马士兵 学习笔记 (转)

    目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...

  7. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  9. 《Servlet和jsp学习指南》 笔记1

    chapter 1 Servlet 4个java 包: 对于每一个http请求,Servlet请求都会创建一个ServletRequest实例,并将它传给Servlet的service方法.Servl ...

随机推荐

  1. 好的android编码习惯

    上一期分享了android内存优化的一些总结,这一期说说我认为的好的编码习惯,然后下一期会做安卓数据库优化的一些总结,逐渐的会将一些性能优化点总结分享出来,肯定是不够全面的希望不足的地方欢迎指出. 良 ...

  2. Android 基于Netty的消息推送方案之字符串的接收和发送(三)

    在上一篇文章中<Android 基于Netty的消息推送方案之概念和工作原理(二)> ,我们介绍过一些关于Netty的概念和工作原理的内容,今天我们先来介绍一个叫做ChannelBuffe ...

  3. HTML1.0 - html 环境搭建 开发工具

    1. mac  电脑 2. Hbuilder 开发软件 3. 学习基础 HTML 语法 网站  http://www.w3school.com.cn

  4. 使用F#开发量化模型都缺什么?

    量化模型多数是基于统计的,因此,统计运算库应该是必备的.在Matlab.R中包含了大量的统计和概率运算,可以说拿来就用,非常方便,相比之下,F#的资源就很少了,这里给大家提供几个链接,可以解决一部分问 ...

  5. iOS项目名称、版本号与屏幕分辨率

    iOS的版本号,一个叫做Version,一个叫做Build,这两个值都可以在Xcode 中选中target,点击“Summary”后看到. Version在plist文件中的key是“CFBundle ...

  6. linux int to string 方法

    最近从windows 移植程序的时候发现to_string()函数在linux 中不能用,网上找了几种方法,觉得使用stringstream对象来实现类型转化比较好一点. 你只需在你工程中加入下面的t ...

  7. php之类,对象(四)加载类及练习题

    一.加载类:1.命名类文件的时候每个单词首字母大写,后面缀上.class.php eg: Info.class.php 在写编码时定义类名首字母大写,定义变量名小写 eg:class Ren { pu ...

  8. C 语言 联合union初见

    1.什么是联合? “联合”是一种构造类型的数据结构.在一个“联合”内可以定义多种不同的数据类型, 一个被说明为该“联合”类型的变量中,允许装入该“联合”所定义的任何一种数据,这些数据共享同一段内存,已 ...

  9. HTML&CSS基础学习笔记1.10—添加链接

    我们可以设置链接的目标,使我们点击后可以跳转到我们想要去的地方. <a>标签的 href 属性用于指定超链接目标的 URL. 在页面中添加的<a>标签,浏览器会用特殊效果显示, ...

  10. 创建C#DLL

    1. 创建classlibrary 2.编写一个COM接口和一个COM类 [Guid("DBE0E8C4-1C61-41f3-B6A4-4E2F353D3D05")] public ...