//登录界面
package com.servlet;
import javax.servlet.http.HttpServlet;
import java.io.*;
import javax.servlet.http.*;
public class Login extends HttpServlet{
 public void doGet(HttpServletRequest req,HttpServletResponse res){
  try{
   res.setCharacterEncoding("gb2312");//解决中文乱码问题
     PrintWriter pw=res.getWriter();
     String infor=req.getParameter("infor");
 pw.println("<html>");
 pw.println("<body>");
 if(infor!=null){ pw.println("<hl>你的账号或密码又错误,请重新登录</hl><br>");
 }
 pw.println("<hl>请登录吧</hl>");
 pw.println("<form action=exam method=post>");
 
 pw.println("用户名::<input type=text name=username ><br>");
 pw.println("密码:  <input type=password name=password><br>");
 pw.println("<input type=submit value=login>");
 pw.println("</form>");
 pw.println("</body>");
 pw.println("</html>"); 
 }catch(Exception e){
 e.printStackTrace();   
 }
 }
 public void doPost(HttpServletRequest req,HttpServletResponse res){
 this.doGet(req,res); 
    }
}
 //验证登录密码
package com.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.*;
import java.io.EOFException;
import java.sql.*;
import java.io.*;
public class Exam extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
  Connection con=null;
 Statement sm=null;
 ResultSet rs=null;
    try{String u=req.getParameter("username"); 
 String p=req.getParameter("password");
 String URL="jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=spdb;";
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    
    con = DriverManager.getConnection(URL,"sa","278905");
    System.out.println("222222222222222222");
    sm=con.createStatement(); 
    rs=sm.executeQuery("select top 1 * from users where username='"+u
    +"' and password='"+p+"'");
    
    if(rs.next())
 { HttpSession hs=req.getSession(true);
 hs.setMaxInactiveInterval(2);
  hs.setAttribute("a","ok");
  res.sendRedirect("wel?name="+u+"&password="+p);//向另外一个页面传递账号和密码
        hs.setAttribute("mz","张高上");
 }
  else{res.sendRedirect("login");
  
  } 
  
  }catch(Exception e){
e.printStackTrace(); 
  
 }finally{ try{
  if(con!=null)
  {con.close();
  }
  if(sm!=null){
  sm.close();
  }
  if(rs!=null){
  rs.close();
  } 
  }catch(Exception e){
  e.printStackTrace();
      }
   }
         }
 public void doPost(HttpServletRequest req,HttpServletResponse res){
 this.doGet(req,res);
    } 
    } 
//welcome界面
package com.servlet;
import javax.servlet.http.*;
import java.io.*;
public class Welcome extends HttpServlet{
 
public void doGet(HttpServletRequest req,HttpServletResponse res){
try{
  HttpSession hs=req.getSession(true);
String value=(String)hs.getAttribute("a");
if(value!=null)
 {res.setCharacterEncoding("gb2312");
 String u=req.getParameter("name");
 String p=req.getParameter("password");
  PrintWriter pw=res.getWriter();
 pw.println("welcome to you 你的账户是:"+u+"密码:"+p);
String m=(String)hs.getAttribute("mz");
pw.println("我的名字是:"+m);
String z=hs.getId();
pw.println("ID号为:"+z);
pw.println("<br><a href=login>返回直接登录</a>");
 }
 else{ res.sendRedirect("login?infor=error");
  
                }
}
  catch(Exception e){e.printStackTrace();
  }
 }
public void doPost(HttpServletRequest req,HttpServletResponse res){
 this.doGet(req,res);
 
 
}
}
 
请各位帮我看一下,谢了,错误的图片在我的相册里面

解决方案 »

  1.   

    sql server 2005的驱动放在WEB-INF的lib文件夹里面
      

  2.   

    我用输出语句试了一下,就是con = DriverManager.getConnection(URL,"sa","278905"); 或String URL="jdbc:microsoft:sqlserver://127.0.0.1:1433; databaseName=spdb;"; 有问题,我用的是sql sever 2005 数据库。但是就不知道哪里错了,忘各位给我指点一下
      

  3.   

    String URL="jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=spdb;"; 
    多了个;