好像你就是第一次有session对象,后面都为null了.这个问题要看你的代码!!!
解决方案 »
- Java中readLine方法如何忽略行中的回车符\r
- hibernate高并发如何处理
- 【十万火急!!!】拜托高手来教教我怎么用JAVA调用C#的webservice呐~~
- 搜索引擎设计 求助
- java 中怎样取得字符串的汉字
- spirng的jdbcTemplate()执行更新错做该用哪个方法啊?
- Hibernate中BasicDAO和JNDI DAO有什么区别
- hibernate - ExceptionInInitializerError
- struts 实现下拉下拉列表 找不到要是用的javabean
- 线程问题 ,急急急急急急
- SSH刷新之后出现 org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode
- spring到底是个什么概念啊
<%@ page contentType="text/html;charset=gbk" %>
<html>
<head>
<title>留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例——JSP+JDBC实现</h1>
<hr>
<br>
<%
//判断是否有错误信息,如果有则打印
//如果没有此段代码,演示时会直接打印null
if(request.getAttribute("err")!=null)
{
%>
<h2><%=request.getAttribute("err") %></h2>
<%
}
%>
<form action="login_conf.jsp" method="post">
<table width="80">
<tr>
<td colspan="2">用户登陆</td>
</tr>
<tr>
<td>用户名:</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</tr>
</table>
</form>
</center>
</body>
</html>
<%@ page contentType="text/html;charset=gbk" %>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例——JSP+JDBC实现</h1>
<hr>
<br>
<%
String id=request.getParameter("id");
String password=request.getParameter("password");
%>
<%!
String DRIVER="com.mysql.jdbc.Driver";
Connection conn=null;
Statement stmt=null;
PreparedStatement pstmt = null ;
ResultSet rs=null;
String sql=null;
//声明一个boolean变量,用于保存用户是否是合法的状态
boolean flag=false;
%>
<%
String sql="select name from person where id=? and password=?";
try{
Class.forName(DRIVER);
conn=DriverManager.
getConnection("jdbc:mysql://localhost/mydemo3?user=root&password=loveyu");
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,id);
pstmt.setString(2,password);
rs=pstmt.executeQuery();
if(rs.next()){
flag=true;
//用户合法,将用户名保存在session之中
session.setAttribute("uname",rs.getString(1));
}
else{
//保存错误信息
request.setAttribute("err","错误的用户名或密码");
}
rs.close();
pstmt.close();
conn.close();
}catch(Exception e){}
%>
<%
if(flag)
{
//用户合法
%>
<jsp:forward page="login_success.jsp"></jsp:forward>
<%
}
else
{//用户非法
%>
<jsp:forward page="index.jsp"></jsp:forward>
<%
}
%>
</center>
</body>
</html> 这页是进行验证的页面
<%@ page contentType="text/html;charset=gbk" %>
<html>
<head>
<title>留言管理程序——登陆</title>
</head>
<body>
<center>
<h1>留言管理范例——JSP+JDBC实现</h1>
<hr>
<br>
<%
if(session.getAttribute("uname")!=null)
{
%>
<h2>登陆成功</h2>
<h2>欢迎<font color="red"><%=session.getAttribute("uname") %></font>光临</h2>
<h3><a href="list_notes.jsp">进入留言管理程序</a></h3>
<%
}
else
{ //用户未登陆
response.setHeader("refresh","2;URL=index.jsp");
%>
您还未登陆,请先登陆!<br>
两秒钟后自动跳转到登陆窗口!<br>
如果没有跳转,请按<a href=index.jsp>这里</a>
<%
}
%>
</center>
</body>
</html>验证成功或失败后的处理
第二次就出现错误那你第二次时错误代码输出没 //用户合法,将用户名保存在session之中
session.setAttribute("uname",rs.getString(1));
}
else{
//保存错误信息
request.setAttribute("err","错误的用户名或密码");
}
这是你第一次时把错误信息保存在request中,下次再登陆时就是新的请求了
session.setAttribute("err","错误的用户名或密码");测试一下能不能输出当然if(request.getAttribute("err")!=null)改为if(session.getAttribute("err")!=null)
你试试看看