04.Http协议之GET请求与访问MySQL数据库

转载请标明出处:http://blog.csdn.net/u012637501

一、GET请求(2步)

1.修改实现客户端与服务器通信的LoginToSever.java文件

注释"public String doPost(String name,String psd)  "方法(POST请求方法实体),实现一个"public String doGet(String name,String psd)"(GET方法实体)。

...........

  1. /*doGet方法
  2. * 作用:实现客户端向服务器发送GET请求*/
  3. public String doGet(String name,String psd)
  4. {
  5. HttpClient httpClient = new DefaultHttpClient();                       //客户端实例
  6. String urlStr=url+"?username="+name+"&psd="+psd;            //给UIL装载请求数据
  7. HttpGet getRequest=new HttpGet(urlStr);                                 //实例化HttpGet,代表Get请求
  8. try {
  9. HttpResponse response = httpClient.execute(getRequest);//发送Get请求,并获取响应
  10. if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
  11. {
  12. HttpEntity entity=response.getEntity();                             //获取响应信息实体
  13. InputStream is= entity.getContent();                            //h.执行HttpEntity的getContent方法,获取对应的输入流
  14. BufferedReader br = new BufferedReader(new InputStreamReader(is));
  15. //i.读取输入流中的内容,并以字符串的形式返回
  16. String readLine = null;
  17. while((readLine = br.readLine()) != null )
  18. {
  19. result=result+readLine;
  20. }
  21. is.close();
  22. }
  23. else
  24. {
  25. result="error";
  26. }
  27. }
  28. catch (IOException e)
  29. {
  30. System.out.println(e.getMessage());
  31. }
  32. return result;
  33. }

.......................

2.LoginActivity.java:客户端界面UI,在子线程中调用LoginToServer的doGet方法

  1. 创建一个子线程
  2. new Thread(new Runnable(){
  3. public void run() {
  4. LoginToServer login = new LoginToServer();
  5. String result=login.doGet(userName.getText().toString(), password.getText().toString());
  6. //     String result=login.doPost(userName.getText().toString(), password.getText().toString());
  7. System.out.println(result); //调试:打印服务器返回的结果,测试是否通信成功
  8. Message msg=new Message();
  9. msg.obj=result; //将响应信息保存到obj中
  10. myHandler.sendMessage(msg);
  11. }
  12. }).start();

3.客户端与服务器通信测试

(1)启动Tomcat,打开MyEclipse中的Servlet应用;

(2)在Eclipse中启动客户端app,输入请求数据,测试客户端与服务器是否能通信;

另外,如果客户端与服务器通信成功,Tomcat窗口也会显示客户端传送过来的数据。

二、MySQL数据库使用

1.安装MySQL数据库

MySQL是一个小型关系型数据库管理系统,MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

下载地址:http://www.mysql.com/downloads/

安装教程:http://blog.sina.com.cn/s/blog_7cecec9501017cmk.html

2.创建服务器MySQL数据库

(1)CMD命令行启动:jiangdongguo>mysql -uroot -p

(2)创建服务器数据库

◆库名ServerDatabase:

mysql> create database ServerDatabase;

mysql> use ServerDatabase;

◆表名users:

mysql> drop table if exists users;

mysql> create table users(

-> user_id int primary key auto_increment,

-> user_name varchar(20) not null default ‘‘,

-> user_psd varchar(20) not null default 0  )charset utf8;

◆向users表中插入数据

mysql> insert into users(user_name,user_psd) values (‘jiang‘,‘111‘);

mysql> insert into users(user_name,user_psd) values (‘dong‘,‘222‘);

mysql> insert into users(user_name,user_psd) values (‘guo‘,‘333‘);

3.关联MySQL数据库到Java Web应用(Servlet项目)

(1)添加数据库jar包到Servlet项目

添加数据库相应的jar包,即连接数据库的驱动(mysql-connecttor-java-3.1.11-bin.java)到Java
Web应用(Servlet项目)下放在WebRoot\WEB-INF\lib文件夹下;

  

(2)添加一个数据库工具类DBUtil.java到Servlet项目中

◆加载驱动:Class.forName(“com.mysql.jdbc.Driver”);//加载驱动

◆获取数据库连接

String url = “jdbc:mysql://localhost:3306/数据库名";

conn = DriverManager.getConnection(url, “Mysql用户名”,”Mysql密码”);

◆捕获异常处理;

◆添加解析SQL语句,与数据库交互模块 (PrepareStatement、ResultSet)

MyEclipse......src\....\DBUtil.java

  1. package com.jiangdongguo.login;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.SQLException;
  5. import com.mysql.jdbc.PreparedStatement;
  6. import com.mysql.jdbc.ResultSet;
  7. /*访问数据库工具类:获取数据库链接*/
  8. public class DBUtil {
  9. private String dbName = "ServerDatabase";   //数据库名
  10. private String url="jdbc:mysql://localhost:3306/"+dbName;//url
  11. private String user="root";                 //MySQL数据库账户名
  12. private String psd="111111";                //账户密码
  13. private PreparedStatement ps;   //jdbc编程
  14. private ResultSet result;
  15. //获取数据库链接的方法getConn()
  16. private Connection conn;
  17. public Connection getConn()
  18. {
  19. try {
  20. Class.forName("com.mysql.jdbc.Driver");         //加载数据库驱动
  21. conn=DriverManager.getConnection(url,user,psd); //获取数据库链接,传入参数:数据库名称、账户名、密码
  22. catch (Exception e) {
  23. e.printStackTrace();
  24. }
  25. return conn;
  26. }
  27. //查询数据库业务逻辑
  28. public boolean checkUser(String sql,String[] args)
  29. {
  30. boolean flag=false;
  31. conn=getConn();     //获得数据库链接
  32. try {
  33. ps=(PreparedStatement) conn.prepareStatement(sql);
  34. if(args!=null)  //对sql语句每个占位符赋值
  35. {
  36. for(int i=0;i<args.length;i++)
  37. ps.setString(i+1, args[i]);
  38. result=(ResultSet) ps.executeQuery();
  39. if(result.next())
  40. {
  41. flag=true;
  42. }
  43. }
  44. catch (SQLException e) {
  45. e.printStackTrace();
  46. }
  47. return flag;
  48. }
  49. }

(3)编写相应的增删查改的SQL语句,执行操作获取结果

MyEclipse......src\....\LoginServlet.java

  1. package com.jiangdongguo.login;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class LoginServlet extends HttpServlet {
  9. public void doGet(HttpServletRequest request, HttpServletResponse response)
  10. throws ServletException, IOException {
  11. response.setContentType("text/html");           //设置返回类型为网页形式
  12. PrintWriter out = response.getWriter();         //输出
  13. String name = request.getParameter("username"); //获取请求传入的参数-用户名信息
  14. String psd = request.getParameter("psd");       //              -密码
  15. System.out.println("username="+name+"psd="+psd);
  16. //使用MySql数据库
  17. DBUtil dbUtil = new DBUtil();
  18. boolean result=dbUtil.checkUser("select * from users where user_name=? and user_psd=?", new String[]{name,psd});
  19. out.print(result);
  20. //      if("j".equals(name)&&"1".equals(psd))   //与服务器数据做对比,并返回响应信息
  21. //      {
  22. //          out.print(true);
  23. //      }
  24. //      else
  25. //      {
  26. //          out.print(false);
  27. //      }
  28. }
  29. public void doPost(HttpServletRequest request, HttpServletResponse response)
  30. throws ServletException, IOException {
  31. this.doGet(request, response);
  32. }
  33. }

4.测试

(1)使用Tomcat测试Java web应用

在浏览器输入"http://localhost:8080/login/LoginServlet?username=jiang&psd=111",web网页打印"true/false"信息,也可以查看Tomcat窗口,显示"username=jiang,psd=111",则说明Java
Web连接MySql数据库成功。

(2)客户端测试Java web应用

客户端传输数据分别为"username=jiang psd=111"、"username=dong psd=222"、"username=guo psd=333",若返回true则表示客户端访问服务器的MySql数据库成功,Tomcat窗口也会接收到客户端传输到服务器的数据。

时间: 2024-11-05 12:09:42

04.Http协议之GET请求与访问MySQL数据库的相关文章

[JavaWeb基础] 003.JAVA访问Mysql数据库

上面两篇讲解了简单的JSP + Servlet的搭建和请求,那么后面我们肯定要用到数据交互,也就是操纵数据库的数据,包括对数字的增加,删除,修改,查询.我们就用简单的MySql来做例子 我们需要引入驱动包mysql-connector-java.jar,自行去网上下载,有很多. 下面我跟着代码看看怎么进行增删改查 1.打开数据库 // 驱动程序名 private String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutc

mysql的安装、C++访问mysql数据库、编码设置问题

一.mysql的安装,这个相对简单,直接去官网下载mysql安装程序,就可以完成安装过程,网上有很多安装教程,这个没什么注意事项. 二.C++访问mysql,主要是用到mysql定义的头文件,内部定义了各种数据结构和函数,比如MYSQL,MYSQL_RES,MYSQL_ROW,mysql_real_connect等等一系列的结构和函数.这里要注意的就是将头文件及lib文件以及dll文件配置到当前开发环境来进行访问mysql数据库. 以最新的vs2013作为示例说一下配置过程.为了写的清晰点,在网

PHP访问MySQL数据库

第9章 PHP访问MySQL数据库 1.  PHP访问MySQL数据库服务器的流程 之前学习mysql的时候,采用的是"客户机/服务器"的体系结构 mysql>select * from a;    -------->MySQL数据库服务器 < --------- PHP访问MySQL数据库的时候,我们的PHP则充当了客户机的角色 PHP充当了客户机的角色----------->MySQL数据库服务器 <----------- 接下来我们可以通过phpin

Serverless 解惑——函数计算如何访问 MySQL 数据库

函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询.性能监控和报警等功能.借助函数计算,您可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费.访问 MySQL 数据库是指在函数计算中通过编写代码调用数据库驱动库通过 TCP 协议实现对数据库进行的插入.查询等操作.通常函数计算中运行的不同函数实例之间是不共享状态的,对

关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作

PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","","0710_test"); //写SQL语句$sql = "select * from student";//检测连接数据库是否成功,失败返回"连接失败",并退出程序 if(mysqli_connect_error()){    die("连

Python访问MySQL数据库

#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认127.0.0.1 'user':'root', 'password':'root', 'port':3306 ,#默认即为3306 'database':'test', 'charset':'utf8'#默认即为utf8 } if __name__=="__main__": print(c

c#访问mysql数据库

1.需求 使用c#访问mysql数据库,实现curd 2.安装和类库引用 http://www.tuicool.com/articles/rAbuee 包的下载地址在百度云盘上,也可以通过官方下载 3.数据库操作 读取 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using

java文件来演示如何访问MySQL数据库

java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE TABLE STUDENT ( SNO CHAR(7) NOT NULL, SNAME VARCHAR(8) NOT NULL, SEX CHAR(2) NOT NULL, BDATE DATE NOT NULL, HEIGHT DEC(5,2) DEFAULT 000.00, PRIMARY KE

C#访问MySQL数据库(winform+EF)

原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winform 访问MYSQL,当然使用winfrom,还是wfp,以及其他的技术这里不讨论,个人觉得这个比较上手快. http://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html 1.安装MYSQl数据库,这里略过,可以参考此文档进行安装.