Jsp基础知识

Jsp page指令:
<%@ page 属性1="属性值" ... %>

Jsp include指令:
<%@ include file="URL" %>

include动作:
<jsp:include page="URL" flush="true|false"/>

include指令与include动作的区别:

1.语法格式
include指令:<%@ include file=".." %>
include动作:<jsp:include page="..">

2.发生作用的时间
include指令:页面转换期间
include动作:请求期间

3.包含的内容
include指令:文件的实际内容
include动作:页面的输出

4.转换成的servlet
include指令:主页面和包含页面转换为一个servlet
include动作:主页面和包含页面转换为独立的servlet

5.编译时间
include指令:较慢-资源必须被解析
include动作:较快

6.执行时间
include指令:稍快
include动作:较慢-每次资源必须被解析

Jsp注释:
<!-- HTML注释,客户端可见 -->
<%-- Jsp注释,客户端不可见 --%>

<% //单行注释  
/*多行注释*/ %>

Jsp脚本:
<% Java代码; %>

Jsp声明:
<%! Java代码; %>

Jsp表达式:
<%=表达式 %>

Jsp内置对象

一、out对象

out对象是JspWriter类的实例,是向客户端输出内容常用的对象。

常用方法:
1.void println();向客户端打印字符串
2.void clear();清除缓冲区的内容,如果在flush()之后调用会抛出异常
3.void clearBuffer();清除缓冲区的内容,如果在flush()之后调用不会抛出异常
4.void flush();将缓冲区的内容输出到客户端
5.int getBufferSize();返回缓冲区以字节数的大小,如果不设缓冲区则为0
6.int getRemaining();返回缓冲区还剩多少可用
7.boolean isAutoFlush();返回缓冲区满时,是自动清空还是抛出异常
8.void close();关闭输出流

二、request对象

客户端请求的信息被封装在request对象中,通过它才能了解到客户端的需求,然后做出响应。它是httpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。

常用方法:
1.String getParameter(String name);返回name指定参数的参数值
2.String[] getParameterValues(String name);返回包含参数name的所有值的数组
3.void setAttribute(String,Object);存储此请求中的属性
4.object getAttribute(String name);返回指定属性的属性值
5.String getContentType();得到请求体的MIME类型
6.String getProtocol();返回请求用的协议类型及版本号
7.String getServerName();返回接收请求的服务器主机名
8.int getServerPort();返回服务器接收此请求所用的端口号
9.String getCharacterEncoding();返回字符编码方式
10.void getCharacterEncoding();设置请求的字符编码方式
11.int getContentLength();返回请求体的长度(以字节数)
12.String getRemoteAddr();返回发送此请求的客户端IP地址
13.String getRealPath(String path);返回一虚拟路径的真实路径
14.String request.getContextPath();返回上下文路径
15.void request.setCharacterEncoding(String name);设置request的字符集编码

三、response对象

response对象包含了响应客户端的有关信息,但在Jsp中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。

常用方法:
1.String getCharacterEncoding();返回响应用的是何种字符编码
2.void setContentType(String type);设置响应的MIME类型
3.PrintWriter getWriter();返回可以向客户端输出字符的一个对象
4.void sendRedirect(java.lang.String location);重新定向客户端的请求

四、session对象

session对象是一个Jsp内置对象,在第一个Jsp页面被装载时自动创建,完成会话期的管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。session对象HttpSession类的实例。

常用方法:
1.long getCreationTime();返回SESSION创建的时间
2.public String getId();返回SESSION创建时Jsp引擎为它设的唯一ID号
3.public Object setAttribute(String name, Object value);使用指定名称将对象绑定到此会话
4.public Object getAtrtribute(String name);返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
5.String[] getValueNames();返回一个包含此SESSION中左右可用属性的数组
6.int getMaxInactiveInterval();返回两次请求间隔多长时间此SESSION被取消(单位秒)
Session的销毁有三种方式:1、调用session.invalidate()方法;2、Session过期(超时);3、服务器重新启动;

设置Session超时时间有两种方法:
1、session.setMaxInactiveInterval(时间);(单位秒)
2、在web.xml配置

<session-config>
    <session-timeout>10</session-timeout>
</session-config>

五、application对象

application对象实现了用户间的数据的共享,可存放全局变量。application开始于服务器的启动,终止于服务器的关闭。在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。在任何地方对application对象属性的操作,都将影响到其他用户对此的访问。application对象时ServletContext类的实例。

常用方法:
1.public void setAttribute(String name, Object value);使用指定名称将对象绑定到此会话。
2.public Object getAttribute(String name);返回与此对话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。
3.Enumeration getAttributeNames();返回所有可用属性名的枚举。
4.String getServerInfo();返回Jsp(SERVLET)引擎名及版本号。

六、page对象

page对象就是指向当前Jsp页面本身,有点像类中的this指针,它是java.lang.Object类的实例。

常用方法:
1.class getClass();返回此Object的类
2.int hashCode();返回此Object的hash码
3.boolean equals(Object obj);判断此Object是否与指定的Object对象相等
4.void copy(Object obj);把此Object拷贝到指定的Object对象中
5.Object clone();克隆此Object对象
6.String toString();把此Object对象转换成String类的对象
7.void notify();唤醒一个等待的线程
8.void notifyAll();唤醒所有等待的线程
9.void wait(int timeout);使一个线程处于等待直到timeout结束或被唤醒
10.void wait();使一个线程处于等待直到被唤醒

七、pageContext对象

pageContext对象提供了对Jsp页面内所有对象以及名字空间的访问。pageContext对象可以访问到本页所在的session,也可以取本页面所在的application的某一属性值。pageContext对象的本类名也叫pageContext。

常用方法:
1.JspWriter getOut();返回当前客户端响应被使用的JspWriter流(out)
2.HttpSession getSession();返回当前页中的HttpSession对象(session)
3.Object getPage();返回当前页面的Object对象(page)
4.ServletRequest getRequest();返回当前页的ServletRequest对象(request)
5.SerletResponse getResponse();返回当前页的ServletResponse对象(response)
6.void setAttribute(String name, Object attribute);设置属性及属性值
7.Object getAttribute(String name, int scope);返回指定范围内取属性的值
8.int getAttributeScope(String name);返回某属性的作用范围
9.void forward(String relativeUrlPath);使当前页面重导到另一页面
10.void include(String relativeUrlPath);在当前位置包含另一文件

八、Config对象

config对象是在一个Servlet初始化时,Jsp引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

常用方法:
1.ServletContext getServletContext();返回含有服务器相关信息的ServletContext对象
2.String getInitParamter(String name);返回初始化参数的值
3.Enumeration getInitParameterNames();返回Servlet初始化所需所有参数的枚举

九、Exception对象

exception对象是一个异常对象,当一个页面在运行时过程中发生了异常,就产生这个对象。如果一个Jsp页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象。

常用方法:
1.String getMessage();返回描述异常的消息
2.String toString();返回关于异常的简短描述消息
3.void printStackTrace();显示异常以及其栈轨迹
4.Throwable FillInStackTrace();重写异常的执行栈轨迹

Javabean

设计原则:公有类,无参的构造方法,属性私有,getter和setter方法。

Jsp动作元素:
动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

1、与存取JavaBean有关的,包括:
<jsp:useBean><jsp:setProperty><jsp:getProperty>

2、Jsp1.2开始有的基本元素,包括六个动作元素:
<jsp:include><jsp:forward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>

3、Jsp2.0新增加的元素,主要与Jsp Document有关,包括六个元素:
<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>

4、Jsp2.0新增的动作元素,主要是用来动态生成XML元素标签的值,包括三个动作:
<jsp:attribute><jsp:body><jsp:element>

5、Jsp2.0新增的动作元素,主要是用在Tag File中,有两个元素:
<jsp:invoke><jsp:dobody>

动作元素详解:
<jsp:useBean id = "实例名" class = "Java类名" scope = "作用范围" />//作用范围:page,仅在当前页面有效; request,可以通过HttpRequest.getAttribute()方法取得JavaBean对象; session,可以通过HttpSession.getAttribute()方法取得JavaBean对象; application,可以通过application.getAttribute()方法取得JavaBean对象;

<jsp:setProperty name = "JavaBean实例名" property = "*" /> //跟表单关联

<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" /> //跟表单相关

<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value = "BeanValue" /> //手工设置

<jsp:setProperty name = "JavaBean实例名" property = "propertyName" param = "request对象中的参数名" /> //跟request参数关联

<jsp:getProperty name = "JavaBean实例名" property = "属性名" />

<jsp:include page="URL" flush="true|false"/>

<jsp:forward page="URL" /> //等同于request.getRequestDispatcher(“/url”).forward(request, response);

<jsp:param name="参数名" value="参数值"/> //常作为jsp:forward动作的子标签使用

Cookie对象
创建Cookie对象:Cookie newCookie = new Cookie(String key, Object value);
写入Cookie对象:response.addCookie(newCookie);
读取Cookie对象:Cookie[] cookie = request.getCookie();

Cookie常用方法:
1.void setMaxAge(int expiry);设置Cookie的有效期,以秒为单位
2.void setValue(String value);在Cookie创建后,对Cookie进行赋值
3.String getName();获取Cookie的名称
4.String getValue();获取Cookie的值
5.int getMaxAge();获取Cookie的有效时间,以秒为单位

Session与Cookie的区别
1.session在服务器端保存用户信息,而cookie在客户端保存用户信息;
2.session中保存的是Object类型,而cookie保存的是String类型;
3.session随会话的结束而将其存储的数据销毁,而cookie可以长期保存在客户端;
4.session保存重要的信息,而cookie保存不重要的信息;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值