67,513
社区成员
发帖
与我相关
我的任务
分享
/**
* 发送Post请求(图片)
* @param u 求情地址
* @param map 参数
*/
public String postRequest(String u,Map<String, String> map){
try{
//请求超时
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 5000);
//读取超时
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 5000);
//创建HttpPost对象
HttpPost post = new HttpPost(u);
//如果传递的参数个数比较多,可以对传递的参数进行封装
List<NameValuePair> params = new ArrayList<NameValuePair>();
for(String key:map.keySet()){
//封装请求的参数
params.add(new BasicNameValuePair(key, map.get(key)));
}
MultipartEntity entity = new MultipartEntity();
for(int i = 0; i<params.size();i++) {
//if (params.get(i).getName().equals(Integer.toString(i))) {
FileBody fileBody = new FileBody(new File(params.get(i).getValue()));
entity.addPart(params.get(i).getName(), fileBody);
//}
}
post.setEntity(entity);
//发送Post请求
HttpResponse httpResponse = httpClient.execute(post);
String result ="";
//服务器返回响应
if(httpResponse.getStatusLine().getStatusCode() == 200){
//获取响应的字符串
result = EntityUtils.toString(httpResponse.getEntity(),"UTF-8");
}else{
result = "network_error";
}
return result;
}catch(Exception e){
return "network_error";
}
}
public class TestDome extends HttpServlet {
/**
* Constructor of the object.
*/
public TestDome() {
super();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("1");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) { System.out.println("2");
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {System.out.println("3");
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
//普通文本信息处理
String paramName = item.getFieldName();
String paramValue = item.getString();
System.out.println(paramName + ":" + paramValue);
} else {
//上传文件信息处理
String fileName = item.getName();
byte[] data = item.get();
String filePath = getServletContext().getRealPath("/upload") + "/" + fileName;
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(data);
fos.close();
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
response.getWriter().write("UPLOAD_SUCCESS");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>TestDome</servlet-name>
<servlet-class>com.image.servlet.TestDome</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestDome</servlet-name>
<url-pattern>/TestDome.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
public class UserAction extends ActionSupport implements ServletRequestAware,ServletResponseAware{
private static final long serialVersionUID = 1L;
private HttpServletResponse response;
private HttpServletRequest request;
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response=arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.request=arg0;
}
public void upload() throws IOException { System.out.println("0");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {//这里通不过 【?】
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator(); System.out.println("size:"+items.size());
while (iter.hasNext()) { System.out.println("2");
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
//普通文本信息处理
String paramName = item.getFieldName();
String paramValue = item.getString();
System.out.println(paramName + ":" + paramValue);
} else {
//上传文件信息处理
String fileName = item.getName();
byte[] data = item.get();
String filePath = ServletActionContext.getServletContext().getRealPath("/upload") + "/" + fileName;
FileOutputStream fos = new FileOutputStream(filePath);
fos.write(data);
fos.close();
}
}
HttpMsgUtil.sendMsg(response,"success");
} catch (Exception e) {
HttpMsgUtil.sendMsg(response,"error");
}
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Server</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<include file="struts-default.xml" />
<package name="default" namespace="/" extends="struts-default">
<action name="user_*" class="UserAction" method="{1}">
</action>
</package>
<!-- 指定struts中action交由spring创建 -->
<constant name="struts.objectFactory" value="spring"/>
<!-- 中文编码 -->
<constant name="struts.i18n.encoding" value="gbk"></constant>
<!-- 主题 -->
<constant name="struts.ui.theme" value="simple" />
<!-- 国际化 -->
<constant name="struts.custom.i18n.resources" value="/i18n/application" />
</struts>