Android Java Web实现登录注册(二)——服务器端

来源:互联网 发布:华讯网络校园招聘待遇 编辑:程序博客网 时间:2024/06/07 16:30

Eclipse新建Dynamic Web Project,新建index.html,运行看见没有提示404错误的页面即Tomcat服务器部署成功。这是搭建Java Web环境时需要完成的工作。详细内容请看点击打开链接


涉及的文件与项目结构:

  



一、Servlet类

接收客户端发来的请求,(Post方法),调用Service类中的方法来实现功能。

代码:LoginServlet.java

public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;static int LOGIN_FAILED = 0;    static int LOGIN_SUCCEEDED = 1;           public LoginServlet() {        super();    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);  response.getWriter().append("Served at: ").append(request.getContextPath());}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// 返回字符串          String responseMsg="FAILED";          // 输出流          PrintWriter out = response.getWriter();          // 设置编码形式          request.setCharacterEncoding("utf-8");            // 获取传入数据          String id = request.getParameter("id");          String password = request.getParameter("password");        System.out.println("id:" + id + " --try to login");          // 访问数据库          int value = Service.login(id, password);        if(value == LOGIN_SUCCEEDED) {              responseMsg = "SUCCEEDED";          }        System.out.println("login servlet responseMsg:" + responseMsg);          out.print(responseMsg);}}
RegisterrServlet类和LoginServlet类基本相同,不同在于取/传数据和几个变量名,就省略了

用到的两个Servlet都要在web.xml中如下注册一下:

<servlet>    <servlet-name>servlet.LoginServlet</servlet-name>    <servlet-class>                servlet.LoginServlet    </servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>servlet.LoginServlet</servlet-name>    <url-pattern>/LoginServlet</url-pattern>  </servlet-mapping>


二、Service类

处理Servlet传来的数据并执行相应sql语句

代码:MyService.java

public class MyService {static PreparedStatement preparedStatement = null;      static ResultSet resultSet = null;      static int updateRowCnt = 0;    static int LOGIN_FAILED = 0;    static int LOGIN_SUCCEEDED = 1;    static int REGISTER_FAILED = 2;    static int REGISTER_SUCCEEDED = 3;          public static int login(String id, String password) {          int result = LOGIN_FAILED;          resultSet = null;        // 执行 SQL 查询语句          String sql = "select * from user_list where id='" + id +"'";          try {                 Connection con = DBManager.getConnection();              preparedStatement = con.prepareStatement(sql);              try{                  resultSet = preparedStatement.executeQuery();                  // 查询结果                  if(resultSet.next()){                    if(resultSet.getString("password").equals(password)){                result = LOGIN_SUCCEEDED;                System.out.println("id:" + id                     + " username:" + resultSet.getString("username")                    + " --login");                }                }                  preparedStatement.close();                  con.close();              }catch(Exception e){                  e.printStackTrace();              }          }catch(Exception e){              e.printStackTrace();          }          System.out.println("login service result:" + result);        return result;      }          public static int register(String id, String username, String password) {          int result = REGISTER_FAILED;          updateRowCnt = 0;        // 执行 SQL 插入语句          String sql = "insert into user_list(`id`, `username`,`password`) values ('"        + id + "', '" + username + "', '" + password + "')";        try {                 Connection con = DBManager.getConnection();              preparedStatement = con.prepareStatement(sql);              try{                  updateRowCnt = preparedStatement.executeUpdate();                  // 插入结果                  if(updateRowCnt != 0){                    result = REGISTER_SUCCEEDED;                System.out.println("id:" + id                     + " username:" + resultSet.getString("username")                    + " --register");                }                  preparedStatement.close();                  con.close();              }catch(Exception e){                  e.printStackTrace();              }          }catch(Exception e){              e.printStackTrace();          }          System.out.println("register service result:" + result);        return result;      }    }

三、DBManager类

被Service类调用来连接数据库,包括说明连接的数据库的地址、用户名和密码。

public class DBManager {// 加载的驱动      private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";      // 数据库URL      private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf8";      // 数据库连接用户名      private static final String DATABASE_USERNAME = "admin";      // 数据库连接密码      private static final String DATEBASE_PASSWORD = "123456";      public static Connection getConnection() throws SQLException {          try {              Class.forName(DRIVER_CLASS);          } catch (ClassNotFoundException e) {              e.printStackTrace();          }          Connection con = DriverManager.getConnection(DATABASE_URL,DATABASE_USERNAME, DATEBASE_PASSWORD);          return con;      }  }


最后,连接数据库和执行sql语句成功的前提是:已经MySQl中建立相应数据库和表格


在左下角SCHEMAS栏中可以看到创建数据库的情况,右键表格名->Select Rows可以查看表格内容


至此,服务器端的工作也完成了。

代码下载:

客户端 http://download.csdn.net/detail/qq_24833289/9620063

服务器 http://download.csdn.net/detail/qq_24833289/9620008


0 1
原创粉丝点击