为什么修改了JSP页面,但页面仍不更新呢?

1. 检查你修改的页面是不是你要更新的页面,我以前犯过这毛病,改了半天页面还是以前的,后来一看才知道不是显示的页,崩溃.....
2. Stop Tomcat,然后到Tomcat_Home下的work目录中,删除相应Web项目目录(这里面放的是页面缓存文件,其实都可以删除),OK。Start咱们的Tomcat。一般就没问题了。
3. 见我防止IE缓存一文

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jsp和servlet页面中使用ajax实现用户账户验证提示和异步处理的基本流程如下: 1. 在jsp页面中添加一个文本框和一个提示框,当用户输入用户名时,通过ajax向后台发送请求,检查用户名是否已经被注册,如果已经注册,则在提示框中显示“该用户名已经被注册”,否则提示“该用户名可以使用”。 2. 在servlet中处理ajax请求,检查用户名是否已经被注册,并将结果返回给前端页面。 3. 为了保证多个用户注册时仍能正常进行,可以使用异步处理机制。在servlet中使用线程池来处理请求,将每个请求放入线程池中,由线程池负责异步处理,处理结果通过回调函数返回给前端页面。 下面是一个简单的示例代码: 在jsp页面中添加一个文本框和一个提示框: ```html <input type="text" id="username" name="username" onblur="checkUsername()" /> <span id="msg"></span> ``` 在javascript中发送ajax请求: ```javascript function checkUsername() { var username = document.getElementById("username").value; var msgBox = document.getElementById("msg"); var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var resp = JSON.parse(xhr.responseText); if (resp.code == 0) { msgBox.innerHTML = "该用户名可以使用"; } else { msgBox.innerHTML = "该用户名已经被注册"; } } }; xhr.open("GET", "checkUsernameServlet?username=" + username, true); xhr.send(); } ``` 在servlet中处理ajax请求: ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); boolean isExist = checkUsernameExist(username); Map<String, Object> result = new HashMap<String, Object>(); if (isExist) { result.put("code", 1); } else { result.put("code", 0); } response.setContentType("application/json;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print(JSON.toJSONString(result)); out.flush(); out.close(); } private boolean checkUsernameExist(String username) { // 查询数据库,检查用户名是否已经被注册 return true; } ``` 使用线程池来处理请求,并通过回调函数返回处理结果: ```java public class CheckUsernameTask implements Runnable { private String username; private AsyncCallback callback; public CheckUsernameTask(String username, AsyncCallback callback) { this.username = username; this.callback = callback; } public void run() { boolean isExist = checkUsernameExist(username); Map<String, Object> result = new HashMap<String, Object>(); if (isExist) { result.put("code", 1); } else { result.put("code", 0); } callback.onComplete(result); } private boolean checkUsernameExist(String username) { // 查询数据库,检查用户名是否已经被注册 return true; } } public interface AsyncCallback { void onComplete(Map<String, Object> result); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); AsyncCallback callback = new AsyncCallback() { public void onComplete(Map<String, Object> result) { response.setContentType("application/json;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print(JSON.toJSONString(result)); out.flush(); out.close(); } }; executor.execute(new CheckUsernameTask(username, callback)); } private static ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 30, 60, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(100)); ``` 通过以上实现,可以实现用户账户验证提示和异步处理,保证多个用户注册时仍能正常进行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值