<body>
html
<c:if test="${not empty uname }">欢迎你:${uname}</c:if> <c:if test="${empty uname }"> <div id="login"> <input type="text" id="userName" value="" /> <input type="password" name="" id="password" /> <button onclick="log()">登录</button> </div> </c:if> </body>
jq代码
<script type="text/javascript"> function log(){ var name=$("#userName").val(); var pwd=$("#password").val(); var data={ userName:name, password:pwd }; var url="servlet/UserServlet"; $.ajax({ url:url, type:"post", async:true, /* dataType:"json", */ data:data, success:function(res){ if(res==name){ alert("登录成功");
//
alert('${uname}');为空??
alert('${uname}'); $("#login").html("欢迎你:"+name+""); }else{ alert("登录失败"); } } }); } </script>
UserServlet类代码
String userName=request.getParameter("userName"); String password=request.getParameter("password"); bean.User u=new bean.User(); u.setUserName(userName); u.setPassword(password); UserBiz ub=new UserBizImpl(); if(ub.login(u)!=null){ request.getSession().setAttribute("uname",userName); }
userDao方法
public String login(User u) { String sql="select userName from users where userName='"+u.getUserName()+"' and password='"+u.getPassword()+"'"; try { con=getCon(); ps=con.prepareStatement(sql); rs=ps.executeQuery(); if(rs.next()){ return rs.getString("userName"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ close(); } return null; }
alert('${uname}');为空??这段为什么为空
看你代码用了jstl标签结合了el表达式,,直接用EL表达式给一个元素赋值然后用jq获取就可以了。
alert('${uname}');为空??这是为什么,我在后台赋值了
@tpy: 你先用java获取的方式看看能获取到不
jq中获取session,应该用这个方法
var username = '<%= session.getAttribute("uname")%>';
jsp页面不能出现java代码
@tpy: 所以用〈% %〉呀
@Shendu.cc: 不能出现这种代码