一、session.getValue与session.getAttribute的区别
二、我写了一个验证码登陆,但在servlet中取不到session值,在一般的jsp文件中可以取到,代码如下,请老鸟指点~
package download;
import download.MD5;
import download.UDBConnection;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpSession;
import java.lang.*;
public class admin_login extends HttpServlet
{
private String TheAdminString = "AdminState";
private static final String CONTENT_TYPE = "text/html; charset=gb2312";
public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
req.setCharacterEncoding("gb2312");
res.setContentType(CONTENT_TYPE);
PrintWriter out = res.getWriter();
HttpSession session = req.getSession(true);
String n,p,ec;
boolean isok = true;
n = req.getParameter("username").trim();
p = MD5.toMD5((req.getParameter("password")).trim());
ec = (req.getParameter("ExtraCode")).trim();
if (n.equals(""))
{
out.print ("错误:您输入的用户名不能为空!<br>");
isok = false;
}
if (p.equals(""))
{
out.print ("错误:您输入的密码不能为空!<br>");
isok = false;
}
if (ec.equals(""))
{
//session.removeAttribute(TheAdminString);
out.print ("错误:您输入的附加码不能为空!<br>");
isok = false;
}
//下面这句是我测试用的,输出为null,session值有,但在这里取不到
out.println((String)session.getAttribute(TheAdminString)+"<BR>");
if (!ec.equals(""))
{
//session.removeAttribute(TheAdminString);
out.print ("错误:您输入的附加码错误!<br>");
isok = false;
}
if (isok == false)
{
out.flush();
out.close();
}
else
{
UDBConnection myUDBConn = new UDBConnection();
String SQL,password;
SQL = "Select ID,M_Password,M_ManagerArea,M_Degree From ManagerAccount where M_Account = '"+ n +"'";
try
{
ResultSet rs = myUDBConn.executeQuery(SQL);
if (rs.next())
{
if (!p.equals(rs.getString("M_Password")))
{
rs.close();
myUDBConn.UDBClose();
out.print ("错误:密码错误!");
out.flush();
out.close();
}
else
{
//更新登陆信息
//SQL = "Update ManagerAccount Set M_LoadState = '1',M_EndLoadTime = Now(),M_Loadtimes = M_Loadtimes + 1,M_ThisTimeInfo = '"+ GetThisPagename +"$$$' + now() Where ID = "+ rs.getString("ID");
//myUDBConn.executeUpdate(SQL);
//session.setAttribute(TheAdminString,"1$$$"+ n +"$$$"+ rs.getString("M_ManagerArea") +"$$$"+ rs.getString("M_Degree"));
myUDBConn.UDBClose();
//res.sendRedirect("admin_index.asp");
out.flush();
out.close();
}
}
else
{
out.print ("错误:不存在的用户或错误的用户名!");
rs.close();
myUDBConn.UDBClose();
out.flush();
out.close();
}
}
catch(SQLException e)
{
out.print ("错误:数据库操作失败!");
}
}
}
}
3 个解决方案
#1
一、session.getValue与session.getAttribute的区别
前者是老的方法
后者是新的方法
前者是老的方法
后者是新的方法
#2
这个知道了,谢谢
#3
找了两天,问题解决~~~~^-^,,谁不懂,可以随时找我.QQ:45275154,
希望能多交几个朋友!!!
注明:JSP应用交友
希望能多交几个朋友!!!
注明:JSP应用交友
#1
一、session.getValue与session.getAttribute的区别
前者是老的方法
后者是新的方法
前者是老的方法
后者是新的方法
#2
这个知道了,谢谢
#3
找了两天,问题解决~~~~^-^,,谁不懂,可以随时找我.QQ:45275154,
希望能多交几个朋友!!!
注明:JSP应用交友
希望能多交几个朋友!!!
注明:JSP应用交友