JSP之保存Cookie实现用户注册并自动登录

这里是index.jsp的内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<%@ page import="java.net.URLDecoder"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>首页</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	 <script type="text/javascript">
    function save(){
    var questionvalue='';
    var likevalue='';
     var sexvalue="";
     var like=document.form1.like1;
	 var sex=document.form1.sex;
     var ids = document.getElementsByName("cookie");
     //获取爱好兴趣 
     for(var i = 0 ;i<like.length;i++)
 {
  if(like[i].checked)
  {
		likevalue+=like[i].value;
		likevalue+=' ';
  }
 }
     //获取性别
           for(var b = 0 ;b<sex.length;b++)
 		{
  		if(sex[b].checked)
 		 {
			sexvalue=sex[b].value;
 		 }
	 }            
	 //获取下拉框的值
	 for(var j = 0 ;j<form1.select1.options.length;j++)
 {
  if(form1.select1.options[j].selected){
				questionvalue=form1.select1.options[j].text;
				}
 }
	            //判断多选框是否被选中    
                for(var i=0;i<ids.length;i++){ 
                    if(ids[i].checked){ 
             			form1.submit(); 
             			//window.location.href="show.jsp"; 
                    } 
                    else
                     document.write("注册成功!你注册的用户信息为:<br>"+"用户名:"+form1.textfield.value+"<br>性别:"+sexvalue+"<br>密码:"+form1.textfield2.value+"<br>邮箱:"+form1.textfield3.value+"<br>爱好:"+likevalue+"<br>验证问题:"+questionvalue+"<br>回答:"+form1.textfield4.value);
                }           
	
    }
    </script>
	
  </head>
  
  <body>
    <%
    String username1new="";
    String sex1new="";
    String pwd1new="";
    String Email1new="";
             String likenew1new="";
                String question1new="";
                 String answer1new="";
   Cookie[] cookies=request.getCookies();
   if(cookies!=null){
   		for(int i=0;i<cookies.length;i++){
   			if(cookies[i].getName().equals("VipNumber")){
   			    username1new=URLDecoder.decode(cookies[i].getValue().split("#")[0],"UTF-8");
   				sex1new=URLDecoder.decode(cookies[i].getValue().split("#")[1],"UTF-8");
   				 pwd1new=URLDecoder.decode(cookies[i].getValue().split("#")[2],"UTF-8");
   				 Email1new=URLDecoder.decode(cookies[i].getValue().split("#")[3],"UTF-8");
   				 likenew1new=URLDecoder.decode(cookies[i].getValue().split("#")[4],"UTF-8");
   				 question1new=URLDecoder.decode(cookies[i].getValue().split("#")[5],"UTF-8");
   				 answer1new=URLDecoder.decode(cookies[i].getValue().split("#")[6],"UTF-8");
   				
   			}
   		}
   }
   if("".equals(username1new)&&"".equals(sex1new)){
   	out.println("这是您第一次登陆");
     %>
  
  <form  name="form1" method="post" action="show.jsp">
  <table width="544" height="242" border="1">
    <tr>
      <td colspan="2">注册会员</td>
    </tr>
    <tr>
      <td>用户名:</td>
      <td><label for="textfield"></label>
      <input type="text" name="textfield" id="textfield" /></td>
    </tr>
        <tr>
      <td>性别:</td>
      <td>
      <input type="radio" name="sex" id="male" value="男" checked="checked"/>男
       <input type="radio" name="sex" id="female" value="女" />女
      </td>
    </tr>
    <tr>
      <td>密码:</td>
      <td><label for="textfield2"></label>
      <input type="password" name="textfield2" id="textfield2" /></td>
    </tr>
    <tr>
      <td>邮箱:</td>
      <td><label for="textfield3"></label>
      <input type="text" name="textfield3" id="textfield3" /></td>
    </tr>
    <tr>
      <td>兴趣爱好:</td>
      <td>
      <input type="checkbox" name="like1" id="like1" value="看书" />看书
       <input type="checkbox" name="like1" id="like1" value="听歌" />听歌
        <input type="checkbox" name="like1" id="like1" value="英雄联盟" />英雄联盟
         <input type="checkbox" name="like1" id="like1" value="溜冰" />溜冰
      </td>
    </tr>
    <tr>
      <td>验证问题:</td>
      <td>
      <select name="select1" id="select1">
      <option id="option1" >你的家乡在哪里?</option>
        <option id="option1" >你的第一条宠物名字?</option>
          <option id="option1" >你的生日是哪一天?</option>
            <option id="option1" >曾亚城帅吗?</option>
      </select>
      </td>
    </tr>
    <tr>
      <td>回答:</td>
      <td><label for="textfield4"></label>
      <input type="text" name="textfield4" id="textfield4" maxlength="20"/></td>
    </tr>
    
     <tr> 
     <td colspan="2"><input type="checkbox" name=cookie>保存cookie</td>
     </tr>
    
    <tr>
      <td><input type="button" name="button" id="button" value="注册会员" οnclick="save()"/></td>
      <td></td>
    </tr>
  </table>
</form>
     <% 
     }
   else{
   		out.println("您好,您已注册过,这是您的注册信息:<br>您的用户名:"+username1new+"<br>密码:"+pwd1new+"<br>性别:"+sex1new+"<br>邮箱是:"+Email1new+"<br>兴趣:"+likenew1new+"<br>验证问题:"+question1new+"<br>回答:"+answer1new);
   }
	%>
  </body>
</html>


下面的是show.jsp的内容:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page import="java.net.URLEncoder" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'deal.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <%
   	   String likenew="";
       String like[]=request.getParameterValues("like1");
          if(request.getParameter("like1")!=null){
                 for(int i=0;i<like.length;i++){
        			like[i]=new String(like[i].getBytes("ISO-8859-1"),"utf-8");
       			    likenew+=like[i];
         			likenew+=" ";
       }
          }
    String username=new String(request.getParameter("textfield").getBytes("ISO-8859-1"),"UTF-8");
	String pwd=request.getParameter("textfield2").toString();	
	String Email=request.getParameter("textfield3").toString();
	String sex=new String(request.getParameter("sex").getBytes("ISO-8859-1"),"UTF-8");
	String question=new String(request.getParameter("select1").getBytes("ISO-8859-1"),"UTF-8");	
	String answer=new String(request.getParameter("textfield4").getBytes("ISO-8859-1"),"UTF-8");	
  	out.println(username+"<br>");
  	out.println(Email+"<br>");
  	out.println(sex+"<br>");
  	out.println(likenew+"<br>");
  	out.println(Email+"<br>");
  	out.println(question+"<br>");
  	out.println(answer+"<br>");
  	 %>
  	 
  	    <%
  	    String username1=URLEncoder.encode(username,"UTF-8");
  	    String pwd1=URLEncoder.encode(pwd,"UTF-8");
  	    String sex1=URLEncoder.encode(sex,"UTF-8");
  	    String Email1=URLEncoder.encode(Email,"UTF-8");
  	    String question1=URLEncoder.encode(question,"UTF-8");
  	    String answer1=URLEncoder.encode(answer,"UTF-8");
  	    String likenew1=URLEncoder.encode(likenew,"UTF-8");
   		Cookie cookie=new Cookie("VipNumber",username1+"#"+sex1+"#"+pwd1+"#"+Email1+"#"+likenew1+"#"+question1+"#"+answer1);
   		cookie.setMaxAge(30);
   		response.addCookie(cookie);
    %>
    <script type="text/javascript">
    window.location.href="index.jsp";
    </script>
  </body>
</html>

还有一些小bug,用js可以解决,未做了嘿~

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值