servlet转发post请求给另一个servlet接受返回值处理完在传给·另一个jsp页面···

super200000 2014-10-24 01:19:37
感觉崩溃
模仿别人写的··改改··好像有点问题···
大体上功能是post请求给servlet,我转发给另一个servlet·· 解析返回值,取其中一部分,然后传给另一个jsp页面,输出
ShuJuservice.java
public class ShuJuServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
String respMessage = ShuJuService.processRequest(req);
req.setAttribute("result",respMessage);
req.getRequestDispatcher("2.jsp").forward(req, resp);
}
}

ShuJuservier,java
public class ShuJuService {

public static String processRequest(HttpServletRequest req) throws IOException{

ServletInputStream sis = req.getInputStream();
final int BUFFER_SIZE = 8 * 1024;
byte[] buffer = new byte[BUFFER_SIZE];

int length = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();

int bLen=0;
while((bLen=sis.read(buffer))>0){
baos.write(buffer, 0, bLen);
}
String bao = baos.toString();
String json = formUpload("http://121.42.43.44:80/bar/serv/pushAttachment",bao);
ShuJuResult ShuJuResult = new Gson().fromJson(
json, ShuJuResult.class);
String result = ShuJuResult.getResult();
String resultUrl ="http://121.42.43.44:80/bar/sample/preview?aid={aid}";
resultUrl = resultUrl.replace("{aid}", result);
return resultUrl;
}

public static String formUpload(String urlStr,String req) {
String res = "";
HttpURLConnection conn = null;
String BOUNDARY = "---------------------------123821742118716"; //boundary就是request头和上传文件内容的分隔符
try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(30000);
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod("POST");
conn.setRequestProperty("Connection", "Keep-Alive");
conn
.setRequestProperty("User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
conn.setRequestProperty("Content-Type",
"multipart/form-data; boundary=" + BOUNDARY);
OutputStream out = new DataOutputStream(conn.getOutputStream());
// text
out.write(req.toString().getBytes());

out.flush();
out.close();

// 读取返回数据
StringBuffer strBuf = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
// BufferedReader reader =new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
String line = null;
while ((line = reader.readLine()) != null) {
strBuf.append(line).append("\n");
}
res = strBuf.toString();
reader.close();
reader = null;
} catch (Exception e) {
System.out.println("发送POST请求出错。" + urlStr);
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
conn = null;
}
}
return res;
}
}
...全文
2305 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
super200000 2014-10-24
  • 打赏
  • 举报
回复
好吧··完整的代码··· ShuJuService.java package org.wangzizhao.course.service; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.text.SimpleDateFormat; import java.util.Iterator; import java.util.Map; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; import com.google.gson.Gson; public class ShuJuService { public static String processRequest(HttpServletRequest req) throws IOException{ ServletInputStream sis = req.getInputStream(); final int BUFFER_SIZE = 8 * 1024; byte[] buffer = new byte[BUFFER_SIZE]; int length = 0; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int bLen=0; while((bLen=sis.read(buffer))>0){ baos.write(buffer, 0, bLen); } String bao = baos.toString(); String json = formUpload("http://121.42.43.44:80/bar/serv/pushAttachment",bao); ShuJuResult ShuJuResult = new Gson().fromJson( json, ShuJuResult.class); String result = ShuJuResult.getResult(); String resultUrl ="http://121.42.43.44:80/bar/sample/preview?aid={aid}"; resultUrl = resultUrl.replace("{aid}", result); return resultUrl; } public static String formUpload(String urlStr,String req) { String res = ""; HttpURLConnection conn = null; String BOUNDARY = "---------------------------123821742118716"; //boundary就是request头和上传文件内容的分隔符 try { URL url = new URL(urlStr); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5000); conn.setReadTimeout(30000); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn .setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)"); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY); OutputStream out = new DataOutputStream(conn.getOutputStream()); // text out.write(req.toString().getBytes()); out.flush(); out.close(); // 读取返回数据 StringBuffer strBuf = new StringBuffer(); BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream())); // BufferedReader reader =new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); String line = null; while ((line = reader.readLine()) != null) { strBuf.append(line).append("\n"); } res = strBuf.toString(); reader.close(); reader = null; } catch (Exception e) { System.out.println("发送POST请求出错。" + urlStr); e.printStackTrace(); } finally { if (conn != null) { conn.disconnect(); conn = null; } } return res; } } ShuJuServlet.java package org.wangzizhao.course.servlet; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.Iterator; import java.util.Map; import javax.activation.MimetypesFileTypeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.wangzizhao.course.service.ShuJuService; public class ShuJuServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub req.setCharacterEncoding("UTF-8"); resp.setCharacterEncoding("UTF-8"); String respMessage = ShuJuService.processRequest(req); req.setAttribute("result",respMessage); req.getRequestDispatcher("2.jsp").forward(req, resp); } } ShuJuResult.java package org.wangzizhao.course.service; public class ShuJuResult { String error; String result; public String getError() { return error; } public void setError(String error) { this.error = error; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } } 接受页面 <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <% String result = (String)request.getAttribute("result");%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 文件预览链接:<%=result%> <br> </body> </html> post请求页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <title>无标题文档</title> </head> <body > <form role="form" action="http://121.42.43.44:80/weixin/ShuJuServlet" method="post" enctype="multipart/form-data"> 文件上传:<input type="file" name="file" > deadline<input type="text" name ="deadline" value="2014-10-10 23:00:00"> <input type ="submit" value="上传" > </form> </body> </html>
super200000 2014-10-24
  • 打赏
  • 举报
回复
············哪块不完整······你是说没有最外面的头············
qzw1210 2014-10-24
  • 打赏
  • 举报
回复
代码不完整。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧