关于Jsp 内置对象

Jsp的页面元素

a.脚本Scriptlet
I.

 <%
        局部变量, Java代码
%>

II.

<%!
全局变量、定义方法
%>

III.

<%=
输出表达式
%>

一般而言,修改web.xml、配置文件、java代码 需要重启tomcat服务,但是如果只修改jsp/html/css/js ,不需要

Jsp九大内置对象

Out: 输出对象, 向客户端输出内容


Response: 响应对象
对应方法:

void addCookie(Cookie cookie):

服务端向客户端增加一个Cookie: (客户端键值对象,不是内置对象,相当于本地缓存),具体用法及来历下面具体描述。

void sendRedirect(String location)throws IOException;

页面跳转的一种方式P(重定向)

void setConteType(String type);

设置服务端响应的编码(设置服务器的contentType类型))

Config: 配置对象

Page: 当前jsp页面对象

Exception: jsp异常对象


范围对象(小->大)

pageContext :(JSP页面容器,page对象)当前页面有效
跳转无效

Request: 同一次请求有效,其他请求无效 请求对象,存储客户端向服务端发送的请求信息

对应方法:

String getParamter(String name);

根据请求的字段名 ,返回字段值value

String[]  getParamterValues(String name);

根据请求的字段key,返回多个值value (checkbox)多选按钮

void setCharcterEncoding("编码格式utf-8");

设置请求编码
(tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)

getRequestDispatcher(“转发路径”).forward(request,response):

请求转发 A页面->B页面

getServerContext();

获取项目的servletContext对象

Session:(服务端)同一次会话有效:

对应方法:

String  getId();

获取sessionid

boolean isNew();

判断是否是新用户(第一次访问)

void invalidate();

使session失效 (退出登录 、注销)

void SetAttribute();

设置session属性

Object getAttibute();

获取session属性

void setMaxInactiveInterval();

设置最大有效 非活动时间

int getMaxInactiveInterva();

获取最大有效时间

Application: 全局对象 全局有效 浏览器关闭失效
如果想重启后仍然有效------->JNDI配置

对应方法:

String  getContextPath();

虚拟路径

String getRealPath():

绝对路径(虚拟路径 相对的绝对路径)


以上4个对象共有的方法:

Object getAttribute(String name);

根据属性名,或者属性值

void setAttribute(String name,Object obj);

设置属性值(新增,修改 )

void SetAttribute(“a”,”b”);

如果a对象之前不存在,则创建一个a对象,如果存在,则将a的值改为b

void removeAttribute(String name);

根据属性名,删除对象

注意:以上范围对象,尽量使用小的范围,因为,对象的范围越大,造成的性能损耗越大。
不要没事闲的在范围大的对象里面瞎放东西,除非业务要求。

关于Cookie

Cookie是由服务端生成的 ,再发送给客户端保存
,但是Cookie安全性较差。
Cookie由javax.servlet.http.Cookie产生

对应方法:

void Cookie(String key ,String value);

设置键值队

String getName();

获取key

String getValue();

获取value

Void setMaxAge(int expiry);

最大有效期(单位秒,设置时间越长越不安全)


Cookie 会生成一个name为JSESSIONID的Cookie

发送Cookie步骤:

1.Response.addCookie方法,把新建的Cookie对象放进去

2.利用页面跳转(转发/重定向)

3.客户端获取:request.getCookies();(不能单独的获取某一个Cookie对象,只能获取全部)

请求转发和重定向的区别:

请求转发和重定向的区别

Post方式与Get方式

Get 提交方式:method=”get” 和地址栏,超链接 “< a href=”xx”>” 请求方式都属于get提交方式

Post 提交方式:method=”post”

区别:
A.Get方式 在地址栏显示信息,请求信息(地址栏容纳信息有限,例如图片,音频等。会出错);post不显示
B.文件上传操作必须是post

统一请求的编码 request

get 方式请求 如果出现乱码 解决:
A.统一每一个变量的编码

new String( xxx.getBytes(“当前编码格式”),”utf-8)

B.修改服务器默认编码
在sersice.xml配置文件中端口号后面添加属性

URIEncoding=”UTF-8”

Post方式请求 如果出现乱码 解决:

request.setCharacterEncoding(“utf-8);

Cookie 和 session的区别:

Sessioncookie
保存的位置服务端客户端
安全性较安全较不安全
保存的内容ObjectString

Session机制

客户端第一次请求服务端时,服务端会产生一个session对象(用于保存该客户的信息),并且每个session对象 都会有一个唯一的sessionid(用于区分其他session);
服务端会产生一个Cookie,并且该cookie的name =JSESSIONID,value =服务端sessionId的值;
然后 服务端 响应客户端同时 将该cookie发送给客户端,至此 客户端就有了一个cookie (JSESSIONID)
因此,客户端的Cookie就可以和服务端的session一一对应
(JSESSIONID – SESSIONID)



客户端第二次/n次请求服务端时:服务端会先根据客户端cookie里的

JSESSIONID 去服务端的session中的匹配sessionid,如果匹配成功,说明此用户不是第一次访问,无需访问

例子:
客户端: 顾客(客户端)
服务端:存包处 - 商场(服务端)

顾客第一次存包:商场 判断此人之前已经存过包(通过你手里是否有钥匙)。
如果是新顾客(没钥匙),分配一个要是给该顾客;钥匙会和柜子一一对应;

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值