android Web服务器 mysql数据库

1Socket访问web资源

   加权限、写异常  流的读写

2、怎么建一个Servlet

   web.xml

   jsp页面更改不需要重新发布

   java bean更改需要重新发布

3Servletdoget dopost

   区分两种访问方式

   获得参数

   向客户端输入信息

               工程名      服务器端对应的uri  本地客户端向服务器发送的内容

http://localhost:8080/FristWebP/myServlet?name=aa&pwd=123        

服务器端:

package com.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

publicclass MyServlet extends HttpServlet {

    //销毁

    publicvoid destroy() {

       super.destroy(); // Justputs "destroy" string in log

       // Put your code here

    }

    //request 表示客户端的请求

    //response 表示服务端的响应

    publicvoid doGet(HttpServletRequest request, HttpServletResponseresponse)

           throws ServletException, IOException {

//     doPost(request, response);

       response.setContentType("text/html");

       //获得从客户端传过来的参数

       String name = request.getParameter("name");

       String pwd = request.getParameter("pwd");

       //从服务器端获得字符流

       PrintWriter out = response.getWriter();

       out.println("HelloWorld");

       out.println(name+"    "+pwd);

       out.flush();

       out.close();

    }

 

    publicvoid doPost(HttpServletRequest request, HttpServletResponseresponse)

           throws ServletException, IOException {

//     doGet(request, response);

              response.setContentType("text/html");

       String name = request.getParameter("name");

       String pwd = request.getParameter("pwd");

       //从服务器端获得字符流

       PrintWriter out = response.getWriter();

       out.println("WorldHello");

       out.println(name+"    "+pwd);

       out.flush();

       out.close();

    }

 

    //初始化方法

    publicvoid init() throws ServletException {

       System.out.println("init()");

    }

 

}

客户端:

package com.example.androidwebjsp;

importjava.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

import java.io.PrintWriter;

import java.net.Socket;

 

importandroid.app.Activity;

import android.os.Bundle;

importandroid.os.StrictMode;

import android.util.Log;

 classMainActivity extends Activity implementsRunnable{

    @Override

    protectedvoidonCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        String strVer = android.os.Build.VERSION.RELEASE;

        System.out.println(strVer);

        strVer = strVer.substring(0, 3).trim();

        float fv= Float.valueOf(strVer);

        if(fv > 2.3) {

          StrictMode.setThreadPolicy(newStrictMode.ThreadPolicy.Builder()

             .detectDiskReads().detectDiskWrites().detectNetwork()  // 这里可以替换为 detectAll()                                       // 就包括了磁盘读写和网络I/O

              .penaltyLog() //打印logcat,当然也可以定位到dropbox,通过文件保存相应的 log

              .build());

          StrictMode.setVmPolicy(newStrictMode.VmPolicy.Builder()

            .detectLeakedSqlLiteObjects() //探测 SQLite数据库操作

            .penaltyLog() // 打印 logcat

            .penaltyDeath().build());

        }

        newThread(this).start();

    }

 

    @Override

    publicvoidrun() {

        try {

            Log.i("content", "content1");

            Sockets = new Socket("192.168.1.114",8080);//服务器端地址 、 端口号

            Stringstr = "POST /FristWebP/myServlet HTTP/1.1\n";//对应的服务器端

            str+="Content-Length: 20\n"; //字符串长度

            str+="Content-Type:application/x-www-form-urlencoded\n";

            str+= "Host: 192.168.1.114:8080\n\n";

            str+="name=fffs&pwd=123255";

            OutputStreamout = s.getOutputStream();

            PrintWriterps = new PrintWriter(out);

            ps.println(str);//向服务器端发送name=fffs&pwd=123255

            ps.flush();

            Log.i("content", "content");

           

            InputStreamin = s.getInputStream();//利用Socket对象接收服务器端发送的内容

            BufferedReaderbr = new BufferedReader(newInputStreamReader(in));

            Stringcontent = null;

            while((content= br.readLine()) != null){

                Log.i("content",content);

            }

        }catch (IOException e) {

            //TODO Auto-generated catch block

            e.printStackTrace();

        }  

    }

}

Request 客户端请求

Response 服务器响应

Socket 访问Web资源

注意:加权限写异常

怎么建一个Servlet

Web.xml

 

连接数据库:

1、建一个javaandroid项目

2、在类中注册驱动:

Class.forName (“com.mysql.jdbc.Driver”);

导包:1newàfolderàlib

      2、将mysql包复制到lib

3、获得连接

                                //表名/表的内容

String uri = “jdbc:mysql:/localhost:8088/my?name=aa&pwd=123”;

Connection con =DriverManager.getConnection(uri,”root”,”123456”);

package com.sql;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

publicclass Conn{

    publicstaticvoid main(String[] args) {

       //注册驱动

       try {

           Class.forName("com.mysql.jdbc.Driver");

           } catch(ClassNotFoundException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

       Connection conn = null;

       try {

           //获得连接

           String url = "jdbc:mysql://localhost/my?useUnicode=true&characterEncoding=utf-8";

           conn =  DriverManager.getConnection(url, "root", "123456");

           //创建执行SQL的语句(Statement)

           Statement statement =conn.createStatement();

           //处理执行结果(ResultSet)

//         ResultSet result =statement.executeQuery("select * from tom");

//         while(result.next()){

//            System.out.println(result.getInt("id"));

//            System.out.println(result.getString("name"));

//         }

          

           boolean result =statement.execute("insert intotom(name) values('ddd')");

           System.out.println(result);

       } catch(SQLException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }finally{

           //释放资源

           try {

              conn.close();

           }catch (SQLException e) {

              // TODO Auto-generated catch block

              e.printStackTrace();

           }

       }

      

    }

}

有关properties的操作:

packagecom.sql;

 

importjava.io.IOException;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.SQLException;

importjava.util.Properties;

 

publicclass DBUtil {

       public DBUtil(){

             

       }

       public void closeConn(Connection conn){

              try {

                     conn.close();

              } catch (SQLException e) {

                     // TODO Auto-generatedcatch block

                     e.printStackTrace();

              }

       }

       public Connection getConnection() throwsSQLException{

              Properties prop = newProperties();

              String driver = null;

              String url = null;

              String username = null;

              String password  = null;

              try {

                     prop.load(this.getClass().getClassLoader().getResourceAsStream("com/sql/DBConfig.properties"));

              } catch (IOException e) {

                     // TODO Auto-generatedcatch block

                     e.printStackTrace();

              }

              driver =prop.getProperty("driver");

              url =prop.getProperty("url");

              username =prop.getProperty("username");

              password = prop.getProperty("password");

              System.out.println(driver+"   "+url);

             

                     try {

                            Class.forName(driver);

                     } catch(ClassNotFoundException e) {

                            // TODOAuto-generated catch block

                            e.printStackTrace();

                     }

                    

              return DriverManager.getConnection(url,username, password);

             

       }

}

 

packagecom.sql;

 

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

 

 

publicclass SqlConn {

       public static void main(String[] args) {

              DBUtil db = new DBUtil();

              Connection conn  = null;

              try {

                     conn = db.getConnection();

                     Statement dy =conn.createStatement();//创建执行sql的语句  该对象可以对数据库进行操作

                     ResultSet r =dy.executeQuery("select * from tom");

                     while(r.next()){

                            System.out.println(r.getInt("id"));

                            System.out.println(r.getString("name"));

                     }

              } catch (SQLException e) {

                     // TODO Auto-generatedcatch block

                     e.printStackTrace();

              }

              db.closeConn(conn);

       }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值