zoukankan      html  css  js  c++  java
  • 12.1

     今天学了

    创建处理文件

    保存用户信息
    用户在登录网站之后,在访问网页的过程中随时都可能使用用户信息。要想随时访问
    用户信息,需要把用户信息保存起来,如果不保存,用户输入的信息就只能在登录处理的
    时候使用,在其他地方不能使用。原因是 Web 应用采用的是无状态的请求/应答模式,客户
    端通过浏览器发送请求,服务器对客户端进行响应,但是不会保存客户端的信息。

     在JSP 中提供了几种保存信息的方式:可以保存在当前页面,但是只能在当前页面使用;
    可以保存在请求对象(每次请求都会创建这样一个对象)中,但是只能在这次请求中使用,请
    求对象是在服务器接收到请求后创建的,对客户端进行响应之后就没有了;可以保存在会
    话对象中,每个用户对应一个会话对象,当用户访问第一个网页的时候,服务器为这个用
    户创建一个会话对象,在用户的访问过程中一直有效,当用户关闭网页的时候,会话对象
    就删除了;还可以保存在应用对象中,这个对象是 Web 应用的所有用户共享的。
    这 4 个对象分别对应下面的 4 个内部对象:pageContext、request、session 和 application。
    这几个对象都可以直接使用,不用创建。
    根据这 4 个对象的作用范围,要保存个人信息,应该使用 session。如果使用 pageContext
    和 request,则作用范围太小;如果使用 application,则这个信息就会共享,产生冲突。
    要把信息保存到 session 中,可以使用标准标签库中的<c:set>标签。
    <c:set>标签的语法格式为:
    <c:set var="变量名" value="变量的值" scope="作用范围"/>
    该标签相当于创建了一个变量,var 指出变量的名字,value 指出变量的值,scope 指出
    变量的作用范围,也就是把变量存放在什么地方,取值可以是 page、request、session 和
    application。
    现在需要把用户名保存到 session 中,所以使用下面的代码:
    <c:set var="username" value="${param.username}" scope="session"/>
    在 session 中保存这个信息使用的名字是 username,值来自于用户的输入。修改后的代
    码如下:
    <%@ page contentType="textml;charset=GB2312"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <c:if test="${param.username=="zhangsan" && param.userpass=="wangwu"}">
     <c:set var="username" value="${param.username}" scope="session"/>
     登录成功!
    </c:if>
    <c:if test="${param.username!="zhangsan" || param.userpass!="wangwu"}">
     登录失败!
    </c:if>
    通常,存储在 page 中的信息在文件执行完毕后就会被系统自动释放;存储在 request
    对象中的信息在请求结束后就会被自动释放;而存在 session 中的信息,只有当用户离开网
    站或者 session 无效的时候才会被释放;存储在 application 中的信息,只有当网站的服务器
    关闭的时候才会被释放。如果用户的这些信息在后续的访问过程中已经没有用了,我们应
    该释放这些资源。
    JSP 提供了删除存储在这些作用范围内信息的标签<c:remove>,该标签的格式如下:
    <c:remove var="变量名"
     [scope="{page|request|session|application}"]
    />
    var 属性指出要删除的变量的名字,还可以使用 scope 属性指出要删除哪个作用范围内 

    的对象。
    假设要删除存储在 session 中的变量 result,可以使用下面的代码:
    <c:remove var="result"
    scope="session"

  • 相关阅读:
    软件工程双人项目代码规范
    《单元测试之道Java版》读后感
    《凌波微步:软件开发警戒案例集》读后感
    第一次博客作业
    认识Python
    认识JDK和JVM
    C-结构体
    C-字符串和除法
    C-指针和malloc函数
    求一个字符串没有重复字符的最大子串长度
  • 原文地址:https://www.cnblogs.com/dty602511/p/14173724.html
Copyright © 2011-2022 走看看