新人小白。一个jsp的简单有关问题

新人小白求助。。一个jsp的简单问题
我想用session来到一个注册登录验证。但是注册完之后跳回登录页,输入完用户和密码之后session的值却为null了。下面是登录代码
<body>
  
   <center><h2><a href="/zuoye/zc.jsp">点我注册 </a></h2>
    <form  action="dl.jsp" method="post">
    用户名:<input type="text" name="dlzh"/><br/>
    密 &nbsp;&nbsp;&nbsp;码:<input type="password" name="dlmm"/><br/>
    <input type="submit" value="提交"/>
    <input type="submit" value="重置"/><br/></form></center>
    <%request.setAttribute("dlzh","dlzh");
    request.setAttribute("dlmm","dlmm");%>
    
    <% String dlzh=(String)session.getAttribute("dlzh");
      String dlmm=(String)session.getAttribute("dlmm");
     %>  
     
    <%String name=request.getParameter("user");
      String pass=request.getParameter("pass");
      session.setAttribute("a",name);
      session.setAttribute("b",pass);%>
     
   
          <%String zh=(String)session.getAttribute("a"); %>
     <%String mm=(String)session.getAttribute("b"); %>
     <% if("".equals(zh)||zh==null||"".equals(mm) ||mm==null){out.print("请先注册");}
     else if("".equals(dlzh)||dlzh==null||"".equals(dlmm)||dlmm==null){out.print("请输入账号密码");}else
     if(dlzh.equals(zh)&&dlmm.equals(mm)){out.print("13246");}%>
     
            
  </body>


注册页代码<body>
   <center>
    <form action="dl.jsp" method="post">
    用户名:<input type="text" name="user"/><br/>
    
    密&nbsp;&nbsp;码:<input type="text" name="pass"/>
    
    <input type="submit" value="提交"/>
    <input type="submit" value="重置"/>
    <br/></form>
    </center>
------解决思路----------------------
你登录的jsp是提交给自己的吧!!你在登录页面点提交,提交给自己,就是一个新的请求了,,就是新的request,,
<%String name=request.getParameter("user");
      String pass=request.getParameter("pass");
      session.setAttribute("a",name);
      session.setAttribute("b",pass);%>

这个代码中的request 当然就取不到值了!
------解决思路----------------------
 怎么不写个servet看的清晰点新人小白。一个jsp的简单有关问题
<%String name=request.getParameter("user");
       String pass=request.getParameter("pass");
       session.setAttribute("a",name);
       session.setAttribute("b",pass);%>
这个你注册完回到登入页面时候getParameter("user");这是有值的
你在输入用户密码的时候再回到这个页面就没值了啊 但你又调用了
request.getParameter("user"); session.setAttribute("a",name);这里a就null了
这里你判断下request.getParameter("user"); 不为空再给session赋值就行了
------解决思路----------------------
如果你提交是给本身这个JSP的话、你的<Input>的name叫做dlzh;那你应该用request.getParameter(“dlzh”)来获取内容。
------解决思路----------------------
新人小白。一个jsp的简单有关问题
------解决思路----------------------

你每次来到你的登入页面都会调用
<%String name=request.getParameter("user");
        String pass=request.getParameter("pass");
        session.setAttribute("a",name);
        session.setAttribute("b",pass);%>
也就是说你每次都会给session中的a和b重新赋值
你在注册页面过来的时候 user和pass有值 a b就有值
你在登入页面提交来到登入页面user和pass 没值 本来session中a b是有值的 你就又赋值为null了
加个判断就行了
if(name != null){session.setAttribute("a",name);
}
if(pass != null){session.setAttribute("b",pass);
}
------解决思路----------------------
没太明白你说的什么意思,是session==null,还是session取到的属性为null。
首先你需要了解jsp,jsp其实就是一种简单的servlet,专门用来生成html的。当你请求一个jsp的时候,由服务器编译生成html并返回给客服端。
打开你的登陆页面时,实际上是将你的jsp编译成html,然后在返回给客服端。而服务器在编译的时候,实际上你的session中的那些属性是不存在,所以会出现session的属性为null。
如果你想在用户注册成功后记录用户名和密码,那么,你可以再处理注册的jsp中进行保存。
如果你想在用户登录之后记录用户名和密码,那么,你必须在处理登录的jsp中保存。