package func;import java.io.IOException;
import java.sql.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import func.User;
public class Signin extends HttpServlet {
private static final long serialVersionUID = 1L;
private String CONTENT_TYPE = "text/html; charset=GB2312";
Connection con=null; public Signin()
{
String sDBdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:db";
try{
Class.forName(sDBdriver);
con=DriverManager.getConnection(sConnStr);
}
catch(Exception e){
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("gb2312");
String s1=request.getParameter("num");
String s2=request.getParameter("password");
try {
Statement stm = con.createStatement();
ResultSet result = stm.executeQuery("select * from register where num='"+s1+"' and password='"+s2+"'");
if(result.next()){
RequestDispatcher dispatcher=request.getRequestDispatcher("/success.jsp");
dispatcher.forward(request, response);
}
else{
RequestDispatcher dispatcher=request.getRequestDispatcher("/signin.jsp");
dispatcher.forward(request, response);
}
con.close();
} catch (Exception e) {}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}
}
import java.sql.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import func.User;
public class Signin extends HttpServlet {
private static final long serialVersionUID = 1L;
private String CONTENT_TYPE = "text/html; charset=GB2312";
Connection con=null; public Signin()
{
String sDBdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:db";
try{
Class.forName(sDBdriver);
con=DriverManager.getConnection(sConnStr);
}
catch(Exception e){
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("gb2312");
String s1=request.getParameter("num");
String s2=request.getParameter("password");
try {
Statement stm = con.createStatement();
ResultSet result = stm.executeQuery("select * from register where num='"+s1+"' and password='"+s2+"'");
if(result.next()){
RequestDispatcher dispatcher=request.getRequestDispatcher("/success.jsp");
dispatcher.forward(request, response);
}
else{
RequestDispatcher dispatcher=request.getRequestDispatcher("/signin.jsp");
dispatcher.forward(request, response);
}
con.close();
} catch (Exception e) {}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}
}
解决方案 »
- 如何实现用户查看到的源文件是加密成乱码的??
- [求助]JSP大神们帮帮我啊!!
- 遇到下面一个错误已经找了一天了,希望各位大侠能帮到我
- struts2文件上传问题
- struts2是在什么时候将action的执行后的数据传递到request的属性struts.valueStack中去的?
- javascript的问题
- 请问几个简单的项目技术问题?
- JSP一个带清零的小小计数问题请教?
- 求助!!帮我回答一下,好吗,不会很多时间的:)在线等
- HTTP500的问题
- 每次新建项目都多出了settings文件里面多了几个XML文件 真心不懂·怎么恢复成以前
- 在线等。我想在jsp页面上传文件 请问怎么限制他上传文件的大小呢?在jsp页面里
dispatcher.forward(request, response)
把两句合并起来试试
RequestDispatcher dispatcher=request.getRequestDispatcher("/success.jsp").forward(request,response)还不行把错误信息列出来
或者你看看是不是你jsp页的路径打错了
你处理的异常只是捕获了 并没有对其操作、
哪怕打印就会知道是否出错、catch (Exception e) {
System.out.println("异常:"+e.getMessage());
}
果然有异常,这个问题
果然有异常,这个问题,求解决方法
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_23\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jdk1.6.0_23//bin/../jre/bin/client;C:/Program Files/Java/jdk1.6.0_23//bin/../jre/bin;C:/Program Files/Java/jdk1.6.0_23//bin/../jre/lib/i386;C:\Program Files\Java\jdk1.6.0_23\\bin;C:\Program Files\Java\jre6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\Win7系统封装资料\[3]优化及设置\Windows7优化大师 V1.66 绿色版;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files\Rational\common;C:\Program Files\MySQL\MySQL Server 5.5\bin;E:\study\VC\Tools\WinNT;E:\study\VC\MSDev98\Bin;E:\study\VC\Tools;E:\study\VC98\bin
2012-2-10 12:59:29 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:work' did not find a matching property.
2012-2-10 12:59:29 org.apache.coyote.AbstractProtocolHandler init
信息: Initializing ProtocolHandler ["http-bio-8080"]
2012-2-10 12:59:29 org.apache.coyote.AbstractProtocolHandler init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
2012-2-10 12:59:29 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 752 ms
2012-2-10 12:59:29 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
2012-2-10 12:59:29 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.8
2012-2-10 12:59:30 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\workspace\jsp\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\work\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2012-2-10 12:59:30 org.apache.coyote.AbstractProtocolHandler start
信息: Starting ProtocolHandler ["http-bio-8080"]
2012-2-10 12:59:30 org.apache.coyote.AbstractProtocolHandler start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
2012-2-10 12:59:30 org.apache.catalina.startup.Catalina start
信息: Server startup in 424 ms
java.sql.SQLException: General error
at sun.jdbc.odbc.JdbcOdbc.throwGenericSQLException(JdbcOdbc.java:7086)
at sun.jdbc.odbc.JdbcOdbc.SQLAllocStmt(JdbcOdbc.java:173)
at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.java:413)
at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.java:396)
at func.Signin.doGet(Signin.java:47)
at func.Signin.doPost(Signin.java:74)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
import java.sql.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import func.User;
public class Signin extends HttpServlet {
private static final long serialVersionUID = 1L;
private String CONTENT_TYPE = "text/html; charset=GB2312";
Connection con=null; public Signin()
{
String sDBdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:db";
try{
Class.forName(sDBdriver);
con=DriverManager.getConnection(sConnStr);
}
catch(Exception e){
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String sDBdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:db";
try{
Class.forName(sDBdriver);
con=DriverManager.getConnection(sConnStr);
}
catch(Exception e){
}
response.setContentType(CONTENT_TYPE);
request.setCharacterEncoding("gb2312");
String s1=request.getParameter("num");
String s2=request.getParameter("password");try {
Statement stm = con.createStatement();
ResultSet result = stm.executeQuery("select * from register where num='"+s1+"' and password='"+s2+"'");
if(result.next()){
RequestDispatcher dispatcher=request.getRequestDispatcher("/success.jsp");
dispatcher.forward(request, response);
}
else{
RequestDispatcher dispatcher=request.getRequestDispatcher("/signin.jsp");
dispatcher.forward(request, response);
}con.close();
} catch (Exception e) {}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}}
//大概是con对象为空的原因,把构造函数东西考下来
java.sql.SQLException: General error
1、你这句sql能在sql server里执行么?
把是s1 和s2 给自己匹配个参数查询下2、在这包下func.Signin.doGet(Signin.java:47)这句话的47行是哪句话?
ps: 个人认为是你 这个数据库 表register 里 字段 num 是int 类型的 而你num传递进去的参数是String类型 需要强制转换 【但是我不知道你password是什么类型的 具体请查看数据库的设计表结构 姑且认为是varchar的】 这样转换int num1 = Integer.parseInt(s1);
把num1和s2传递进去查询
变成这样select * from register where num='"+num1+"' and password='"+s2+"'"
3、如果还不行我做一个改动你试试从jsp获取s1 s2 那不变,
下面从Statement stm = con.createStatement(); 开始改动 java.sql.PreparedStatement ps = conn.prepareStatement("select * from register where num = ? and password = ? ");
ps.setString(1,s1);
//如果ps.setString(); 不行换成 int num1 = Integer.parseInt(s1);
// ps.setInt(1,num1); 【看你num字段是int还是varchar的】
ps.setString(2,s2);
java.sql.ResultSet rs = ps.executeQuery();
//然后下面都相同了 变量名你自己换下。
stm.close(); 【try catch一定要捕获 并且处理异常】
}
if(result != null){
result.close();【try catch一定要捕获 并且处理异常】
}
if(con != null){
con.close();【try catch一定要捕获 并且处理异常】
}
你代码try catch 记得要捕获 而且要处理异常
如果不捕获你永远都不知道自己处于错误里而迷茫没报异常。