JSP之内置对象与作用域

来源:互联网 发布:淘宝店怎样提高流量 编辑:程序博客网 时间:2024/06/05 05:12

九个内置对象:
pageContext, request, response, session, application, config, out, page, exception

四大作用域:
Page范围:只在一个页面中保存;javax.servlet.jsp.PageContext(抽象类)

<%    //设置两个page范围数据key->value    pageContext.setAttribute("name", "root");    pageContext.setAttribute("password", 123456);%><%    //取值    String name = (String) pageContext.getAttribute("name");    int password = (Integer) pageContext.getAttribute("password");%>    用户名:<%=name%><br /> 密码:<%=password%><br />

Request范围:只在一个请求中保存数据;javax.servlet.http.HttpServletRequest(接口)

requestScope.jsp<%    //设置两个request范围数据key->value    request.setAttribute("name", "root");    request.setAttribute("password", 123456);%><jsp:forward page="requestTarget.jsp"></jsp:forward>requestTarget.jsp:<%    //取值    String name = (String) request.getAttribute("name");    int password = (Integer) request.getAttribute("password");%>用户名:<%=name%><br /> 密码:<%=password%><br />

Session范围:只在一个请求中保存数据,仅供单个用户使用;javax.servlet.http.HttpSession(接口)

sessionScope.jsp<%    //设置两个session范围数据key->value    session.setAttribute("name", "root");    session.setAttribute("password", 123456);%>设置完毕sessionTarget.jsp<%    //取值    String name = (String) session.getAttribute("name");    int password = (Integer) session.getAttribute("password");%>用户名:<%=name%><br /> 密码:<%=password%><br />

Application范围:在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)

applicationScope.jsp<%    //设置两个session范围数据key->value    application.setAttribute("name", "root");    application.setAttribute("password", 123456);%>设置完毕applicationTarget.jsp<%    //取值    String name = (String) application.getAttribute("name");    int password = (Integer) application.getAttribute("password");%>用户名:<%=name%><br /> 密码:<%=password%><br />

Session和Application的区别在于Appliaction是全局的,可以在不同的电脑上获取这些值,而Session只能在当前申请的浏览器下获取这些值。
Request和Session用的比较多。

使用<%@ page import=”java.util.*”%>来导入包

response对象:

//自动刷新<%    //每隔一秒刷新一次页面    response.setHeader("refresh", "1");    Date myData = new Date();%>当前时间:<%=myData.toLocaleString()%>//重定向,不能带参数<%    response.sendRedirect("pageScope.jsp");%>

post放在数据包里,安全
get放在Url后面
form提交基本都是用host

//操作cookie应用,cookie存在客户端,session存在服务器response.jsp<script type="text/javascript">    function resetValue() {        document.getElementById("userName").value = "";        document.getElementById("password").value = "";    }</script><%    String userName = null, pwd = null;    Cookie[] cookies = request.getCookies();    for (int i = 0; cookies != null && i < cookies.length; i++) {        if (cookies[i].getName().equals("userNameAndPwd")) {            userName = cookies[i].getValue().split("-")[0];            pwd = cookies[i].getValue().split("-")[1];        }    }    System.out.println(userName + pwd);    if (userName == null) {        userName = "";    }    if (pwd == null) {        pwd = "";    }%><body>    <form action="userLogin.jsp" method="post">        <table>            <tr>                <td>用户名:</td>                <td><input type="text" id="userName" name="userName"                    value="<%=userName%>" /></td>            </tr>            <tr>                <td>密码:</td>                <td><input type="password" id="pwd" name="pwd" value="<%=pwd%>" /></td>            </tr>            <tr>                <td>记住密码:</td>                <td><input type="checkbox" id="remember" name="remember"                    value="remember-me" /></td>            </tr>            <tr>                <td><input type="submit" value="登录" /></td>                <td><input type="button" value="重置" onclick="resetValue()" /></td>            </tr>        </table>    </form></body>userLogin.jsp<body>    <%        String userName = request.getParameter("userName");        String pwd = request.getParameter("pwd");        String remember = request.getParameter("remember");        if ("remember-me".equals(remember)) {            Cookie userNameAndPwd = new Cookie("userNameAndPwd", userName + "-" + pwd);            userNameAndPwd.setMaxAge(1 * 60 * 60 * 24 * 7);            response.addCookie(userNameAndPwd);//保存cookie            System.out.print("设置cookie成功!");        }        response.sendRedirect("response.jsp");    %></body>

out对象:向客户端输出各种类型数据,可以管理应用服务器上的输出缓冲区。

<%    out.print(out.getBufferSize() + "<br/>");//总共缓冲区大小    out.print(out.getRemaining());//未使用的缓冲区大小%>

Config对象:JSP页面通过JSP容器初始化时被传递的对象。

exception对象:处理JSP文件在执行时发生的异常
在页头加上:<%@ page errorPage=”error.jsp”%>
在error.jsp头加上<%@ page isErrorPage=”true”%>会自动处理异常

pageContext对象:相当于页面中所有对象功能集合,能够访问到页面中所有对象。

1 0
原创粉丝点击