Java-->服务器的响应(Servlet--doGet&doPost)
--> Servelet: 用于接收请求(客户端,浏览器),做出响应的,服务器端的,java类
--> ServletLogin -- Web项目服务器响应的Java实现
package com.dragon.java.servlet; import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**
* Servlet implementation class ServletLogin
*/
@WebServlet("/ServletLogin")
public class ServletLogin extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String user = parse(request.getParameter("user"));
String pwd = parse(request.getParameter("pwd"));
System.out.println(user + ":" + pwd); response.setContentType("text/html;charset=utf-8");
PrintWriter writer = response.getWriter();
writer.println(user + "登陆成功!");
// 服务器会自动关流
} protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); // 只解决post 请求乱码问题
doGet(request, response);
} public String parse(String msg) throws UnsupportedEncodingException {
return new String(msg.getBytes("iso8859-1"), "utf-8");
}
}
1、doGet 方法:
--> HttpURLConnectionUtil 工具类
package com.dragon.java.urlbyget; import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL; public class HttpURLConnectionUtil {
public static InputStream getInputStreamByGet(String url) {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url)
.openConnection();
conn.setRequestMethod("GET");
conn.setReadTimeout(10000);
conn.setConnectTimeout(10000);
// 用这个方法可以设置http的请求头
// conn.addRequestProperty("Accept", "......"); if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
// 获取编码
// String contentType = conn.getContentType();
// String string = contentType.split("=")[1]; InputStream inputStream = conn.getInputStream();
return inputStream;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
--> Test 测试类
package com.dragon.java.urlbyget; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; public class Test {
public static void main(String[] args) {
InputStream inputStreamByGet = HttpURLConnectionUtil
.getInputStreamByGet("http://www.baidu.com");
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
inputStreamByGet, "gb2312"));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
----------------------------------邪恶的分割线------------------------------------
2、doPost 方法
--> HttpURLConnectionUtil 工具类
package com.dragon.java.urlbypost; import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL; public class HttpURLConnectionUtil {
private static String charset; public static InputStream getInputStreamByPost(String url, String parms) {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(url)
.openConnection();
conn.setReadTimeout(5000);
conn.setConnectTimeout(5000);
conn.setRequestMethod("POST"); conn.setDoOutput(true);
OutputStream outputStream = conn.getOutputStream();
outputStream.write(parms.getBytes());
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
String contentType = conn.getContentType();
charset = contentType.split("=")[1]; InputStream inputStream = conn.getInputStream();
return inputStream;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
} public static String getCharset() {
return charset;
}
}
--> InputStreamUtil 流到String的转换类
package com.dragon.java.urlbypost; import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader; public class InputStreamUtil { public static String inputStreamToString(InputStream is, String charset) {
StringBuffer sb = new StringBuffer();
try (BufferedReader br = new BufferedReader(new InputStreamReader(is,
charset));) {
char[] buffer = new char[1024];
int len = -1;
while ((len = br.read(buffer)) != -1) {
sb.append(buffer, 0, len);
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
--> Test 测试类
package com.dragon.java.urlbypost;
import java.io.InputStream;
public class Test {
public static void main(String args[]) {
// 需要对URL中的中文参数进行编码。
String user = URLEncoder.encode("张三", "utf-8");
String pwd = URLEncoder.encode("你好", "utf-8");
InputStream inputStreamByPost = HttpURLConnectionUtil
.getInputStreamByPost(
"http://192.168.2.11:8080/08-23/ServletLogin", "user="
+ user + "&pwd=" + pwd);
System.out.println(InputStreamUtil.inputStreamToString(
inputStreamByPost, HttpURLConnectionUtil.getCharset()));
}
}
---> 注意先将Web项目导入到服务器并运行...
Java-->服务器的响应(Servlet--doGet&doPost)的更多相关文章
- Servlet -doGet() doPost()原理
一.自定义类只需要重写doGet(HttpServletRequest request, HttpServletResponse response) 和doPost(HttpServletReques ...
- 关于HttpServlet和Servlet以及doPost和doGet关系
这两天在看Servlet和Jsp,spring太难了,还是先看看基础,只怪自己太弱了. Servlet是一个接口,本身定义的是一种网络服务,HttpServlet是已经实现了Servlet接口,也就是 ...
- [转]servlet中的service, doGet, doPost方法的区别和联系
原文地址:http://m.blog.csdn.net/blog/ghyg525/22928567 大家都知道在javax.servlet.Servlet接口中只有init, service, des ...
- servlet 中 service ,doGet , doPost 关系
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...
- Java中Filter、Servlet、Listener的学习
1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个reques ...
- 转 Java中Filter、Servlet、Listener的学习
1.Filter的功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个requ ...
- 第71节:Java中HTTP和Servlet
第71节:Java中HTTP和Servlet 前言 哭着也要看完!!!字数: 学习xml和TomCat 会写xml,看懂xml 解析对象 SAXReader reader = new SAXReade ...
- java web学习笔记-Servlet篇
Servlet基础 1.Servlet概述 JSP的前身就是Servlet.Servlet就是在服务器端运行的一段小程序.一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问 ...
- Java WEB中的servlet
1.什么是servlet 2.servlet实现的过程 3.servlet的生命周期 4.servlet实现类及实现方法 什么是servlet Servlet 是在服务器上运行的小程序.这个词是在 J ...
- Java Web 学习(1) —— Servlet
Java Web 学习(1) —— Servlet 一. 什么是 Servlet Java Servlet 技术是Java体系中用于开发 Web 应用的底层技术. Servlet 是运行在 Servl ...
随机推荐
- CSS3的chapter1
初学CSS3的第一天,虽然之前有接触过CSS,不过好像是CSS2,我也上网了解了一下CSS3,新增了很多强大的元素,也让我更有兴趣去学习了. CSS(Cascading Style Sheets) 层 ...
- java 导出Excel 大数据量,自己经验总结!(二)
在上一次的基础上加上了样式,以及中文列名 package com.tommy.fundation.util; import java.io.OutputStream; import java.util ...
- zabbix脚本报警
zabbix问端设置: 1,设置报警类型 2.设置用户及媒体类型 send_to 就是zabbix输出的$1,脚本中药发给谁 3.设置触发器和动作 触发器 test.temp_conn (自己写一个简 ...
- 关于php语言的使用! ------php语言与JavaScript的使用 方法是相似
<script type="text/javascript"> </script>--js与PHP同是一种弱类型语言 弱类型语言只是不显示表现 定义变量时 ...
- static代码块与{}代码块的比较
第一个例子: public class StaticDemo { { System.out.println("{} 代码块"); } static{ System.out.prin ...
- python语言技巧
一 在写之前 最好指定python的路径: #!/usr/bin/python python 在linux中需要添加编码方式:以免出现中文乱码 # -*- coding: UTF-8 –*- 二 ...
- windows docker测试
最近测试环节要求比较多,笔记本上虚拟机越来越多,试验一下docker,随笔如下. 一.安装docker 主机windows 10 专业版 网上在windows10上安装docker有两种方法 一个是使 ...
- Client默认用户及登录密码(转)
Client默认用户及登录密码 SAP系统(如ERP.CRM等)安装完成,初始化状态下有若干个客户端(Client).如果是生产系统,一般只有000.001.066等三个Client:如果是IDES系 ...
- Appium移动自动化测试(一)--安装Appium
Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿.现在终于有了. 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰. ...
- java中的包以及内部类的介绍
1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返 ...