当前位置: 代码迷 >> Java Web开发 >> 新手请问servlet制作简单登录页面的有关问题
  详细解决方案

新手请问servlet制作简单登录页面的有关问题

热度:57   发布时间:2016-04-16 22:01:21.0
新手请教servlet制作简单登录页面的问题
采用的是教学视频里的DAO模式 mysql数据库建了一张表personmess(id int,name varchar,password varchar) personmess的bean就不贴了下面是UserDao接口
package com.amaker.servletsession;

import com.amaker.servletsession.User;

public interface UserDao {
   //login
   public User login(String name,String password);
   
//register
   public void register(User u);
   //check
   public boolean check(String name);
}

实现类
package com.amaker.servletsession;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;




import java.sql.Statement;

import com.amaker.servletsession.User;
import com.amaker.servletsession.UserDao;
import com.amaker.servletsession.LinkMysql;

public class UserDaoimpl implements UserDao {


public User login(String name, String password) {

String sql="select id,name,password from personmess where name=? and password=? ";
//String sql1="select name from personmess where id=1";
try {
//Class.forName("com.mysql.jdbc.Driver"); //1、使用CLASS 类加载驱动程序  
      //Connection  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","root"); //2、连接数据库  


Connection  con =LinkMysql.connectDb();
PreparedStatement pstmt=con.prepareStatement(sql);


    pstmt.setString(1, name);
    pstmt.setString(2, password);
    ResultSet rs=pstmt.executeQuery();
    if(rs.next())
    {
      int id=rs.getInt(1);
      //String username=rs.getString(2);
      //int userpassword=rs.getInt(3);
      User user=new User();
      user.setId(id);
      user.setName(name);
      user.setPassword(password);
      //System.out.println(id);
      return user;
      
    }
} catch (Exception e) {

e.printStackTrace();
}
return null;
}


public void register(User u) {
String sql="insert into personmess(id,name,password) values(?,?,?)";
try {
PreparedStatement pstmt=LinkMysql.connectDb().prepareStatement(sql);
    pstmt.setInt(1,u.getId());
    pstmt.setString(2, u.getName());
    pstmt.setString(3, u.getPassword());
    pstmt.executeUpdate();
} catch (Exception e) {

e.printStackTrace();
}

}


public  boolean check(String name) {

String sql="select id,name,password from personmess where name=?";
try {
PreparedStatement pstmt=LinkMysql.connectDb().prepareStatement(sql);
    
    pstmt.setString(1, name);
    
    ResultSet rs=pstmt.executeQuery();
    if(rs.next())
    {
     
      
      return true;
    }
} catch (Exception e) {

e.printStackTrace();
}
return false;
}
  
  public static void main(String[] args)
  {
  UserDaoimpl u=new UserDaoimpl();
  System.out.println(u.check("jc"));
  User user=u.login("jc","12345");
 if(user!=null)
 {
  System.out.println(user.name);
 }else {
 {
 System.out.println("null"); 
 }
}  
 }
}

main方法执行后的结果表明是连着数据库的,但是servlet不行,下面是servlet

package com.amaker.servletsession;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class ServletSession extends HttpServlet {
private static final long serialVersionUID = 1L;
       
   
    public ServletSession() {
        super();
       
  相关解决方案