各位朋友大家好·!
下面是:beanr的程序:
condb.java
package com.wlg.test;
import java.sql.*;
public class condb //构选函数必须同包名一致
{
String sd="sun.jdbc.odbc.JdbcOdbcDriver";
String sc="jdbc:odbc:prodb";
Connection con=null;
ResultSet rs=null;
public condb(){
try
{
Class.forName(sd);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
try
{
con=DriverManager.getConnection(sc);
Statement stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql); }
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return rs;
}
}下在是servlet程序:
Hello.java
package com.wlg.servlet;
import com.wlg.test.condb;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.sql.*;
public class Hello extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
String username; //客户姓名
String password; //密码
String actionname; //是提交了!
//设置用中文GB2312编码处理页面参数的中文信息
request.setCharacterEncoding("GB2312");
//读取POST请求的数据
username=request.getParameter("username");
password=request.getParameter("password");
actionname=request.getParameter("actionname");
HttpSession httpSession = request.getSession(true);
httpSession.setAttribute("username1", username);
condb dndb = new condb();
String sql = "select * from T_User_db where username='" + username +"'";
ResultSet rset = dndb.executeQuery(sql);
//try {
if (rset.next()) {
String email = rset.getString("email");
String userpass1 = rset.getString("userpass");
//创建名字为“usr”、“password”两个Session变量
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", "userpass1");
} else {
response.sendRedirect("../../login.jsp");
}
//} catch (SQLException e) {
// System.err.println(e.getMessage());
// }
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>用户登陆情况</title>");
out.println("</head>");
out.println("<body>");
out.println("sql:"+sql+"</br>"+rset+"<br>");
out.println("用户名:"+username+"");
out.println("<br>密码:"+password+"</br>");
out.println("<br>提交方式:"+actionname+"</br>");
out.println("<a href=../../listsession.jsp>查看session变量</a>");
out.println("</body>");
out.println("</html>");
}
}上面的程序在通过jbuilder2006编译的时候:出错了:
出错内容为:
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 28, column 34
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 29, column 54
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 30, column 58
基本的意思就是没有捕获异常,但是我使用了:try{}catch{}之后,编译通了。但没有得session值。session的值就为空了。login.jsp登陆页为:
<form name="form1" action="/javabean/servlet/com/checklogin.do?actionname=editsava" method="post" onsubmit="return xxg()">
<input name="username" type="text" class="my_input" id="sa" size="12">
<input name="password" type="password" class="my_input" id="pwd" size="12">
<input name="imageField" type="image" src="images/gl_13.gif" width="64" height="20" border="0">
</form>使用上面之后。我在listsession.jsp页里面把session的值读出来:
读session值页面:listsession.jsp
<%
out.println("<br><br>用户名1:");
out.println(session.getAttribute("username1"));
out.println("<br><br>email:");
out.println(session.getAttribute("email"));
out.println("<br><br>密 码:");
out.println(session.getAttribute("password"));
%>如果我输入的是hcg,并在数据库找到,那就应该是:
用户名1: hcg
email: [email protected]
密 码: 1231231可是结果是这样:
用户名1: hcg
email: null
密 码: null 在try{}之中使用的:
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", "userpass1");
根本就没有值!而为空,请问一下是什么原因!如果不使用try{}
编译通过不了。使用了,session值为空,请问一下,是什么原因啊。但是我这可以肯定一点。数据库连接是正常的。只是在读取数据库的值的时候,出异常了。
使用try{}之后编译,如果我输入的用户名在数据库中找不到。它就自动的弹会登陆页面。
证连接数据库正常,
只是在: if (rset.next()) {
String email = rset.getString("email");
String userpass1 = rset.getString("userpass");
上面三行出错了。请详细解答一下。谢谢!
下面是:beanr的程序:
condb.java
package com.wlg.test;
import java.sql.*;
public class condb //构选函数必须同包名一致
{
String sd="sun.jdbc.odbc.JdbcOdbcDriver";
String sc="jdbc:odbc:prodb";
Connection con=null;
ResultSet rs=null;
public condb(){
try
{
Class.forName(sd);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
try
{
con=DriverManager.getConnection(sc);
Statement stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(sql); }
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return rs;
}
}下在是servlet程序:
Hello.java
package com.wlg.servlet;
import com.wlg.test.condb;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.sql.*;
public class Hello extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
String username; //客户姓名
String password; //密码
String actionname; //是提交了!
//设置用中文GB2312编码处理页面参数的中文信息
request.setCharacterEncoding("GB2312");
//读取POST请求的数据
username=request.getParameter("username");
password=request.getParameter("password");
actionname=request.getParameter("actionname");
HttpSession httpSession = request.getSession(true);
httpSession.setAttribute("username1", username);
condb dndb = new condb();
String sql = "select * from T_User_db where username='" + username +"'";
ResultSet rset = dndb.executeQuery(sql);
//try {
if (rset.next()) {
String email = rset.getString("email");
String userpass1 = rset.getString("userpass");
//创建名字为“usr”、“password”两个Session变量
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", "userpass1");
} else {
response.sendRedirect("../../login.jsp");
}
//} catch (SQLException e) {
// System.err.println(e.getMessage());
// }
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>用户登陆情况</title>");
out.println("</head>");
out.println("<body>");
out.println("sql:"+sql+"</br>"+rset+"<br>");
out.println("用户名:"+username+"");
out.println("<br>密码:"+password+"</br>");
out.println("<br>提交方式:"+actionname+"</br>");
out.println("<a href=../../listsession.jsp>查看session变量</a>");
out.println("</body>");
out.println("</html>");
}
}上面的程序在通过jbuilder2006编译的时候:出错了:
出错内容为:
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 28, column 34
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 29, column 54
"Hello.java": unreported exception java.sql.SQLException; must be caught or declared to be thrown at line 30, column 58
基本的意思就是没有捕获异常,但是我使用了:try{}catch{}之后,编译通了。但没有得session值。session的值就为空了。login.jsp登陆页为:
<form name="form1" action="/javabean/servlet/com/checklogin.do?actionname=editsava" method="post" onsubmit="return xxg()">
<input name="username" type="text" class="my_input" id="sa" size="12">
<input name="password" type="password" class="my_input" id="pwd" size="12">
<input name="imageField" type="image" src="images/gl_13.gif" width="64" height="20" border="0">
</form>使用上面之后。我在listsession.jsp页里面把session的值读出来:
读session值页面:listsession.jsp
<%
out.println("<br><br>用户名1:");
out.println(session.getAttribute("username1"));
out.println("<br><br>email:");
out.println(session.getAttribute("email"));
out.println("<br><br>密 码:");
out.println(session.getAttribute("password"));
%>如果我输入的是hcg,并在数据库找到,那就应该是:
用户名1: hcg
email: [email protected]
密 码: 1231231可是结果是这样:
用户名1: hcg
email: null
密 码: null 在try{}之中使用的:
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", "userpass1");
根本就没有值!而为空,请问一下是什么原因!如果不使用try{}
编译通过不了。使用了,session值为空,请问一下,是什么原因啊。但是我这可以肯定一点。数据库连接是正常的。只是在读取数据库的值的时候,出异常了。
使用try{}之后编译,如果我输入的用户名在数据库中找不到。它就自动的弹会登陆页面。
证连接数据库正常,
只是在: if (rset.next()) {
String email = rset.getString("email");
String userpass1 = rset.getString("userpass");
上面三行出错了。请详细解答一下。谢谢!
解决方案 »
- frameset 不能正常显示的问题
- 一个.java文件中能有多个类吗?
- tomcat的index.jsp与index_gb.jsp
- jspsmartupload下载文件的时候不能下载<64k的问题怎么解决啊?万分感谢,解决马上结贴!
- 谁有fckeditor.java的fckeditor2.3.zip这个包!
- 如何控制可编辑的select在网页里的坐标位置
- JSP中两个响应事件怎么做?
- 利用applet中的socket编写Web聊天程序时,中文问题如何解决
- 请问执行sql语句时包ResultSet is closed这是什么原因????
- 数据库beans的问题
- 外包JSP+SERVLET+JAVABEAN网站,应该如何提性能方面的验收标准?谢谢!
- ■■学习JSP有什么好的源码参考一下学习?要优秀的
String userpass1 = rset.getString("userpass");System.out.println("email="+email+" userpass1="+userpass1) ;看看取到数据没有既然之前session中设置的用户名都可以正常显示,应该不是session的问题
之所以显示正常,是因为:
httpSession.setAttribute("username1", username);
没有放在try{}catch{}之间。
放在之间了,就会显示:null,
throws IOException, ServletException, SQLException不要try catch了
import com.wlg.test.condb;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import java.sql.*;
public class Hello extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
String username; //客户姓名
String password; //密码
String actionname; //是提交了!
//设置用中文GB2312编码处理页面参数的中文信息
request.setCharacterEncoding("GB2312");
//读取POST请求的数据
username=request.getParameter("username");
password=request.getParameter("password");
actionname=request.getParameter("actionname");
HttpSession httpSession = request.getSession(true);
httpSession.setAttribute("username1", username);
condb dndb = new condb();
String sql = "select * from T_User_db where username='" + username +"' order by id desc";
ResultSet rset = dndb.executeQuery(sql);
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>用户登陆情况</title>");
out.println("</head>");
out.println("<body>");
try {
if (rset.next()) {
String email = rset.getString("email").trim();
String userpass1 = rset.getString("userpass").trim();
//创建名字为“usr”、“password”两个Session变量
out.println("email:"+email+"");
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", userpass1);
} else {
response.sendRedirect("../../login.jsp");}
} catch (SQLException e) {
System.err.println(e.getMessage());
}
out.println("sql:"+sql+"</br>"+rset+"<br>");
//out.println("用户名:"+username+"");
//out.println("<br>密码:"+password+"</br>");
//out.println("<br>提交方式:"+actionname+"</br>");
out.println("<a href=../../listsession.jsp>查看session变量</a>");
out.println("</body>");
out.println("</html>");
}
}采用上面之后,而在try{}catch{}之间的try {
if (rset.next()) {
String email = rset.getString("email").trim();
String userpass1 = rset.getString("userpass").trim();
//创建名字为“usr”、“password”两个Session变量
out.println("email:"+email+"");
httpSession.setAttribute("email", email);
httpSession.setAttribute("password", userpass1);
} else {
response.sendRedirect("../../login.jsp");}
} catch (SQLException e) {
System.err.println(e.getMessage());
}
之间的email根本就不显示出来。并且正常编译了。
如果不使用try{}catch{}就编译不了!
out.println("email:"+email+"");
这又助于你定位具体的错误在哪一行