Java-->服务器的响应(Servlet--doGet&doPost)
2016-08-23 13:56
441 查看
--> Servelet: 用于接收请求(客户端,浏览器),做出响应的,服务器端的,java类
--> ServletLogin -- Web项目服务器响应的Java实现
1、doGet 方法:
--> HttpURLConnectionUtil 工具类
--> Test 测试类
----------------------------------邪恶的分割线------------------------------------
2、doPost 方法
--> HttpURLConnectionUtil 工具类
--> InputStreamUtil 流到String的转换类
--> Test 测试类
// 需要对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);
---> 注意先将Web项目导入到服务器并运行...
--> 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分页代码的实现
- Java中资源关闭的处理方式
- Eclipse崩溃后无法启动的问题解决
- JAVA线程安全之synchronized关键字的正确用法
- java IO和NIO 的区别
- 重新开始学习javase_集合_List
- SpringMvc文件上传和下载
- springmvc json数据
- Java 基础
- JAVA中遇到 UTF-八 序列的字节 1 无效
- spring MVC之返回JSON数据(Spring3.0 MVC)
- Java mkdir() 导致的Bug
- Class对象和Java反射机制
- java base64加解密
- java反编译工具(JD-Eclipse) eclipse插件安装
- java HashTable
- JAVA 数据类型转换
- 华为OJ——计算日期到天数转换
- 支持Java的rest框架
- 使用Spring MVC的@ControllerAdvice注解做Json的异常处理