JSP核心内置对象

本文详细介绍了JSP中的九大内置对象如request、response、session等,包括它们的用途、方法以及如何在处理客户端请求、设置响应参数和实现数据传递中发挥作用,同时区分了转发和重定向的概念及其原理。
摘要由CSDN通过智能技术生成
九大内置对象:

request
response
pageContext
session
application
config
out
page
exception

这些对象不需要实例化,可以直接使用

不需要实例化的原因:JSP内置对象是由Web容器初始化并加载的,这些实例按照JSP规范进行默认的初始化操作,可直接再JSP中使用

request

request对象主要用于处理客户端请求

服务器通过request对象获取浏览器发送的数据

request常用方法

String getParameter(String name):根据表单组件名称获取提交数据

void setCharacterEncoding(String charset):指定每个请求的编码

String[ ] getParameterValues(String name):获取表单组件对应多个值时的请求数据

RequestDispatcher getRequestDispatcher(String path):返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

request.setCharacterEncoding("UTF-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
if("lv".equals(name)&&"123".equals(pwd)){
    request.getRequestDispatcher("index.jsp").forward(request,response);
}
response

response对象用于设置响应参数和获取响应流

response对象提供了请求重定向功能 

response常用方法

void addCookie(Cookie cookie):向客户端添加Cookie

void setContentType(String type):设置HTTP响应的contentType类型

void setCharacterEncoding(String charset):设置响应所采用的字符编码类型

void sendRedirect(String location):将请求重新定位到一个新的URL上

request.setCharacterEncoding("UTF-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
if ("lv".equals(name) && "123".equals(pwd)) {
    response.sendRedirect("index.jsp");
}

使用查询字符串可以在重定向时实现简单的数据传递

名值对方式
通过字符“?”连接在URL地址后面
多个名值对可用字符“&“进行分隔

response.sendRedirect("index.jsp?username="+URLEncoder.encode(name,"UTF-8"));
session

由于session对象存储与内存中,而内存空间是有限的,因此session对象适合存储一些体量较小,频繁存取的数据

Session将数据保存在服务器端

session与窗口的关系

每个session对象都与一个浏览器窗口对应
重新开启一个浏览器窗口,可以重新创建一个session对象
通过超链接打开的新窗口,新窗口的session与其父窗口的session相同

session常用方法
String getId():获取sessionid

long getCreationTime():返回session对象被创建的时间,以毫秒为单位

int getMaxInactiveInterval():获取session的有效非活动时间,以秒为单位

void invalidate():设置session对象失效

Object getAttribute(String key):通过key获取session中保存的对象

void removeAttribute(String key):从session中删除指定key对应的对象

Session Id 是:<%= session.getId()%></br>
Session 创建时间:<%= new Date(session.getCreationTime())%>

setMaxInactiveInterval(int interval):设置session有效时长,单位秒

void setAttribute(String key, Object value):以key/value的形式将对象保存到session中

request.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
if("lv".equals(username) && "123".equals(password)){
    //验证通过,设置登录用户信息
    session.setAttribute("user",username);
    //设置session过期时间
    session.setMaxInactiveInterval(15*60);
    //打开首页
    request.getRequestDispatcher("index.jsp").forward(request,response);
}else{
    response.sendRedirect("login.jsp");
}
Cookie

Cookie是Web服务器存储在客户端的一系列文本信息

Cookie会将数据保存在客户端

作用

对特定对象的追踪
实现各种个性化服务
在Cookie有效期内,记录用户登录信息
创建Cookie对象

Cookie newCookie = new Cookie(String key,String value);

写入Cookie对象

Cookie name=new Cookie("username",username);
Cookie pwd=new Cookie("password",password);
response.addCookie(name);
response.addCookie(pwd);
response.sendRedirect("getCookie.jsp");

Cookie对象的setMaxAge(int expiry)方法可以设置Cookie有效期,单位为秒

Cookie name =  new Cookie("username",username);
Cookie pwd = new Cookie("password",password);
name.setMaxAge(60);
pwd.setMaxAge(60);

Cookie其他方法

void setValue(String value):在cookie创建后,对cookie进行赋值

String getName():获取cookie的名称

String getValue():获取cookie的值

int getMaxAge():获取cookie的有效时间,以秒为单位

转发和重定向
转发

原理:转发在服务器端发挥作用,指在服务器内部控制权的转移,通过forward()方法请求在多个页面中进行转移。浏览器的地址栏不会显示出转向后的地址,可以共享请求后的数据

作用:通过RequestDispatcher对象的forward()方法提交信息在多个页面中进行传递

request.getRequestDispatcher("ok.jsp").forward(request, response);
重定向

原理:重定向在客户端发挥作用,通过浏览器重新请求新地址,实现页面转向,在地址栏中可以显示转向后的地址,不能共享上一次请求中的数据。

作用:通过请求新的地址实现页面转向
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值