jsp:seeion对象、jsp四大作用域、 include指令

session对象

Session称为一次会话,浏览器的打开及关闭。例如:登录淘宝之后,在该浏览器上无论打开的哪个页面都属于一次会话(不需要登录了)

方法名描述
setAttribute(key,val)设置键值对
getAttribute(key)通过键获取值
getId()获取session的id
setMaxInactiveInterval(time)设置session的过期时间[单位:秒](tomcat中默认配置的过期时间是30分钟)
removeAttribute(key)从session中移除指定的key
<!--login.jsp-->
<%
String errMsg = "";
//登录页面可能会被打开多次(用户想要切换账户)
Object object = session.getAttribute("errMsg");
if(object != null){//从登录失败后跳转过来的
  errMsg = (String)object;
  //移除session中的key
  session.removeAttribute("errMsg");
}
%>
<p style="color:red;"><%=errMsg%></p>
<form action="control.jsp" method="post">
  <input type="text" name="uname" placeholder="请输入用户名">
  <input type="password" name="pwd" placeholder="请输入密码">
  <input type="submit" value="登录">
</form>

<!--control.jsp-->
<%
//设置请求编码格式
request.setCharacterEncoding("utf-8");
//获取表单中的参数
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");
//对用户名及密码进行验证(操作数据库)
if("admin".equals(uname) && "admin".equals(pwd)){
  //将用户的用户名储存起来作为登陆成功表示 //setAttribute 设置键值对
  session.setAttribute("uname",uname); 
  //设置session的失效事件(单位:秒)
  session.setMaxInactiveInterval(3);
  //登录成功直接跳转到个人中心页面
  response.sendRedirect("person.jsp");
}else{
  //通过session存储一个错误信息
  session.setAttribute("errMsg","用户名或密码错误");
  //回到登录页面,并提示错误信息
  response.sendRedirect("login.jsp");
}
%>

//个人中心表
<%
//首先需要先验证用户是否已经登录
Object object = session.getAttribute("uname");
if(object == null){//代表用户未登录,跳转到登录页面
  response.sendRedirect("login.jsp");
  return;
}
%>
jsp四大作用于域

为了根据不同的情况去进行数据的存储、传递等等,jsp中给出了四大作用域以满足不同的使用情况

作用域描述
pageContext当前页生效
request一次请求中生效
session一次会话中生效
application整个web中生效
<%
//当前页
pageContext.setAttribute("pageContext","当前页生效");
//请求中
request.setAttribute("request","一次请求中生效");
//一次会话
session.setAttribute("session","一次会话中生效");
//全局作用域
application.setAttribute("application","整个web项目中");
//请求转发
//request.getRequestDispatcher("show.jsp").forward(request,response);
%>
<hr>
pageContext:<%=pageContext.getAttribute("pageContext")%>
<hr>
request:<%=request.getAttribute("request")%>
<hr>
session:<%=session.getAttribute("session")%>
<hr>
include指令

1.include指令用于引入其他的页面,
因为很多页面可能有一部分内容是相同的,
相同的地方可以提取出来,然后复用,
因此可以把每个页面重复出现的部分单独提出来,
作为一个单独的页面,
然后其它页面都来包含这个页面。

2.语法: <%@ include file= “文件的URL” %>

<%@ include file="permission.jsp"%>

动作标签(将jsp中的常见的一些功能以标签的形式进行使用)

1、<jsp:include /> 将另一个页面中的内容引入进来,include的指令会将整个jsp页面进行编译及翻译的过程,可以使用变量
(动作标签只是引入了页面的结果,指令是将整个jsp的逻辑等都加载进来)
2、<jsp:forward /> 以标签的形式替换了request在小脚本中的跳转形式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值