jsp内置对象
对象:就是一个类的实例。
jsp内置对象:就是web容器给jsp提前实例化好了的对象,不需要人为创建,直接可以使用。
jsp常用的内置对象有:
out输入流
//登录失败,提示失败!
//jsp也是动态网页,所以输出网页上的标签也会被解析
out.print("<script>alert('登录失败!');location.href='login.jsp';</script>");
request请求对象
(1)内置方法有
①getParameter(“参数名”) 可以取到请求参数值
②setCharacterEncoding(“utf-8”) 可以设置请求中的中文参数乱码的问题
//使用request对象可以获取请求中的数据
//获取用户名
String uname=request.getParameter("username");
response响应
①sendRedirect(“页面”) 重定向到新的页面
//登录成功,response响应跳转到新的页面
//sendRedirect("home.jsp")重定向不能将数据发送到下一个页面上去
response.sendRedirect("home.jsp");
session 一级缓存
作用域:当前用户整个项目的一次会话
①setAttribute(“key”,“value”) 可以键值对存值
②getAttribute() 根据key取值 返回值为Object
③setMaxInactiveInterval(秒) 可以设置session的非活动时间
④invalidate() 销毁session(清空session对象数据)
//登录成功之后,直接将用户名存进session对象(session的作用域是整个项目)
session.setAttribute("user",uname);
session.setMaxInactiveInterval(60*10);//非活动时间设置
//因为数据 已经存在session中了,所以直接重定向页面就可以了
response.sendRedirect("home.jsp");
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注销</title>
</head>
<body>
<%
//清空session中的用户数据
session.invalidate();
//回到登录页面
response.sendRedirect("login.jsp");
%>
</body>
</html>
Application 全局会话
①所有用户共用的会话
②生命周期为:项目启动开始到项目结束
<%
//cookie是键值对存取值
//在服务器上声明cookie
Cookie c=new Cookie("username","aaaa");
response.addCookie(c);
//将Cookie响应到客户端上
%>
include指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
//include file 可以调用其它页面
<%@include file="ExamLogin.jsp"%>
<html>
<head>
<title></title>
</head>
<body></body>
<html>
JSP中常用的跳转页面方式有:
1、out.print(“使用脚本跳转”);
2、重定向跳转
response.sendRedirect(“页面”);
(1)不能将request和response的数据传递到下一个页面
(2)网页url地址栏会发生改变
3、转发
getRequestDispatcher(“home.jsp”).forward(request,response)
(1)可以将request和response的数据传递到下一个页面
(2)网页url地址栏不会发生改变
提问:重定向和转发的区别?