马士兵Servlet&Jsp学习
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学习的更多相关文章
- 马士兵 Servlet & JSP(1) Servlet (源代码)
1.HTTP协议基础测试(获取页面源代码) import java.io.BufferedReader; import java.io.IOException; import java.io.Inpu ...
- [转载]马士兵Java视频教程 —— 学习顺序
书(Java核心编程)+视频..这样学感觉比较好.. 原文地址:马士兵Java视频教程 —— 学习顺序作者:习惯 第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5. ...
- 马士兵Java视频教程 —— 学习顺序
第一部分:J2se学习视频内容包括: 尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置 尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重 ...
- 马士兵讲jsp项目--BBS项目分析笔记
1 导言 作为一个新手JAVA程序员,我相信很多人和我一样急切的想要寻找项目来做,这里我把马士兵老师讲的JAVA WEB的第一个小项目拿过来给大家分享一下. 首先,对一个项目而言我们先要认识清楚我们要 ...
- 算是学完了《Servlet&JSP学习笔记》,立此存照
我感觉从构架上来说,算是入门了, 终于可以正式进入SPRING的学习啦...爽 代码就不弄了,真的太多了...花了差不多两周呢..
- Hibernate 马士兵 学习笔记 (转)
目录(?)[+] 第2课 Hibernate UML图 第3课 风格 第4课 资源 第5课 环境准备 第6课 第一个示例Hibernate HelloWorld 第7课 建立Annotation版本的 ...
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 《Servlet和jsp学习指南》 笔记1
chapter 1 Servlet 4个java 包: 对于每一个http请求,Servlet请求都会创建一个ServletRequest实例,并将它传给Servlet的service方法.Servl ...
随机推荐
- 数据对接—kettle使用之二
这一篇开始进入kettle的一些常用插件的使用介绍,通过实例介绍不同插件的功能.这一篇说(Data Grid和文本文件输出)的使用. 文本文件输出介绍(可以略过,一般用不着): 1.Run ...
- Oracle 11g新特性invisible index(不可见的索引)
假设一张表上有十几个索引,你有什么感受?显然会拖慢增.删.改的速度.不要指望开发者能建好索引.我的处理方法是先监控非常长的一段时间.看哪些索引没实用到,然后删除. 但删除以后,假设发现某一天实用,那又 ...
- Android 属性动画(一)
1.概述 Android提供了几种动画类型:View Animation .Drawable Animation .Property Animation .View Animation相当简单,不过只 ...
- params关键字载入空值的陷阱
在编写方法时,不确定这个方法要传入多少个参数,或者随着程序的开发速度,该方法的参数会发生很大变化,在C#中引入了params关键字,使用params修饰object类型的数组并作为方法的参数类型,可以 ...
- RAC RMAN备份
这篇主要介绍的是RAC 环境下的RMAN 备份. 关于Oracle 备份与恢复的一些理论知识参考我的Blog: Oracle 备份 与 恢复 概述 http://blog.csdn.net ...
- Java_观察者模式(Observable和Observer) -转
原文地址: Java_观察者模式(Observable和Observer) 一.观察者模式介绍 在Java中通过Observable类和Observer接口实现了观察者模式.一个Observer ...
- 高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框
上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...
- const的重载
class A { private: int a; public: A(int x) :a(x){}//构造函数并不能重载 void display(){ cout << "no ...
- 关于ROW_NUMBER函数的使用(The use of ROW_NUMBER function )
1.用于删除重复记录(The use of to delete the common record) 例子:(Example) #1初始化数据(Initialize the data) CREATE ...
- 15--Box2D使用(一、创建物理世界)
创建工程Box2DTest,去掉背景和精灵对象等.首先在HelloWorldScene.h头文件定义一个屏幕像素与物理世界长度转换宏,并引入box2D头文件 #define PIXEL_TO_METE ...