Java 如何使用JSP客户端通过JAX-WS将图像上载到mysql数据库?

Java 如何使用JSP客户端通过JAX-WS将图像上载到mysql数据库?,java,soap,file-upload,jax-ws,Java,Soap,File Upload,Jax Ws,我正在尝试使用GlassFish服务器中使用Java开发的SOAP web服务将图像上载到mysql数据库。JSP中的客户端正在使用此web服务。我找了很多,但找不到合适的答案 有人能帮我吗?提前谢谢 您必须创建客户端代码,以便使用JAX-WS或其他框架(如CXF、Axis或Spring WS)使用web服务。客户端代码将位于应用程序的控制器中。JSP将充当视图,将要发送到服务的数据发送到控制器,然后控制器将与web服务交互 以下是JSP和控制器的框架: 要上载的文件: 控制器代码(因为您

我正在尝试使用GlassFish服务器中使用Java开发的SOAP web服务将图像上载到mysql数据库。JSP中的客户端正在使用此web服务。我找了很多,但找不到合适的答案


有人能帮我吗?提前谢谢

您必须创建客户端代码,以便使用JAX-WS或其他框架(如CXF、Axis或Spring WS)使用web服务。客户端代码将位于应用程序的控制器中。JSP将充当视图,将要发送到服务的数据发送到控制器,然后控制器将与web服务交互

以下是JSP和控制器的框架:


要上载的文件:

控制器代码(因为您没有指定要使用的特定框架,所以我使用的是普通Servlet):


试图直接从JSP使用web服务是可以通过Scriptlet实现的,但是应该避免使用它,因此不建议使用这种方法,也不是我的答案的一部分。

这是我问题的完整答案。我不相信您会在.jsp页面上遇到问题,您只需要创建一个包含输入的表单即可。处理上载的代码如下所示:

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = "";
    String comment = "";

    if(ServletFileUpload.isMultipartContent(request)){
        try {

            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

            for(FileItem item : multiparts){
                if(!item.isFormField()){
                    name = new File(item.getName()).getName();
                    item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                } else {
                    if ("comment".equals(item.getFieldName())) {
                         comment = item.getString();
                     // Whatever you have to do with the comment
                    }
                }
            }
           addPhoto((int) request.getSession().getAttribute("id"), UPLOAD_DIRECTORY + File.separator + name , comment);
           request.setAttribute("message", "File Uploaded Successfully");
        } catch (Exception ex) {
           request.setAttribute("message", "File Upload Failed due to " + ex);
        }          
    }else{
        request.setAttribute("message","Sorry this Servlet only handles file upload request");
    }
    request.getRequestDispatcher("/index.jsp").forward(request, response);
}
@覆盖
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
字符串名称=”;
字符串注释=”;
if(ServletFileUpload.isMultipartContent(请求)){
试一试{
List multiparts=new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
用于(文件项:多部分){
如果(!item.isFormField()){
name=新文件(item.getName()).getName();
item.write(新文件(UPLOAD_DIRECTORY+File.separator+name));
}否则{
if(“comment.equals(item.getFieldName())){
comment=item.getString();
//不管你对这个评论有什么看法
}
}
}
addPhoto((int)request.getSession().getAttribute(“id”),UPLOAD_目录+File.separator+名称,注释);
request.setAttribute(“消息”,“文件上传成功”);
}捕获(例外情况除外){
request.setAttribute(“消息”,“文件上载因“+ex”而失败);
}          
}否则{
setAttribute(“message”,“对不起,这个Servlet只处理文件上传请求”);
}
request.getRequestDispatcher(“/index.jsp”).forward(请求,响应);
}

JSP也是一种基于服务器的技术。那么您有两个系统通过soap进行通信,那么为什么使用JSP呢?谢谢!别在意那些悲观的选民,他们假装是专家。
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = "";
    String comment = "";

    if(ServletFileUpload.isMultipartContent(request)){
        try {

            List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

            for(FileItem item : multiparts){
                if(!item.isFormField()){
                    name = new File(item.getName()).getName();
                    item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                } else {
                    if ("comment".equals(item.getFieldName())) {
                         comment = item.getString();
                     // Whatever you have to do with the comment
                    }
                }
            }
           addPhoto((int) request.getSession().getAttribute("id"), UPLOAD_DIRECTORY + File.separator + name , comment);
           request.setAttribute("message", "File Uploaded Successfully");
        } catch (Exception ex) {
           request.setAttribute("message", "File Upload Failed due to " + ex);
        }          
    }else{
        request.setAttribute("message","Sorry this Servlet only handles file upload request");
    }
    request.getRequestDispatcher("/index.jsp").forward(request, response);
}