servlet做用户管理之二

来源:互联网 发布:灵异网络剧 编辑:程序博客网 时间:2024/05/16 15:24

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

public class Login extends HttpServlet {
 // 客户端用get方式访问页面时就是调用了doGet方法(直接在地址栏里面敲url地址)!
 // 客户提交表单,并且表单用post方式提交时,调用了doPost方式!
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  doPost(req, resp);

 }

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  
  resp.setCharacterEncoding("gbk");
  System.out.println("dopost!");
  String pwd = req.getParameter("pwd");
  String userName = req.getParameter("userName");
  String check = req.getParameter("check");
  PrintWriter pw = resp.getWriter();
  pw.print("密码:" + pwd + "用户名:" + userName);
  HttpSession hs = req.getSession(true);
  hs.setAttribute("userName", userName);
  hs.setAttribute("pwd", pwd);
  // login用户名:"+userName+"密码"+password+"用户名:"+userName2);
  String dbURL = "jdbc:sqlserver://localhost:1434; DatabaseName=INFO";
  String user = "sa";
  String password = "123";
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
      .newInstance();
   } catch (InstantiationException e) {
    e.printStackTrace();
    pw.print("InstantiationException");
   } catch (IllegalAccessException e) {
    e.printStackTrace();
    pw.print("IllegalAccessException");
   }
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
   System.out.println(e.toString());
   pw.print("class not found");
  }
  try {
   con = DriverManager.getConnection(dbURL, user, password);
   stmt = con.createStatement();
   String id, name, age;
   String qurey = "select * from users where name = '" + userName
     + "'";
   rs = stmt.executeQuery(qurey);
   if (rs.next()) {
    if (rs.getString("password").equals(pwd)) {
     if (check != null) {
      Cookie c = new Cookie("userName", userName);
      Cookie c2 = new Cookie("pwd", pwd);
      c.setMaxAge(2 * 7 * 24 * 60 * 60);
      c2.setMaxAge(2 * 7 * 24 * 60 * 60);
      resp.addCookie(c);
      resp.addCookie(c2);
     }
     ServletContext sc = this.getServletContext();
     int value=Integer.parseInt((String)sc.getAttribute("doublejun"));
     value++;
     sc.removeAttribute("doublejun");
     sc.setAttribute("doublejun", value+"");
     resp.sendRedirect("welcome");
    } else {
     resp.getWriter().print("密码错误");
     // resp.sendRedirect("login");

    }
   } else {
    resp.getWriter().print("用户名不存在");
    // resp.sendRedirect("login");
   }

  } catch (SQLException e) {
   e.printStackTrace();
   pw.write(e.toString() + "fdsljasldkf");
  } finally {
   if (rs != null) {
    try {
     rs.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
   if (stmt != null) {
    try {
     stmt.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
   if (con != null) {
    try {
     con.close();
    } catch (SQLException e) {
     e.printStackTrace();
    }
   }
  }
 }

 @Override
 public void destroy() {
  //当服务器关闭时将内存中的网站访问量写入到文件中
  ServletContext sc = this.getServletContext();
  int value= Integer.parseInt((String)sc.getAttribute("doublejun"));
  FileWriter fw = null;
  BufferedWriter bw = null;
  try {
   fw = new FileWriter("F://times.txt");
   bw = new BufferedWriter(fw);
   bw.write(value+"");
   bw.close();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   System.out.println(value+"");
  }
 }

 @Override
 public void init() throws ServletException {
  //在服务器初始化的时候读取网站的访问次数
  System.out.println("init!");
  int value = 0;
  FileReader fr = null;
  BufferedReader br = null;
  FileWriter fw = null;
  BufferedWriter bw = null;
  try {
   fr = new FileReader("F://times.txt");
   br = new BufferedReader(fr);
   value=Integer.parseInt(br.readLine());
   br.close();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   System.out.println(value+"");
  }
  //在服务器内存中创建ServletContext对象。用来记录并控制网站的访问量
  ServletContext sc = this.getServletContext();
  sc.setAttribute("doublejun",value+"");

  
 }
}

原创粉丝点击