Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          JSP網站登錄記憶跳轉實現的一種方法

          記憶登錄跳轉可以大大方便用戶,使用getHeader("Referer");方式簡單,不過不能處理post的參數,本來這些代碼都是用在struts,webwork里的,為了容易看明白改寫成jsp方式的。

          <!--此頁面的內容受保護,必須登錄才能訪問-->
          <%@ page contentType="text/html; charset=GBK" %>
          <jsp:useBean id="rect" class="com.util.myRedirect" scope="page"/>
          <%
          String url = "";
          if(session.getAttribute("userid")==null)//如果用戶沒有登錄
          {
          ???url =rect.dealurl(request);
          //記憶進入此頁面的地址和請求參數,dealurl將實際url進行處理,因為有&字符
          ???response.sendRedirect("weblogin.jsp?url="+url) ;
          //重定向到登錄頁面,記憶的url作為參數一起傳入

          }else{
          ????out.println("你已經登錄,可以下載了");
          } %>

          weblogin.jsp
          <%@ page contentType="text/html; charset=GBK" %>
          <jsp:useBean id="myRedirect" class="com.util.myRedirect" scope="page"/>

          <%
          String url = request.getParameter("url");
          String userid =request.getParameter("userid");
          String password =request.getParameter("password");
          if(userid!=null)?//如果是登錄提交執行下面代碼
          {

          ?if(登錄成功)
          ??{
          ???session.setAttribute("userid",userid);?
          ???out.println("<script>alert('登錄成功,謝謝光臨');self.location.href='"+myRedirect.geturl(url)+"';</script>");
          //轉向到首次請求的url,.geturl(url)是把轉化過的地址轉化回來變成真實url.
          ??}else{
          ???out.println("<script>alert('用戶名或密碼錯誤');history.back();</script>");
          ??}
          }else{//如果不是登錄提交顯示現面登錄界面
          %>
          <table width="311" height="162" border="0" align="center" cellpadding="0" cellspacing="0">
          ? <tr>
          ?????
          ??? <td width="311" height="162" align="center"> 您還沒有登錄,請先登錄<br>
          ??????? <table width="155" border="0" cellpadding="0" cellspacing="5" class="font12">
          ??<form? name="loginfrm" action="weblogin.jsp" method="post"? id="loginfrm" onSubmit="return checkfrm();">
          ????????? <tr>
          ??????????? <td width="41" height="33" valign="bottom">帳&nbsp;號:</td>
          ??????????? <td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></td>
          ????????? </tr>
          ????????? <tr>
          ??????????? <td>密&nbsp;碼:</td>
          ??????????? <td><input name="password" type="password" class="textstyle" id="password" size="12" style="height:20;width:94"></td>
          ????????? </tr>
          ????????? <tr align="center" valign="bottom">
          ??????????? <td height="21" colspan="2"> <input type="submit" name="Submit" value="登錄">
          ????????????? &nbsp; <a href="reg.jsp" target="_blank">沒有注冊</a>&nbsp; </td>
          ????????? </tr>
          ????????? <tr align="center">
          ??????????? <td colspan="2" class="font14"> <strong>
          <a href="#" onclick="MM_openBrWindow('requestpwd.jsp','pwd','width=300,height=200');return false;">找回密碼</a></strong></td>
          ????????? </tr>
          ??? <input name="url" type="hidden" value="<%=url%>"><!--這里要有個hidden來保存一下,不然提交就沒了 -->
          ????
          ??? </form>
          ??????? </table>????
          ??? </td>
          ? </tr>
          </table>
          <%
          }
          %>

          ---------------------------------------------------------------

          myRedirect.java

          package com.util;

          import javax.servlet.http.HttpServletRequest;
          import java.util.Enumeration;

          public class myRedirect??? //對url的轉換類
          {
          ?public static String dealurl(HttpServletRequest request)
          ?{
          ??String url = "";
          ??url = request.getRequestURL()+"?";
          ??url +=param(request);
          ??if(url.indexOf("&")>-1)
          ???url=url.replaceAll("&","@#@");//實際上就是把有&的字符轉化成了@#@
          ??return url;
          ?}
          ?public static String geturl(String url)//這個是還原方法
          ?{
          ??if(url.indexOf("@#@")>-1)
          ???url=url.replaceAll("@#@","&");
          ??return url;?????
          ?}
          ?public static String param(HttpServletRequest request)
          ?{
          ??String url = "";
          ??Enumeration param = request.getParameterNames();//得到所有參數名
          ??while(param.hasMoreElements())
          ??{
          ???String pname = param.nextElement().toString();
          ???url += pname+"="+request.getParameter(pname)+"&";
          ??}
          ??if(url.endsWith("&"))
          ??{
          ???url = url.substring(0,url.lastIndexOf("&"));
          ??}
          ??return url;
          ?}
          }

          posted on 2006-04-26 21:16 都市淘沙者 閱讀(349) 評論(0)  編輯  收藏 所屬分類: JSP/PHP

          主站蜘蛛池模板: 略阳县| 凌云县| 扶风县| 大宁县| 穆棱市| 筠连县| 翁牛特旗| 周宁县| 东平县| 怀集县| 印江| 龙游县| 泰宁县| 嘉兴市| 七台河市| 大理市| 黎平县| 崇信县| 宁强县| 淮阳县| 苍山县| 大安市| 武邑县| 永平县| 信阳市| 来安县| 葵青区| 堆龙德庆县| 丰宁| 平阴县| 宕昌县| 蒙阴县| 万源市| 张北县| 岳池县| 吉木萨尔县| 石狮市| 临沭县| 景德镇市| 陇川县| 酒泉市|