1.1jsp简介
jsp是 Java Sever Page的缩写。
1.2几种常见的WEB语言优劣
JSP:java平台,安全性高,适合开发大型的企业型WEB应用程序,与SERVLET一样,在服务器端执行。
ASP.NET 简单易学,但是安全性以及跨平台性较差。
PHP:简单高效,成本低,开发周期短,适合中小型企业的WEB应用开发。LAMP=Linux+Apache + Mysql + PHP
1.3java页面元素构成
声明+表达式+小脚本+指令+注释+静态内容
1.4JSP指令
Page指令:通常用于jsp页面的顶端,同一个页面可以有多个Page指令
include指令:将一个外部文件嵌入到当前JSP页面中,同时,解析这个页面中的JSP语句。
taglib指令:使用标签定义新的自定义标签在JSP中启用定制行为。
2.1JavaWeb开发基本知识
Web 应用程序有以下特点:
1)使用HTTP协议通信
2)服务器把数据组织成HTML格式
3)浏览器安装方便
2.2jsp实质
jsp从本质上来说就是一个servlet文件,只不过在创建上的方式不同,在进行编译之后就会再次变成一个servlet这个文件
2.3 jsp注释
在jsp页面的注释。
在HTML上的注释: 当jsp被解析为java文件时,客户端可见,注释的语句会被out.println()方法返回到客户端。
JSP的注释:<%-- html --%> .只能用来注释JSP文件,在JSP文件被解析成Java文件时,注释会被删除,客户端不可见。PS:即服务器端元素
Java注释:单行注释 // 多行注释/* */ 不可见
2.4 JSP 脚本
概念:在JSP文件中插入的Java脚本
语法:<% Java代码 %>
Jsp声明:定义插入到Servlet中的成员变量和方法,在页面上不会有数据的输出,要输出所声明的数据,就要和其他表达式配合使用。
语法:<%! java变量或者是方法 %>
JSP表达式:把方法的结果或者是变量的值作为一个字符串输出。即在JSP页面执行的表达式
语法:<%= Java表达式 %> 注意:表达式不以分号结尾
2.5 页面元素Page
JSP通过多线程进行处理
2.6 JSP内置对象
2.6.1内置对象简介
JSP内置对象是WEB容器创建的一组对象,不需要使用new关键字就可以使用的空置对象。
2.6.2常用内置对象
out request response session application Page pageContent exception config 当然,后面四个不常用
web应用程序:请求和响应模式。
缓冲区:Buffer。所谓缓冲区就是内存的一块区域用来保存临时数据。
2.6.7 out对象
里面有一系列的方法能对缓冲区之类的进行处理。其中有.cleare() 和 .flush() 这两个方法但是前者如果在后者之后再调用的话就会报出异常。解决办法:使用 .cleareBuffer() 这个方法。
2.6.8 get 与 post 两者之间的区别
这两个是表单 form 的提交方式。
get:以明文的方式,通过URL提交数据,数据在URL中可以看到,提交的数据最多不超过2kb,安全性较低,但是效率比post方式高,适合提交数据量不大,安全性不高的数据,比如:搜查、查询等功能。
post:将用户提交的信息封装在HTML、HEADER内,适合提交数据量大,安全性高的用户信息,比如:注册修改上传等功能。
2.6.9 request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应,它是HttpServeltRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。同样,也有很多不一样的方法:
setCharacterEncoding(String encoding) 设置表单的编码方式。
getParameter(String key) 返回客户端用户提交的参数。
getParameterValues(String keys) 返回多个同名参数值,以数组的形式返回。
void setAttribute(String Object) 存储此请求中的属性
object getAttribute(String name) 返回指定属性的属性值。
2.6.10 控制服务器的响应信息 response
response 对象包含了响应客户请求的有关信息,但在JSP中很少直接用到他,它是HttpServeltResponse 类的实例,response 对象具有页面作用域,即访问一个页面时,该页面内的response 对象只能对这次访问有效其他页面的response 对象对当前页面无效。
常用方法:。。。
2.6.11 请求重定向与请求转发的区别
请求重定向:客户端行为。response.sendRedirect().从本质上讲,等同于两次请求,前一次对象不会保存,地址栏的URL会改变。
请求转发:服务器行为。request.getRequestDispatcher().forward(). 是一次请求,转发后请求对象会保存,地址栏的URL不会发生改变。
2.6.12 session 对象
session 对象,表示客户端的一次会话,web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间也就是用户浏览这个网站所花费的时间。
什么是session?
在服务器的内存中保存着不同用户的session
session对象在第一个JSP页面被装载时自动创建完成会话期管理。
会话:从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器,离开这个服务器结束被称为一个会话。
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种方法知道这是一个用户,这就需要用到session
session对象是一个 HttpSession 对象实例。
session创建周期:
创建:当客户端第一次访问某个jsp或者Servelt 时,服务器会为当前会话创建一个SessionId,每次客户端向服务器端发送请求时,都会将此sessionId 携带过去,服务器端会为这个ID进行校验。
活动:1》某次会还中通过超链接打开的新页面属于同一次会话。
2》只要当前页面没有全部关闭重新打开新的浏览器窗口进行访问同一项目资源时,属于同一次会话。
3》除非本次会话的所有页面都关闭后再重新访问某个JSP或者Servlet将会创建一个新的会话。
注意事项:注意原有的会话还存在,只是这个旧的sessionId 任然存在,存在于服务器,只不过再也没有客户端携带他然后交与服务器进行校验。
销毁:1》调用了session.invalidate() 方法。
2》session超时(默认30分钟)。当然这个时间我们也能进行修改,@1:调用方法:setMaxInactiveInterval() 单位:秒。 @2:在web.xml 文件中进行修改 单位十分钟。
其他四个对象不常用,这里就不再一一说明。