【问题标题】:How to use GSON and display information in JSP file如何使用 GSON 并在 JSP 文件中显示信息
【发布时间】:2011-11-25 00:29:57
【问题描述】:

我正在开发一个基于 JSP 的 web 应用程序。我有一个 servlet 类:

package managesystem;

import java.util.List;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.gson.Gson;

public class getUsernamesServlet extends HttpServlet{

/**
 * 
 */
private static final long serialVersionUID = 1L;

   public void doGet(HttpServletRequest req, HttpServletResponse resp){
      List<String> usernamesList = StudentManager.findAllUsernames();
      req.setAttribute("usernames", new Gson().toJson(usernamesList));

   }

}

我的问题如下:如果用户名仍然可用(如果列表中不存在),我如何检查 Ajax?如何获取 servlet 写入请求的 JSON 信息,例如使用 Ajax 的 register.jsp?

亲切的问候,

h4

【问题讨论】:

    标签: jquery ajax json jsp gson


    【解决方案1】:

    您需要将其写入响应正文,而不是将其设置为请求属性。

    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(new Gson().toJson(usernamesList));
    

    通过这种方式,此 servlet 上的 Ajax 请求检索 JSON 响应,然后可以使用 JavaScript 以通常的方式遍历该响应。

    也就是说,如果您的唯一目的是检查用户名是否可用,那么您也可以采用不同的方法。除了通过网络抽取所有用户名的整个列表并在 JavaScript 端执行检查工作,您还可以将输入的用户名作为请求参数发送到 servlet 并让数据库执行检查作业并仅返回布尔值 truefalse 用户名是否可用。例如,

    String username = request.getParameter("username");
    boolean usernameAvailable = studentService.usernameAvailable(username);
    
    Map<String, Object> data = new HashMap<String, Object>();
    data.put("usernameAvailable", usernameAvailable);
    
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(new Gson().toJson(data));
    

    $.get('someservlet', { 'username': username }, function(data) {
        if (!data.usernameAvailable) {
            $('#somemessage').text('Username is not available, please choose another').show();
        }
    });
    

    这样更节省带宽,更不容易泄露敏感信息。

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 2011-08-28
      • 1970-01-01
      相关资源
      最近更新 更多