STRUTS에서 리퀘스트를 통해 HttpURLconnection에서 쓴 흐름 대상을 가져오는 방법
1. sendPost 방법으로 로컬에서 흐름을 가져와 해당하는 URL 링크에 쓰기:
(중점):
//흐름을 전달할 때 반드시 추가해야 하는 매개 변수, 그리고 ACTION에서 Request를 통과한다.getInputStream에서 흐름을 가져오는 경우 이 인자conn.setRequestProperty("content-type", "text/html")를 추가해야 합니다.//직접 전달 흐름 대상
//다음은 form 구성 요소의 형식을 통해 흐름 대상을 전달하고 구체적으로 인터넷으로 확인한다.
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+ java.util.UUID.randomUUID().toString());
public static void main(String[] args) throws UnsupportedEncodingException {
// String url = "http://61.154.14.46:8080/exter.shtml?serviceType=1011";
String url = "http://localhost:8080/webtest/servlet/URLTest?name=linlin";
// String url = "http://localhost:8081/exter.shtml?serviceType=1022&menuId=4481&mobile=15806092760&text_data=linlinlin&imgName=testa.jpg";
// getReturnData1(url);
sendPost(url,null);
}
/**
* HTTP POST url
* @param url
* @throws IOException
*/
public static void sendPost(String url,InputStream in) {
HttpURLConnection conn = null;
OutputStreamWriter osw = null;
try {
File file = new File("D:/test2.jpg");
if(!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
URL url1 = new URL(url);
conn = (HttpURLConnection)url1.openConnection();
conn.setReadTimeout(10000); //
conn.setDoInput(true);//
conn.setDoOutput(true);//
conn.setUseCaches(false); //
conn.setRequestMethod("POST");
conn.setRequestProperty("Charsert", "UTF-8");
//conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + java.util.UUID.randomUUID().toString());
// , , ACTION request.getInputStream
conn.setRequestProperty("content-type", "text/html");
OutputStream o = conn.getOutputStream();
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
int BUFFER_SIZE = 1024;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
try {
while ((size = bis.read(buf)) != -1)
o.write(buf, 0, size);
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
bis.close();
o.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK)
System.out.println( "connect failed!");
} catch (IOException e) {
e.printStackTrace();
}
finally
{
if (osw != null)
try {
osw.close() ;
} catch (IOException e1) {
e1.printStackTrace();
}
if (conn != null)
conn.disconnect() ;
}
}
2. 위와 같은 방법으로 흐름을 쓸 때 servlet이나 action에서 대응하는 흐름 정보를 얻을 수 있습니다. 코드는 다음과 같습니다.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
String s = request.getParameter("name");
System.out.println("s22 is " + s);
InputStream in = request.getInputStream();
if(in != null) {
System.out.println(" 。");
this.writeInputStreamToFile(in);
System.out.println("server time is " + new Date());
} else {
System.out.println(" 。");
}
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
private void writeInputStreamToFile(InputStream in) throws FileNotFoundException {
File file = new File("D:/test3.jpg");
if(!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
FileOutputStream fos = new FileOutputStream(file);
BufferedInputStream bis = new BufferedInputStream(in);
int BUFFER_SIZE = 1024;
byte[] buf = new byte[BUFFER_SIZE];
int size = 0;
try {
while ((size = bis.read(buf)) != -1)
fos.write(buf, 0, size);
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
bis.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java의 Struts2 파일 업로드 및 다운로드 예파일 업로드 Struts 응용 프로그램에서 File Upload 차단기와 Jakarta Commons File Upload 구성 요소로 파일을 업로드할 수 있습니다. Jsp 페이지의 파일 업로드 폼에 파일 탭을 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.