后台可以处理数据 但是前端页面没有显示处理结果

后台可以处理数据 但是前端页面没有显示处理结果

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <meta charset="UTF-8">
        <title>注册</title>
        <link rel="stylesheet" href="${pageContext.request.contextPath }/css/reg.css">
		<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery-3.3.1.js"></script>
        <script type="text/javascript">
            function changeImg() {
                var img = document.getElementById("img");
                img.src = "${pageContext.request.contextPath}/CheckImgServlet?date=" + new Date();
            }
			function CheckUser(){
				var username = $("#username").val();
				alert(username);
				$.ajax({ 
				type:"GET", 
				url:"RegServlet",
				dataType:"json", 
				data:{"username" : username} ,
				success:function(json){ 
					console.log(json);
					for(var i = 0 ; i < json.length ; i++){
						var ch = json[i];
						$("username").append("<p>" + ch.msg + "</p>");
					}
				},
				 error:function () {
		                alert("请求出错!");
		            }
				});
			}
			
            
        </script>
    </head>
    <body>
    <div class="reg">
        <div class="header">
            <h1>
                <a href="${pageContext.request.contextPath }/login.jsp">登录</a>
                <a href="#">注册</a>
            </h1>
            <button></button>
        </div>
        <form action="${pageContext.request.contextPath }/RegServlet?method=reg&str=${str }" method="post">
        <span > ${msg }</span>
            <div class="name">
                <input type="text" id="username" name="username" onblur="javascript:CheckUser()"  placeholder="请输入用户名" value="${username }">
                <p></p>
            </div>
            <div class="pwd">
                <input type="password" id="pwd1" name="password" placeholder="6-16位密码,区分大小写,不能用空格">
                <p></p>
            </div>
            <div class="confirm-pwd">
                <input type="password" id="pwd2" name="psw" placeholder="确认密码">
                <p></p>
            </div>
            <div class="idcode">
                <input type="text" name="verifys" id="verificationCode" placeholder="请输入验证码">
                <a href='#' onclick="changeImg()">&nbsp;&nbsp;&nbsp;&nbsp;换一张</a>
                <span><img id="img" src="${pageContext.request.contextPath }/CheckImgServlet"/></span>
                <div class="clear"></div>
            </div>
            <div class="btn-red">
                <input  type="submit" value="注册" id="reg-btn">
            </div>
        </form>
    </div>
    </body>
</html>



=================================================

package com.imooc.web.aution;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.imooc.domin.User;
import com.imooc.service.UserService;
import com.imooc.service.impl.UserServiceImpl;

/**
 * Servlet implementation class RegServlet
 */
@WebServlet("/RegServlet")
public class RegServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String methodname = request.getParameter("method");
		if("reg".equals(methodname)) {
			reg(request,response);
		}
		
		PrintWriter out = response.getWriter();
		String username = request.getParameter("username");
		UserService userService = new UserServiceImpl();
		boolean flag = userService.edituser(username);
		if(flag) {
			JSONObject json = new JSONObject();
			json.put("msg", "OK");
			response.setContentType("text/html");
			response.setCharacterEncoding("utf-8");
			out.println(json);
		}else {
			JSONObject jsona = new JSONObject();
			jsona.put("msg", "用户名已被使用请重新注册");
			response.setContentType("text/html");
			response.setCharacterEncoding("utf-8");
			String json = JSON.toJSONString(jsona);
			out.println(json);
			System.out.println(json);
		}
	}

	/**
	 * 注册的方法
	 * @param request
	 * @param response
	 * @throws IOException 
	 * @throws ServletException 
	 */
	private void reg(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//接受数据
		String username = request.getParameter("username");//用户名
		String password = request.getParameter("password");//输入密码
		String psw = request.getParameter("psw");//确认密码
		String verify = (String) request.getSession().getAttribute("verify");//生成的验证码
		String verifys = request.getParameter("verifys");//输入的验证码
		String regex = "\\w{6,16}";
		User user = new User();
		boolean flag = password.matches(regex);
		if(flag && (password.equals(psw))) {
			user.setPassword(password);
		}else {
			request.setAttribute("msg", "密码错误");
			request.getRequestDispatcher("/reg.jsp").forward(request, response);
			return;
		}
		if(!verify.equalsIgnoreCase(verifys)) {
			request.setAttribute("msg", "验证码错误");
			request.getRequestDispatcher("/reg.jsp").forward(request, response);
			return;
		}
		user.setUsername(username);
		//调用业务层处理数据
		UserService userService = new UserServiceImpl();
		userService.reg(user);
		//跳转至登录页面
		response.sendRedirect(request.getContextPath() + "/login.jsp");
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,

1、首先在RegServlet类中,flag为true时,相等于用户名已经存在,应提示用户名已被使用请重新注册,反之为Ok。修改如下:

http://img1.sycdn.imooc.com//climg/5f869b0509140ce805210371.jpg

2、在jsp中同学无需使用for循环,这里可以直接对msg进行判断,当不等于OK时,弹出提示并跳转至注册页面。如下:

http://img1.sycdn.imooc.com//climg/5f869b640905119006440288.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小脸 2020-10-14 11:50:14

同学你好,测试运行同学贴出的代码是可以正确注册用户信息的。

这里同学所描述的“后台可以处理数据 但是前端页面没有显示处理结果”是指什么呢?建议同学描述清楚。

祝学习愉快~

  • 提问者 慕粉1705037409 #1
    在input失去焦点后发送ajax函数 取后台查询用户名是否存在 不存在则注册 存在则登录 就是用户名查重
    2020-10-14 12:01:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师