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
0 1
- Android Java Web实现登录注册(二)——服务器端
- Android Java Web实现登录注册(一)——客户端
- 【Android】 使用okhttp实现注册登录功能(与服务器端)
- 实习日志(13):服务器端向Android客户端传值——登录实现(二)
- 服务器端向Android客户端传值——登录实现(二)
- 服务器端向Android客户端传值——登录实现(二)
- 服务器端向Android客户端传值——登录实现(二)
- Android客户端实现注册/登录详解(二)
- Android客户端实现注册/登录详解(二)
- Android客户端实现注册/登录详解(二)
- 注册——登录实战演习 (使用java web应用的三层架构实现)
- java web 学习笔记二,注册和登录功能
- android 注册、登录实现
- android 注册、登录实现
- 实习日志(12):Android客户端向服务器端传值——登录实现(一)
- Android客户端向服务器端传值——登录实现(一)
- Android客户端向服务器端传值——登录实现(一)
- Android客户端向服务器端传值——登录实现(一)
- Java反射机制应用——动态代理
- QTableWidget列宽随心设置参考
- MySQL数据库连接池
- printf输出格式
- equals()重写规则
- Android Java Web实现登录注册(二)——服务器端
- HDU 5828 Rikka with Sequence(线段树+小优化)
- word-break-ii
- HDU 1257:最少拦截系统
- Log日志工具类
- 关于 RabbitMQ 中 consumer 侧的 ack 属性分析
- [HDU 5826] physics (简单物理题+简单积分)
- 程序编译和链接原理理解
- Java IO底层原理