--> Servelet: 用于接收请求(客户端,浏览器),做出响应的,服务器端的,java类
--> ServletLogin -- Web项目服务器响应的Java实现
packagecom.dragon.java.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.io.UnsupportedEncodingException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/*** Servlet implementation class ServletLogin*/@WebServlet("/ServletLogin")public class ServletLogin extendsHttpServlet {private static final long serialVersionUID = 1L;protected voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, 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 voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
request.setCharacterEncoding("utf-8"); //只解决post 请求乱码问题
doGet(request, response);
}public String parse(String msg) throwsUnsupportedEncodingException {return new String(msg.getBytes("iso8859-1"), "utf-8");
}
}
1、doGet 方法:
--> HttpURLConnectionUtil 工具类
packagecom.dragon.java.urlbyget;importjava.io.IOException;importjava.io.InputStream;importjava.net.HttpURLConnection;importjava.net.URL;public classHttpURLConnectionUtil {public staticInputStream getInputStreamByGet(String url) {try{
HttpURLConnection conn= (HttpURLConnection) newURL(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();returninputStream;
}
}catch(IOException e) {
e.printStackTrace();
}return null;
}
}
--> Test 测试类
packagecom.dragon.java.urlbyget;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;public classTest {public static voidmain(String[] args) {
InputStream inputStreamByGet=HttpURLConnectionUtil
.getInputStreamByGet("http://www.baidu.com");try{
BufferedReader br= new BufferedReader(newInputStreamReader(
inputStreamByGet,"gb2312"));
String line= "";while ((line = br.readLine()) != null) {
System.out.println(line);
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
----------------------------------邪恶的分割线------------------------------------
2、doPost 方法
--> HttpURLConnectionUtil 工具类
packagecom.dragon.java.urlbypost;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.HttpURLConnection;importjava.net.URL;public classHttpURLConnectionUtil {private staticString charset;public staticInputStream getInputStreamByPost(String url, String parms) {try{
HttpURLConnection conn= (HttpURLConnection) newURL(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();returninputStream;
}
}catch(IOException e) {
e.printStackTrace();
}return null;
}public staticString getCharset() {returncharset;
}
}
--> InputStreamUtil 流到String的转换类
packagecom.dragon.java.urlbypost;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;public classInputStreamUtil {public staticString inputStreamToString(InputStream is, String charset) {
StringBuffer sb= newStringBuffer();try (BufferedReader br = new BufferedReader(newInputStreamReader(is,
charset));) {char[] buffer = new char[1024];int len = -1;while ((len = br.read(buffer)) != -1) {
sb.append(buffer,0, len);
}returnsb.toString();
}catch(IOException e) {
e.printStackTrace();
}return null;
}
}
--> Test 测试类
packagecom.dragon.java.urlbypost;importjava.io.InputStream;public classTest {public static voidmain(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项目导入到服务器并运行...