lncygyh 发表于 2013-2-6 08:42:19

JSP之session对象

保存及获取属性
index.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>session对象</TITLE>

       </HEAD>

       <BODY>

       <%

            session.setAttribute("name","aaa");

            session.setAttribute("password","111");

       %>

       <jsp:forward page="common.jsp"/>

       </BODY>

</HTML>




common.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>session对象</TITLE>

       </HEAD>

       <BODY>

       <H2>这里是common.jsp</H2>

       <%

            String name = (String)session.getAttribute("name");

            String password = (String)session.getAttribute("password");

       %>

       <h1>name : <%=name%></h1>

       <h1>password : <%=password%></h1>

       </BODY>

</HTML>




这个例子会成功的取得保存在session对象里的属性值。如果我们将<jsp:forward page="common.jsp"/>去掉,改由response.sendRedirect("common.jsp");来跳转,或者由<A HREF="common.jsp">转向</A>这个超链接来转向,同样可以取得session对象中的属性值的。

session对象属性的有效范围通常是一个浏览器窗口,如果我们在同一窗口中先后访问这两个页面,属性值是可以被取得的,如果我们打开一个浏览器窗口却直接访问common.jsp的话,属性值就无法获得了。

但是,如果我们使用<A HREF="common.jsp" target=blank>转向</A>这个超链接来访问common.jsp,虽然是另一个窗口,但是属性值却可以得到。

登录范例
index.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>登录范例</TITLE>

       </HEAD>

       <BODY>

       <FORM METHOD=POST ACTION="login.jsp">

            帐号:<INPUT TYPE="name" NAME="name"><BR>

            密码:<INPUT TYPE="password" NAME="password"><BR>

            <INPUT TYPE="submit" VALUE="登录">

       </FORM>

       </BODY>

</HTML>




login.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>登录范例</TITLE>

       </HEAD>

       <BODY>

       <%

            request.setCharacterEncoding("gb2312");

            String name = request.getParameter("name");

            String password = request.getParameter("password");

            if("aaa".equals(name)&&"111".equals(password))            

            {

                     session.setAttribute("name",name);

                     response.sendRedirect("success.jsp");

            }

            else

            {

                     response.sendRedirect("failure.jsp");

            }

       %>

       </BODY>

</HTML>




success.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>登录成功</TITLE>

       </HEAD>

       <BODY>

       <%

            String name = (String)session.getAttribute("name");

            if(name!=null){

       %>

                     <H2>欢迎<%=name%>登录</H2>

       <%

            }else{

                     response.setHeader("refresh","2;URL=index.jsp") ;

       %>

                     您还没有登录,2秒后自动返回首页!

       <%

            }

       %>

       </BODY>

</HTML>




failure.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

            <TITLE>登录失败</TITLE>

       </HEAD>

       <BODY>

       <H2>登录失败</H2>

       </BODY>

</HTML>




    在这个登录范例中,我们使用session对象对系统的重要页面success.jsp做了保护,防止用户直接从地址栏访问该页面。
页: [1]
查看完整版本: JSP之session对象