开发者社区> 问答> 正文

servlet返回ajax请求数据 400 请求报错 

问题描述: 在前台(jsp)用ajax提交数据, 后台(servlet)处理后返回"1"或者"0". 可是前台获得的返回数据是长度为3的字符串, 即"1__"或"0__"(_表示一个空白字符). 环境:  tomcat-7.0.29 + MySQL 5.5 + jquery 1.7 其他: 以为是UTF-8 + BOM的问题, 可是把所有文件都改为UTF-8了,问题依旧. 这是后台处理请求的Validate.java文件

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Validate extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response) 
		throws IOException, ServletException {
			String user_name = new String(request.getParameter("userName").getBytes("ISO-8859-1"), "UTF-8");
			String user_pwd = new String(request.getParameter("password").getBytes("ISO-8859-1"), "UTF-8");
			PrintWriter out = response.getWriter();
			String driver = "com.mysql.jdbc.Driver";
			String dbUser = "root";
			String dbPwd = "3306";
			String db = "appbase";
			String url = "jdbc:mysql://localhost:3306/" + db + "?user=" + dbUser + "&password=" + dbPwd;
			ResultSet rs = null;
			String sqlString = "select * from client where login_account='" + user_name + "' and password='" + user_pwd + "'";
			try {
				Class.forName(driver).newInstance();
				Connection conn = DriverManager.getConnection(url);
				Statement ps = conn.createStatement();
				rs = ps.executeQuery(sqlString);
				if(rs.next())
					out.println("1");
				else
					out.println("0");
			} catch(ClassNotFoundException e) {
				out.println("ClassNotFoundException"); 
			} catch(SQLException ex) {
				out.println("SQLException");
			} catch(Exception exe) {
				out.println("OtherException");
			}			
	}
}
这是前台ajax提交数据的代码:
$(document).ready(function() {
		$("#_submit").click(function() {
			var user_name = $("#_user_name").val();
			var user_pwd = $("#_user_pwd").val();
			$.ajax({
				url: "login/validate",
				data: { userName: user_name, password: user_pwd },
				type: "GET",
				datatype: "html",
				success: function(data){
					alert(data.length);
				}
			});
		});
	});

 

展开
收起
kun坤 2020-05-29 17:31:41 712 0
1 条回答
写回答
取消 提交回答
  • 是不是输出时换行的问题,多了\r\n######

    引用来自“乔康007”的答案

    是不是输出时换行的问题,多了\r\n
    一语惊醒梦中人啊...
    2020-05-29 17:31:48
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载