我主要要实现的功能是 前一个页面xiangmu1用户输入的用户名和密码,在xiangmu2中连接数据库 看是否登录成功
我在tomcat下已经装好sqlserver的JDBC驱动 保证没有错!然后在JCreator下编写的代码如下:package com.xu;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;public class xiangmu2 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
PrintWriter pw=res.getWriter();
//获得前面的一个页面用户输入的用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("passwrd");
pw.println(u); //已经测试前面的用户名和密码都可以成功拿到
pw.println(p);
//连接数据库
//驱动
Class.forName("com.mircosoft.sqlserver.jdbc.SQLServerDriver");
//得到连接
Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433,databaseName=LiangShanHero","xu","123"); //创建Statement
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select top 1 * from my where myId='"+u+"'and myPass='"+p+"'");//这条语句是从数据库中查找是否有用户名、密码和前一个页面输的相等的数据
代码很奇怪 到啦红色那条语句就补执行啦(红色语句没有执行 用pw.println(p); 语句去测试过),大神们告诉我哪里错啦啊???
我在tomcat下已经装好sqlserver的JDBC驱动 保证没有错!然后在JCreator下编写的代码如下:package com.xu;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;public class xiangmu2 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
PrintWriter pw=res.getWriter();
//获得前面的一个页面用户输入的用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("passwrd");
pw.println(u); //已经测试前面的用户名和密码都可以成功拿到
pw.println(p);
//连接数据库
//驱动
Class.forName("com.mircosoft.sqlserver.jdbc.SQLServerDriver");
//得到连接
Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433,databaseName=LiangShanHero","xu","123"); //创建Statement
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select top 1 * from my where myId='"+u+"'and myPass='"+p+"'");//这条语句是从数据库中查找是否有用户名、密码和前一个页面输的相等的数据
代码很奇怪 到啦红色那条语句就补执行啦(红色语句没有执行 用pw.println(p); 语句去测试过),大神们告诉我哪里错啦啊???
解决方案 »
- 正则表达式和Unicode编码的问题
- 有关Applet画图的问题
- 反射为对象的字段赋值时发生参数错误再求教
- JDBC支持事务吗
- 放到button上的icon比button小怎么办?
- 帮忙看看程序问题在哪?比较长,如能解决再送60分(就剩160分了)
- 怎样限制jTextField中只能输入数字,而不是字母呢?
- 昨天在书店看到一本《JAVA2入门经典》的书,老外写的,中国电力出版社出版的,有谁看过这本书,能不能给个建议评价。
- 我用jdk1.4代替了jb4里的jdk1.3,可是…………
- 使用java来开发一个基于WEB的C/S系统,请问用什么工具好?欢迎发言?
- 是不是不能进行静态调用?
- 考试系统中 生成试卷的一个算法问题 求教!!!
import java.io.*;
import java.sql.*;public class xiangmu2 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
PrintWriter pw=res.getWriter();
String u=req.getParameter("username");
String p=req.getParameter("passwrd");
//连接数据库
//驱动
Class.forName("com.mircosoft.sqlserver.jdbc.SQLServerDriver");
//得到连接 Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433,databaseName=LiangShanHero","xu","123");//创建Statement
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select top 1 * from my where myId='"+u+"'and myPass='"+p+"'");
//验证用户是否合法if(rs.next()){
res.sendRedirect("xiangmu3?name="+u+"&pass="+p);
//将验证成功的信息写入session
//第一步 得到session
HttpSession hs=req.getSession(true);
//修改session的存在时间
hs.setMaxInactiveInterval(20);
//第二步 把属性写入session
hs.setAttribute("pass","ok");
res.sendRedirect("xiangmu3"); //从session中删除某个数据 hs.removeAttribute(String name);}else{ res.sendRedirect("xiangmu1"); //bu he fa yong hu tiao dao xiangmu1 chuang kou
}
感觉还是你驱动加载有问题或者与数据库不对应。上面的这句是sql server 2000的!
sql server 2005的要写成:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
pw.println(p); //用System.out.println()
2.
Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433,databaseName=LiangShanHero","xu","123");==>Connection ct=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=LiangShanHero","xu","123");