JSP session值为null问题
在主页index.jsp的登录模块登录,跳至登录处理界面logDeal.jsp,在登录处理界面若验证成功则“session.setAttribute("username"...
在主页index.jsp的登录模块登录,跳至登录处理界面logDeal.jsp,在登录处理界面若验证成功则“session.setAttribute("username",username);”,并通过“请<a href="index.jsp?logname=<%=session.getAttribute("username")%>">点击这里</a>返回主页!”跳转回主页,在主页通过"<%=session.getAttribute("username")%>"获取当前登录用户的信息,当取得的值却为null。想要在主页还有其他页面显示当前登录用户的信息该怎么弄呢???急!!!在做毕业设计,偏偏在过不去这个坎!!
错了!登录处理页面是这句"请<a href="index.jsp">点击这里</a>返回主页!" 展开
错了!登录处理页面是这句"请<a href="index.jsp">点击这里</a>返回主页!" 展开
3个回答
展开全部
userbean.java里面的登录方法是这么写的:
/**
* 用户登录
*/
public boolean customerLogin(String customername, String customerpass) {
String sql="select * from customer where c_name = ? and c_pass = ? ";
if(jdbcTemplate.query(sql, new CustomerRowMapper(),customername,customerpass).size()==1){
return true;
}
return false;
}
action调用里面是这么写的:
request.setCharacterEncoding("utf-8");
String action=request.getParameter("action");
PrintWriter out =response.getWriter();
CustomerService ads=new CustomerService();
HttpSession session=request.getSession(true);//拿到session对象
if(action.equals("denglu"))
{
String name=request.getParameter("customername");
String pass=request.getParameter("customerpass");
boolean t =ads.customerLogin(name, pass);
if(t)
{
session.setAttribute("customername", name);//将用户名放进session里面
session.setAttribute("customerid", ads.SearchByname(name).getCname());
out.println("<script>alert('right~');location.href='main.jsp';</script>");
-------这句话就是登录成功直接到主页面
}
else
{
session.setAttribute("customername", "guest");
session.setAttribute("customerid",null);
out.print("<script>alert('error~');location.href='login.html';</script>");
}
}
再在主页面的jsp页面里面这么写:
<%
String customername=(String)session.getAttribute("customername");//从session中取出用户名
if (customername == null||customername.length()==0) {
customername = "guest";
}else{
session.setAttribute("customername", customername);
}
%>
亲爱的会员<%=customername%>,欢迎光临!
/**
* 用户登录
*/
public boolean customerLogin(String customername, String customerpass) {
String sql="select * from customer where c_name = ? and c_pass = ? ";
if(jdbcTemplate.query(sql, new CustomerRowMapper(),customername,customerpass).size()==1){
return true;
}
return false;
}
action调用里面是这么写的:
request.setCharacterEncoding("utf-8");
String action=request.getParameter("action");
PrintWriter out =response.getWriter();
CustomerService ads=new CustomerService();
HttpSession session=request.getSession(true);//拿到session对象
if(action.equals("denglu"))
{
String name=request.getParameter("customername");
String pass=request.getParameter("customerpass");
boolean t =ads.customerLogin(name, pass);
if(t)
{
session.setAttribute("customername", name);//将用户名放进session里面
session.setAttribute("customerid", ads.SearchByname(name).getCname());
out.println("<script>alert('right~');location.href='main.jsp';</script>");
-------这句话就是登录成功直接到主页面
}
else
{
session.setAttribute("customername", "guest");
session.setAttribute("customerid",null);
out.print("<script>alert('error~');location.href='login.html';</script>");
}
}
再在主页面的jsp页面里面这么写:
<%
String customername=(String)session.getAttribute("customername");//从session中取出用户名
if (customername == null||customername.length()==0) {
customername = "guest";
}else{
session.setAttribute("customername", customername);
}
%>
亲爱的会员<%=customername%>,欢迎光临!
展开全部
你是不是在servlet里面创建的“session.setAttribute("username",username);”啊?如果实在servlet里面的话要先声明 HttpSession session=request.getSession();,然后才能用session去点那些方法
更多追问追答
追问
我没有用servlet
追答
那你用的是什么啊?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你登陆处理页面代码贴出来!!!!!!!!!!!看看
追问
主要代码有点长,贴不过来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询