gpt4 book ai didi

jquery - 如何使用GSON并在JSP文件中显示信息

转载 作者:行者123 更新时间:2023-12-01 01:03:35 24 4
gpt4 key购买 nike

我正在开发一个基于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

最佳答案

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

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

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

也就是说,如果您的唯一目的是检查用户名是否可用,那么您也可以采取一些不同的方法。您也可以将输入的用户名作为请求参数发送到 servlet,然后让数据库执行操作,而不是通过网络抽取所有用户名的整个列表并在 JavaScript 端执行检查工作检查作业并仅返回 bool 值 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();
}
});

这样可以提高带宽效率,并且不易泄露敏感信息。

另请参阅:

关于jquery - 如何使用GSON并在JSP文件中显示信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8263760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com