52,797
社区成员
发帖
与我相关
我的任务
分享
$(document).ready(function(){
$('#login').click(function(){
var username = $("#username").val();
var password = $("#password").val();
var code = $("#code").val();
if(username == ""){
$("#username").focus;
return;
}
if(password == ""){
$("#password").focus;
return;
}
if(code == ""){
$("#code").focus;
return;
}
$.ajax({
url:"/LoginServlet?method=doLogin", //这里的路径是对的
type:"get",
data:{"username":username,"password":password,"code":code},
beforeSend:function(){
$("#login").val("登陆中");
},
success:function(data){
if(data==false){
$("#password").val("");
$("#password").attr("placeholder","密码错误");
$("#login").val("登录");
}else{
window.location.href="main.jsp";
}
},
});
});
});
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE>
<html>
<head>
<title>登录</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<link href="https://fonts.font.im/css?family=Permanent+Marker" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="/hon/js/user.js"></script>
<link rel="stylesheet" type="text/css" href="/hon/css/login.css">
</head>
<body>
<div class="login-form">
<h1>Log In</h1>
<input type="text" value="${param.username}" value="" class="txtb" id="username" placeholder="用户名">
<input type="password" value="${param.password}" value="" class="txtb" id="password" placeholder="密码">
<table>
<tr>
<td><input type="text" value="${param.code}" value="" class="txtb" id="code" maxlength="4" placeholder="验证码"></td>
<td><img border=0 style="width: 80px;margin-top:20px" src="checkcodeservlet"/></td>
</tr>
</table>
<input type="button" id="login" class="login-btn" value="登录">
<a href="/hon/register.jsp">还未注册?</a>
<a href="/hon/findpwd.jsp"> 忘记密码?</a>
</div>
</body>
</html>
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
System.out.println("TEST"); //单击登录后TEST没有被打印出来
String methodname = req.getParameter("method");
try {
Class clazz = Class.forName("com.douban.controll.LoginServlets");//获取到UserServlet类
Method[] methods = clazz.getDeclaredMethods();//然后把类的方法一块一块的分出来
for (Method method : methods) {
String name = method.getName(); //遍历类的方法,如果和传入的方法名相同就调用此方法
if (name.equals(methodname)) {
method.invoke(clazz.newInstance(), req, resp);
break;
}
}
} catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doLogin(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
PrintWriter out = resp.getWriter();
//获取请求信息
String username = req.getParameter("username");
String password = req.getParameter("password");
String code = req.getParameter("code");
String rcode = (String) req.getSession().getAttribute("code");
UserService us = new UserServiceImpl();
if(!code.equals(rcode)) {
out.print(false);
}
if(us.login(username, password)) {
req.setAttribute("username", username);
out.print(true);
}else {
out.print(false);
}
out.flush();
out.close();
}
}
我在火狐里面调试但是看不出什么,应该看哪里 [quote=引用 1 楼 情非彼岸花 的回复:] 调试下吧,没有进入ajax里面去,是格式错误还是什么的。
我在火狐里面调试但是看不出什么,应该看哪里 调试下吧,没有进入ajax里面去,是格式错误还是什么的。
[quote=引用 楼主 计院库里 的回复:] 我现在的问题就是ajax访问不到Servlet,求大佬们帮我看看$(document).ready(function(){ $('#login').click(function(){ var username = $("#username").val(); var password = $("#password").val(); var code = $("#code").val(); if(username == ""){ $("#username").focus; return; } if(password == ""){ $("#password").focus; return; } if(code == ""){ $("#code").focus; return; } $.ajax({ url:"/LoginServlet?method=doLogin", //这里的路径是对的 type:"get", data:{"username":username,"password":password,"code":code}, beforeSend:function(){ $("#login").val("登陆中"); }, success:function(data){ if(data==false){ $("#password").val(""); $("#password").attr("placeholder","密码错误"); $("#login").val("登录"); }else{ window.location.href="main.jsp"; } }, }); }); });
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE> <html> <head> <title>登录</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <link href="https://fonts.font.im/css?family=Permanent+Marker" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script type="text/javascript" src="/hon/js/user.js"></script> <link rel="stylesheet" type="text/css" href="/hon/css/login.css"> </head> <body> <div class="login-form"> <h1>Log In</h1> <input type="text" value="${param.username}" value="" class="txtb" id="username" placeholder="用户名"> <input type="password" value="${param.password}" value="" class="txtb" id="password" placeholder="密码"> <table> <tr> <td><input type="text" value="${param.code}" value="" class="txtb" id="code" maxlength="4" placeholder="验证码"></td> <td><img border=0 style="width: 80px;margin-top:20px" src="checkcodeservlet"/></td> </tr> </table> <input type="button" id="login" class="login-btn" value="登录"> <a href="/hon/register.jsp">还未注册?</a> <a href="/hon/findpwd.jsp"> 忘记密码?</a> </div> </body> </html>
public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); System.out.println("TEST"); //单击登录后TEST没有被打印出来 String methodname = req.getParameter("method"); try { Class clazz = Class.forName("com.douban.controll.LoginServlets");//获取到UserServlet类 Method[] methods = clazz.getDeclaredMethods();//然后把类的方法一块一块的分出来 for (Method method : methods) { String name = method.getName(); //遍历类的方法,如果和传入的方法名相同就调用此方法 if (name.equals(methodname)) { method.invoke(clazz.newInstance(), req, resp); break; } } } catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } protected void doLogin(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); PrintWriter out = resp.getWriter(); //获取请求信息 String username = req.getParameter("username"); String password = req.getParameter("password"); String code = req.getParameter("code"); String rcode = (String) req.getSession().getAttribute("code"); UserService us = new UserServiceImpl(); if(!code.equals(rcode)) { out.print(false); } if(us.login(username, password)) { req.setAttribute("username", username); out.print(true); }else { out.print(false); } out.flush(); out.close(); } }
调试下吧,没有进入ajax里面去,是格式错误还是什么的。
我现在的问题就是ajax访问不到Servlet,求大佬们帮我看看$(document).ready(function(){ $('#login').click(function(){ var username = $("#username").val(); var password = $("#password").val(); var code = $("#code").val(); if(username == ""){ $("#username").focus; return; } if(password == ""){ $("#password").focus; return; } if(code == ""){ $("#code").focus; return; } $.ajax({ url:"/LoginServlet?method=doLogin", //这里的路径是对的 type:"get", data:{"username":username,"password":password,"code":code}, beforeSend:function(){ $("#login").val("登陆中"); }, success:function(data){ if(data==false){ $("#password").val(""); $("#password").attr("placeholder","密码错误"); $("#login").val("登录"); }else{ window.location.href="main.jsp"; } }, }); }); });
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE> <html> <head> <title>登录</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <link href="https://fonts.font.im/css?family=Permanent+Marker" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script type="text/javascript" src="/hon/js/user.js"></script> <link rel="stylesheet" type="text/css" href="/hon/css/login.css"> </head> <body> <div class="login-form"> <h1>Log In</h1> <input type="text" value="${param.username}" value="" class="txtb" id="username" placeholder="用户名"> <input type="password" value="${param.password}" value="" class="txtb" id="password" placeholder="密码"> <table> <tr> <td><input type="text" value="${param.code}" value="" class="txtb" id="code" maxlength="4" placeholder="验证码"></td> <td><img border=0 style="width: 80px;margin-top:20px" src="checkcodeservlet"/></td> </tr> </table> <input type="button" id="login" class="login-btn" value="登录"> <a href="/hon/register.jsp">还未注册?</a> <a href="/hon/findpwd.jsp"> 忘记密码?</a> </div> </body> </html>
public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); System.out.println("TEST"); //单击登录后TEST没有被打印出来 String methodname = req.getParameter("method"); try { Class clazz = Class.forName("com.douban.controll.LoginServlets");//获取到UserServlet类 Method[] methods = clazz.getDeclaredMethods();//然后把类的方法一块一块的分出来 for (Method method : methods) { String name = method.getName(); //遍历类的方法,如果和传入的方法名相同就调用此方法 if (name.equals(methodname)) { method.invoke(clazz.newInstance(), req, resp); break; } } } catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } protected void doLogin(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); PrintWriter out = resp.getWriter(); //获取请求信息 String username = req.getParameter("username"); String password = req.getParameter("password"); String code = req.getParameter("code"); String rcode = (String) req.getSession().getAttribute("code"); UserService us = new UserServiceImpl(); if(!code.equals(rcode)) { out.print(false); } if(us.login(username, password)) { req.setAttribute("username", username); out.print(true); }else { out.print(false); } out.flush(); out.close(); } }