login.jsp的代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" language="java" import="java.sql.*"%>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<% request.setCharacterEncoding("utf-8");%>
<wml>
<card id="main" title="登陆">
<p align="center">
用户名<br/>
<input name="username" type="text" emptyok="false" value=""/><br/>
密码<br/>
<input name="password" type="password" emptyok="false" value=""/><br/>
<br/>
<do type="accept" label="登陆">
<go href="chklogin.jsp" method="post">
<postfield name="username" value="$(username)"/>
<postfield name="password" value="$(password)"/>
</go>
</do>
<br/><br/><a href="reg.jsp">你还没注册?</a></p>
</card>
</wml>
————————————————————————————————
chklogin.jsp的代码:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" language="java" import="java.sql.*"%>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<% request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="testblog" scope="page" class="testblog.testblog"/>
<%
String username=new String(request.getParameter("username").trim().getBytes("8859_1"));
String password=new String(request.getParameter("password").trim().getBytes("8859_1"));
String sql="select * from user where username='"+username+"' and password='"+password+"'";
ResultSet rs=testblog.executeQuery(sql);
if(rs.next()){
int id=Integer.parseInt(rs.getString("id"));
response.sendRedirect("index.jsp?id="+id);
rs.close();
}
else
{
rs.close();
%>
<wml>
<card id="main" title="错误">
<p align="center">账号或密码输入错误,请重新输入!<anchor>返回<prev/></anchor>
</p>
</card>
</wml>
<%}%>
-------------------------------
chklogin.jsp的报错信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception
org.apache.jasper.JasperException: Exception in JSP: /chklogin.jsp:1310: String password=new String(request.getParameter("password").trim().getBytes("8859_1"));
11: String sql="select * from user where username='"+username+"' and password='"+password+"'";
12: ResultSet rs=testblog.executeQuery(sql);
13: if(rs.next()){
14: int id=Integer.parseInt(rs.getString("id"));
15: response.sendRedirect("index.jsp?id="+id);
16: rs.close();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause
java.lang.NullPointerException
org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)note The full stack trace of the root cause is available in the Apache Tomcat/5.5.16 logs.
--------------------------------
其中调用的testblog这个bean的代码:
package testblog;
import java.sql.*;
public class testblog
{
String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String strDBUrl="jdbc:odbc:testblog";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
//<!--注册数据库驱动程序-->
public testblog()
{
try
{
Class.forName(strDBDriver);
}
//异常处理
catch(java.lang.ClassNotFoundException e)
{
System.err.println("testblog():"+e.getMessage());
}
}
//<!--建立数据库连接及定义数据查询-->
public ResultSet executeQuery(String sql)
{
rs=null;
try
{
conn=DriverManager.getConnection(strDBUrl,"sa","");//创建数据库连接对象
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
//<!--定义数据操作-->
public void executeUpdate(String sql)
{
stmt=null;
rs=null;
try
{
conn=DriverManager.getConnection(strDBUrl,"sa","");
stmt=conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
//<!--关闭数据库连接-->
public void closeStmt()
{
try
{
stmt.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" language="java" import="java.sql.*"%>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<% request.setCharacterEncoding("utf-8");%>
<wml>
<card id="main" title="登陆">
<p align="center">
用户名<br/>
<input name="username" type="text" emptyok="false" value=""/><br/>
密码<br/>
<input name="password" type="password" emptyok="false" value=""/><br/>
<br/>
<do type="accept" label="登陆">
<go href="chklogin.jsp" method="post">
<postfield name="username" value="$(username)"/>
<postfield name="password" value="$(password)"/>
</go>
</do>
<br/><br/><a href="reg.jsp">你还没注册?</a></p>
</card>
</wml>
————————————————————————————————
chklogin.jsp的代码:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" language="java" import="java.sql.*"%>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<% request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="testblog" scope="page" class="testblog.testblog"/>
<%
String username=new String(request.getParameter("username").trim().getBytes("8859_1"));
String password=new String(request.getParameter("password").trim().getBytes("8859_1"));
String sql="select * from user where username='"+username+"' and password='"+password+"'";
ResultSet rs=testblog.executeQuery(sql);
if(rs.next()){
int id=Integer.parseInt(rs.getString("id"));
response.sendRedirect("index.jsp?id="+id);
rs.close();
}
else
{
rs.close();
%>
<wml>
<card id="main" title="错误">
<p align="center">账号或密码输入错误,请重新输入!<anchor>返回<prev/></anchor>
</p>
</card>
</wml>
<%}%>
-------------------------------
chklogin.jsp的报错信息:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception
org.apache.jasper.JasperException: Exception in JSP: /chklogin.jsp:1310: String password=new String(request.getParameter("password").trim().getBytes("8859_1"));
11: String sql="select * from user where username='"+username+"' and password='"+password+"'";
12: ResultSet rs=testblog.executeQuery(sql);
13: if(rs.next()){
14: int id=Integer.parseInt(rs.getString("id"));
15: response.sendRedirect("index.jsp?id="+id);
16: rs.close();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause
java.lang.NullPointerException
org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:67)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)note The full stack trace of the root cause is available in the Apache Tomcat/5.5.16 logs.
--------------------------------
其中调用的testblog这个bean的代码:
package testblog;
import java.sql.*;
public class testblog
{
String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String strDBUrl="jdbc:odbc:testblog";
private Connection conn=null;
private Statement stmt=null;
ResultSet rs=null;
//<!--注册数据库驱动程序-->
public testblog()
{
try
{
Class.forName(strDBDriver);
}
//异常处理
catch(java.lang.ClassNotFoundException e)
{
System.err.println("testblog():"+e.getMessage());
}
}
//<!--建立数据库连接及定义数据查询-->
public ResultSet executeQuery(String sql)
{
rs=null;
try
{
conn=DriverManager.getConnection(strDBUrl,"sa","");//创建数据库连接对象
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
//<!--定义数据操作-->
public void executeUpdate(String sql)
{
stmt=null;
rs=null;
try
{
conn=DriverManager.getConnection(strDBUrl,"sa","");
stmt=conn.createStatement();
stmt.executeQuery(sql);
stmt.close();
conn.close();
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
}
//<!--关闭数据库连接-->
public void closeStmt()
{
try
{
stmt.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
public void closeConn()
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
解决方案 »
- 求上传的高手,在线等啊
- svg-Editor 和Chrome Frame框架 问题
- 如何判断用户是否登录?
- 把commons-ileupload.jar 和 commons-io.jar 导入 还是错误。
- 迷茫,请大家帮忙
- application 无限制访问人数
- 怎样能取出下拉列表中的内容那?谢谢~~~~
- cvsnt和系统有没有关系?
- ****做个带有聊天功能的软件(类似QQ、MSN),大家帮忙测试一下,提点意见******
- 在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题?(200分)
- 急死啦,头疼啊!从jsp返回的xml 从ajax里无法读取,请问是怎么回事,我把代码贴上有哪位高手帮我看看谢谢!
- 如何让actionform的validate验证失败以后跳到某个特定页面
try{
String username=new String(request.getParameter("username").trim().getBytes("8859_1"));
String password=new String(request.getParameter("password").trim().getBytes("8859_1"));
String sql="select * from user where username='"+username+"' and password='"+password+"'";
ResultSet rs=testblog.executeQuery(sql);
if(rs.next()){
int id=Integer.parseInt(rs.getString("id"));
response.sendRedirect("index.jsp?id="+id);
rs.close();
}
else
{
rs.close(); }catch(Exception e){}
if(request.getParameter("username")!=null&&request.getParameter("username").length()!=0)
{
就正常走下面的
try
{}
catch(){}...
}else
{
response.sendRedirect(登入页面);
}
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//wapforun//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<%@ page contentType="text/vnd.wap.wml;charset=gb2312" language="java" import="java.sql.*"%>
<% response.setContentType("text/vnd.wap.wml;charset=utf-8");%>
<% request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="testblog" scope="page" class="testblog.testblog"/>
<wml>
<card id="main" title="检验">
<%String username=new String(request.getParameter("username"));
String password=new String(request.getParameter("password"));
try{
String sql="select * from user where username='"+username+"' and password='"+password+"'";
ResultSet rs=testblog.executeQuery(sql);
if(rs.next()){
int id=Integer.parseInt(rs.getString("id"));
response.sendRedirect("index.jsp?id="+id);
rs.close();
}
else
{
rs.close();
response.sendRedirect("err.jsp");}
}catch(Exception e){ out.print("无法取得值"+username+password);
}
%>
</card>
</wml>结果显示:无法取得值111111
其中111和111是刚才输入的username和password的值,也就是说值能被取到,但是执行sql语句出错了。到底是哪里错了还是找不到,请大家帮忙找找。。
改为String username=new String(request.getParameter("username").trim().getBytes("8859_1"),"gb2312");
后还是不行啊
org.apache.jsp.chklogin_jsp._jspService(chklogin_jsp.java:67)
那就找到chklogin_jsp.java的第67行,去看看chklogin_jsp.java应该是应用服务器自己产生的,在工作目录下
而是数据库的表名是user,
不知是什么原因,用user做表名好像会出错,我把表名改成userinfo就行了,真是郁闷死我了!
在此谢谢大家的帮忙!