首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从servlet中的jquery查询字符串中获取值

问如何从servlet中的jquery查询字符串中获取值
EN

Stack Overflow用户
提问于 2015-01-22 10:50:13
回答 2查看 576关注 0票数 0

我正在使用jquery.form.js从文件中获取一些值。当我尝试从jsp page.but提交值时,我正在获取查询字符串中的值。我无法在servlet.This中获取这些值是我的查询字符串值

这是我的包含Jquery的HTML页面

代码语言:javascript
复制
 <!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>
<title></title>
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
    $(function() {            
      $('#fileUploadForm').ajaxForm({                 
        beforeSubmit: ShowRequest,
        success: SubmitSuccesful,
        error: AjaxError                               
      });                                    
    });            

    function ShowRequest(formData, jqForm, options) {
      var queryString = $.param(formData);
      var url = document.URL;

      alert('BeforeSend method: \n\nAbout to submit: \n\n' +url+"?"+queryString);
      return true;
    }

    function AjaxError() {
      alert("An AJAX error occured.");
    }

    function SubmitSuccesful(responseText, statusText) {        
      alert("SuccesMethod:\n\n" + responseText);
    }    
</script>
</head>
<body>
<form id="fileUploadForm" method="post" action="AServlet" enctype="multipart/form-data">
  <input type="text" name="filename" />
  <input type="file" id="postedFile" name="postedFile" />
  <input type="submit" value="Submit" />
</form>
</body>
</html>



protected void doGET(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    System.out.println("------------------");
    String a = request.getParameter("filename");

    System.out.println(a);
}

}

还有这里的Web.xml

代码语言:javascript
复制
<servlet>
<description></description>
<display-name>AServlet</display-name>
<servlet-name>AServlet</servlet-name>
<servlet-class>com.servlet.AServlet</servlet-class>

​

代码语言:javascript
复制
<servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/AServlet</url-pattern>
</servlet-mapping>
EN

回答 2

Stack Overflow用户

发布于 2015-01-22 11:05:40

  1. 确保您的查询url格式类似于http://yourhostname:port/contextpath?param1=value2¶m2=value2。也许你错过了?.
  2. 通过URL请求,这是一个GET请求,而不是POST请求。因此,在servlet中,您应该获得doGet方法中的参数。您还可以在doGet方法中调用doPost方法。因此您的所有请求都将在doPost方法中处理。
票数 0
EN

Stack Overflow用户

发布于 2015-01-22 17:05:56

我已经找到原因了,因为您使用enctype="multipart/form-data"提交表单,无法通过request.getParameter(key)获取字段值。因为这不是普通的纯文本提交。

如果想要获取字段值,可以使用SmartUpload插件或servlet上传组件。

代码如下:

代码语言:javascript
复制
    DiskFileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    Map<String, Object> fields = new HashMap<String, Object>();
    try {
        Map<String,List<FileItem>> items = upload.parseParameterMap(request);
        for (Entry<String, List<FileItem>> item: items.entrySet()) {
            for (FileItem fileItem : item.getValue()) {
                fields.put(item.getKey(), fileItem.getString());
            }
        }
    } catch (FileUploadException e) {
        e.printStackTrace();
    }

    for (Entry<String, Object> field : fields.entrySet()) {
        System.out.println(field.getKey() + ":" + field.getValue());
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28080525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档