网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.jsp连接数据库大全.
.解析缓冲技术在JSP编程中新的应用.
.JSP应用的安全问题.
.jsp无刷新文件上传的实现.
.在jsp中运用ajax(简单入门) .
.全面解析JSP,servlet的配置.
.从原理上解决Tomcat中文问题.
.jsp的出错处理.
.tomcat频繁死掉的问题.
.让JSP页面过期, 保证每次JSP页面.
.关于Tomcat与MySQL连接池问题的详.
.JSP数据库连接池的必要性.
.JSP通过JDBC与Oracle相连.
.JDOM操作XML文件(法老修正版).
.tomcat+mysql使用utf-8.
.高效的jsp分页查询.
.新手看招:JSP中表单数据存储的通.
.编写线程安全的JSP程序.
.通过JSP的预编译消除性能瓶颈.
.修改Tomcat的主配置文件,增加一个.

网站登录记忆跳转实现的一种方法

发表日期:2007-2-10


记忆登录跳转可以打打方便用户使用
getHeader("Referer");方式简单不过不能处理post的参数
本来都是用在struts,webwork里的,为了容易看明白改写成jsp方式的

-------------------------------------------------------------------------------------------------------------
member.jsp   //session限制访问页

<%
String url = ""
if(session.getAttribute("username")==null)
{
         url = myRedirect.dealurl(request);//记录当前地址和请求参数,dealurl将实际url处理了避免和要请求url有干扰,因为会有& 字符
         response.sendRedirect("weblogin.jsp?url="+url) ;//重定向到登录页面
}
%>
-------------------------------------------------------------------------------------------
weblogin.jsp

<%
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;
 }
}
这样登录浏览器就会自动转到用户刚刚请求的地址

上一篇:JS+JSP+JAVABEAN树型列表的实现 人气:4341
下一篇:JSP中读文件和写文件的例子 人气:4566
浏览全部jsp的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐