JSP之session对象

来源:互联网 发布:开票软件怎么升级 编辑:程序博客网 时间:2024/05/05 03:10

保存及获取属性

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做了保护,防止用户直接从地址栏访问该页面。