jsp:seeion对象、jsp四大作用域、 include指令
session对象
Session称为一次会话,浏览器的打开及关闭。例如:登录淘宝之后,在该浏览器上无论打开的哪个页面都属于一次会话(不需要登录了)
<!--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中给出了四大作用域以满足不同的使用情况
include指令
1.include指令用于引入其他的页面, 因为很多页面可能有一部分内容是相同的, 相同的地方可以提取出来,然后复用, 因此可以把每个页面重复出现的部分单独提出来, 作为一个单独的页面, 然后其它页面都来包含这个页面。
2.语法: <%@ include file= “文件的URL” %>
<%@ include file="permission.jsp"%>
动作标签(将jsp中的常见的一些功能以标签的形式进行使用)
1、<jsp:include /> 将另一个页面中的内容引入进来,include的指令会将整个jsp页面进行编译及翻译的过程,可以使用变量 (动作标签只是引入了页面的结果,指令是将整个jsp的逻辑等都加载进来) 2、<jsp:forward /> 以标签的形式替换了request在小脚本中的跳转形式