يمكن كتابة قفزة تسجيل الدخول بالذاكرة لراحة المستخدم
getHeader("Referer"); الطريقة بسيطة ولكن لا يمكنها التعامل مع معلمات النشر، وقد تم استخدامها في الأصل في الدعامات والعمل الشبكي، وقد تمت إعادة كتابتها في طريقة jsp
. ------- ------------------------------------------- ------- ------------------------------------------- -------
member.jsp // صفحة الوصول المقيد للجلسة
<%
عنوان URL للسلسلة = ""
إذا (session.getAttribute("اسم المستخدم")==null)
{
url = myRedirect.dealurl(request);// سجل العنوان الحالي ومعلمات الطلب، ويقوم Dealurl بمعالجة عنوان url الفعلي لتجنب التداخل مع عنوان url المطلوب، لأنه سيكون هناك & أحرف
Response.sendRedirect("weblogin.jsp?url="+url);// إعادة التوجيه إلى صفحة تسجيل الدخول
}
%>
-------------------------------------------------- ----------------------------------------
weblogin.jsp
<%
String url = request.getParameter("url");
سلسلة معرف المستخدم =request.getParameter("userid");
كلمة مرور السلسلة =request.getParameter("password");
if(userid!=null) //إذا كنت تقوم بتسجيل الدخول والإرسال، فقم بتنفيذ التعليمات البرمجية التالية
{
إذا (تم تسجيل الدخول بنجاح)
{
session.setAttribute("userid",userid);
out.println("<script>alert('تم تسجيل الدخول بنجاح، شكرًا لك على الزيارة');self.location.href='"+myRedirect.geturl(url)+"';</script>");//إعادة التوجيه إلى المرة الأولى، يقوم عنوان url المطلوب، .geturl(url) بتحويل العنوان المحول مرة أخرى إلى عنوان url الحقيقي.
}آخر{
out.println("<script>alert('اسم المستخدم أو كلمة المرور غير صحيحة');history.back();</script>");
}
}else{// إذا لم يكن إرسال تسجيل الدخول، فسيتم عرض واجهة تسجيل الدخول الحالية.
%>
<عرض الجدول = "311" الارتفاع = "162" الحدود = "0" محاذاة = "المركز" خلية الحشو = "0" تباعد الخلايا = "0">
<تر>
<td width="311" height="162" align="center"> لم تقم بتسجيل الدخول بعد، يرجى تسجيل الدخول أولاً<br>
<عرض الجدول = "155" الحدود = "0" خلية الحشو = "0" تباعد الخلايا = "5" فئة = "font12">
<form name = "loginfrm" action = "weblogin.jsp" أسلوب = "post" id = "loginfrm" onSubmit = "return checkfrm ()؛">
<تر>
<td width="41" height="33" valign="bottom">رقم الحساب:</td>
<td width="99" valign="bottom"><input name="userid" type="text" class="textstyle" id="userid" size="12" style="height:20"></ تد>
</tr>
<تر>
<td>كلمة المرور:</td>
<td><اسم الإدخال = "كلمة المرور" type = "كلمة المرور" class = "textstyle" id = "كلمة المرور" size = "12" style = "height:20;width:94"></td>
</tr>
<tr align="center" valign="bottom">
<td height = "21" colspan = "2"> <نوع الإدخال = "إرسال" الاسم = "إرسال" القيمة = "تسجيل الدخول">
<a href="reg.jsp" target="_blank">غير مسجل</a></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%>">يجب أن يكون هناك مخفي هنا لحفظه، وإلا سيتم فقدان الإرسال.
</النموذج>
</الجدول>
</TD>
</tr>
</الجدول>
<%
}
%>
------------------------------------------------ -------------------------------------------------- -----
myRedirect.java
package com.util;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
public class myRedirect // فئة التحويل لعنوان url
{
سلسلة Dealurl العامة الثابتة (طلب HttpServletRequest)
{
عنوان URL للسلسلة = "";
url = request.getRequestURL()+"؟";
url +=param(request);
إذا (url.indexOf("&")>-1)
url=url.replaceAll("&"،@#@");// في الواقع، يقوم بتحويل الأحرف التي تحتوي على & إلى @#@
عنوان URL للإرجاع؛
}
public static String geturl(String url)// هذه هي طريقة الاستعادة
{
إذا (url.indexOf("@#@")>-1)
url=url.replaceAll("@#@"،&");
عنوان URL للإرجاع؛
}
معلمة السلسلة الثابتة العامة (طلب HttpServletRequest)
{
عنوان URL للسلسلة = "";
Enumeration param = request.getParameterNames();// احصل على جميع أسماء المعلمات
بينما (param.hasMoreElements())
{
String pname = param.nextElement().toString();
url += pname+"="+request.getParameter(pname)+"&";
}
إذا (url.endsWith("&"))
{
url = url.substring(0,url.lastIndexOf("&"));
}
عنوان URL للإرجاع؛
}
}
بهذه الطريقة، سينتقل المتصفح تلقائيًا إلى العنوان الذي طلبه المستخدم للتو عند تسجيل الدخول.