1.乘法表.
代码实现过程
[1]搭建UI
[2]servlet代码
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取客户端提交的数据
String name = request.getParameter("name");
int number = Integer.parseInt(name);
//2.根据name给客户端返回一个乘法表 通过response对象给客户端一个响应
for (int i = 1; i <= number ; i++) {
for (int j = 1; j <=i ; j++) {
response.getWriter().write(i+"*"+j+"="+i*j +""); //1*1=1
}
response.getWriter().println();
}
}
2.文件上传案例
朋友圈 ,邮箱上传附件.百度云盘 360云盘.
代码实现过程:
客户端要求:
[1]要求form表单必须有一个文件上传项
[2]请求的方式必须为post 因为get提交数据有大小的限制
[3]必须加上一个enctype =
multipart/form-data 否则请求体里面没有内容
服务器逻辑:
@MultipartConfig
@WebServlet("/fileUploadDemo")
public class FileUPloadDemo extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//1.获取客户端上传的文件内容 根据name属性获取
Part part = request.getPart("file"); //part对象里面封装了我们要上传的文件内容
//2.把上传的内容 写到服务器目录下的一个文件里 首先获取fileupload真实路径
String realPath = getServletContext().getRealPath("fileUpload");
System.out.println("上传的路径:"+realPath);
//3.获取客户端上传文件名 根据part对象获取头信息
String header = part.getHeader("Content-Disposition");
String[] split = header.split(";");
String[] split2 = split[2].split("=");
String fileName = split2[1].substring(1, split2[1].length()-1);
//4.把part里面的内容写到服务器 的路径上
part.write(realPath+"/"+fileName);
}
3.登录案例
代码实现过程
[1]搭建服务器程序 服务器我们使用servlet模拟
[2]搭建android客户端
public void click1(View view) {
new Thread(){
@Override
public void run() {
try {
//1.获取用户名和密码
String name = et_name.getText().toString().trim();
String pwd = et_pwd.getText().toString().trim();
//1.1 定义要访问服务器路径 这个路径一定是我们服务器自己的路径
String path = "http://192.168.126.62:8080/Login/LongServlet?name="+name+"&pwd="+pwd+"";
//2.把name 和pwd提交到服务器
URL url = new URL(path);
//3.获取httpurlconnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//4.对coon进行配置
conn.setConnectTimeout(5000); //设置连接 超时时间
conn.setRequestMethod("GET"); //设置请求方式
//5.获取服务器返回的状态码
int code = conn.getResponseCode();
if (code == 200){
//6获取服务器返回的数据
InputStream is = conn.getInputStream(); //服务器返回的数据是什么?
//7把流里面的数据读取出来 .
String content = StreamUtils.readStream(is);
//8.更新UI
showToast(content);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
[3]通过post方式提交数据
post是以请求体的形式提交数据
//点击按钮以post形式提交
public void click2(View view) {
new Thread(){
@Override
public void run() {
try {
//1.获取用户名和密码
String name = et_name.getText().toString().trim();
String pwd = et_pwd.getText().toString().trim();
//1.0 定义请求体 格式通过抓包抓出来
String data = "name="+name+"&pwd="+pwd+"";
//1.1 定义要访问服务器路径 这个路径一定是我们服务器自己的路径 ☆☆☆路径不一样
String path = "http://192.168.126.62:8080/Login/LongServlet";
//2.把name 和pwd提交到服务器
URL url = new URL(path);
//3.获取httpurlconnection对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//4.对coon进行配置
conn.setConnectTimeout(5000); //设置连接 超时时间
conn.setRequestMethod("POST"); //设置请求方式 ☆☆☆请求的方式不一样
//4.1 数据是以请求体的形式提交 所以要先封装请求体(已经封装好 ) 把请求体的内容写给服务器
conn.setDoOutput(true); //允许conn对象向服务器写数据 ☆☆☆设置dooutput方法
conn.getOutputStream().write(data.getBytes()); //☆☆☆通过字节流把数据写给服务器
//5.获取服务器返回的状态码
int code = conn.getResponseCode();
if (code == 200){
//6获取服务器返回的数据
InputStream is = conn.getInputStream(); //服务器返回的数据是什么?
//7把流里面的数据读取出来 .
String content = StreamUtils.readStream(is);
//8.更新UI
showToast(content);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
4.httpclient实现get和post提交
代码实现过程
1.到包
compile
'com.loopj.android:android-async-http:1.4.9' 把这个包导入到build.gradle里
2.httlclient实现get提交数据
public void click1(View view) {
new Thread(){
@Override
public void run() {
try {
//1.获取用户名和密码
String name = et_name.getText().toString().trim();
String pwd = et_pwd.getText().toString().trim();
//1.1 定义要访问服务器路径 这个路径一定是我们服务器自己的路径
String path = "http://192.168.126.62:8080/Login/LongServlet?name="+name+"&pwd="+pwd+"";
//1.2 使用httpclient方式实现数据提交 //base simple ... defaule...
HttpClient client = new DefaultHttpClient();
//1.3 创建get对象 用来实现get请求
HttpGet get = new HttpGet(path);
//1.4 实现向服务器发送请求(get post)
HttpResponse response = client.execute(get);
//1.5 获取响应码 响应码 是在哪里:在响应行里
int code = response.getStatusLine().getStatusCode();
if (code == 200){
//1.6 获取服务器返回的数据
InputStream is = response.getEntity().getContent();
//1.7 把流转换为String
String content = StreamUtils.readStream(is);
showToast(content);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
3.使用httpclient实现post提交
public void click2(View view) {
new Thread(){
@Override
public void run() {
try {
//1.获取用户名和密码
String name = et_name.getText().toString().trim();
String pwd = et_pwd.getText().toString().trim();
//2.定义请求路径
String path = "http://192.168.126.62:8080/Login/LongServlet";
//3.创建httpclient实例
HttpClient client = new DefaultHttpClient();
//4.1创建一个httppost请求
HttpPost post = new HttpPost(path);
//4.2 创建parameters用来封装请求体的内容
List<NameValuePair> parameters = new ArrayList<>();
//4.3参数1 也和你服务器 request.getparameter参数对应
BasicNameValuePair nameValuePair = new BasicNameValuePair("name",name);
BasicNameValuePair pwdValuePair = new BasicNameValuePair("pwd",pwd);
//4.4把nameValuePair 和 pwdValuePair 加入到集合
parameters.add(nameValuePair);
parameters.add(pwdValuePair);
//4.5构造UrlEncodedFormEntity
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters);
//4.6 封装请求体
post.setEntity(entity);
HttpResponse response = client.execute(post);
//5.获取服务器返回状态码
int code = response.getStatusLine().getStatusCode();
if (code == 200){
//6 获取服务器返回的数据
InputStream is = response.getEntity().getContent();
// 把流转换为String
String content = StreamUtils.readStream(is);
showToast(content);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
5.asynchttpclient
get:提交代码
AsyncHttpClient client = new AsyncHttpClient();
//3.执行get请求
client.get(path, new AsyncHttpResponseHandler() {
//请求成功 // 登录成功
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
Toast.makeText(MainActivity3.this, new String(responseBody), Toast.LENGTH_SHORT).show();
}
//请求失败
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
post:提交代码实现