java-使用高级Rest chrome打印json对象时出现意外的令牌L
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-使用高级Rest chrome打印json对象时出现意外的令牌L,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3371字,纯文字阅读大概需要5分钟。
内容图文
我正在使用一个连接到数据库并输出是否登录的servlet,当使用printWriter.write(JsonObject)时,我得到了其余的错误,出乎意料的令牌L.我正在使用tomcat服务器托管数据.
public class Login extends HttpServlet {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/employeedatabase";
// Database credentials
static final String USER = "root";
static final String PASS = "admin";
static Connection conn = null;
static Statement stmt = null;
static ResultSet rs;
static PrintWriter out;
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Login() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json; charset=UTF-8");
out = response.getWriter();
String email = request.getParameter("username");
String password = request.getParameter("password");
String result = "";
if(Validation.validateNull(email) && Validation.validateNull(password)){
if(!Validation.validateEmail(email))
{
result = "Invalid email";
}
if(databaseFuctions.Login(email,password))
{
result = "Login accepted";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
getFromDatabase("manager",email,request,response);
// getFromDatabase("qa",email,request,response);
// getFromDatabase("developer",email,request,response);
} catch (Exception e1) {
// TODO Auto-generated catch block
System.out.println(e1.getMessage());
}
}
else if(!databaseFuctions.Login(email, password))
{
result = "Login invalid";
}}
else{
result = "No login/password entered";
}
out.write(result);
}
public static void getFromDatabase(String table,String email,HttpServletRequest request, HttpServletResponse response){
JSONObject JObject = new JSONObject();
ResultSet ds;
try {
ds = stmt.executeQuery("SELECT * from "+table+" where email = '"+email+"'");
while(ds.next())
{
int id = ds.getInt("id");
int salary = ds.getInt("salary");
String name = ds.getString("name");
String role = ds.getString("role");
String emailAddress = ds.getString("email");
String phone = ds.getString("phone");
JObject.put("id", id);
JObject.put("salary", salary);
JObject.put("name", name);
JObject.put("role", role);
JObject.put("email", emailAddress);
JObject.put("phone", phone);
}
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
out.print(JObject.toString());
out.flush();
System.out.println(JObject.toString());
}
在系统中打印时,我会获取所有正确的数据,或者从静止状态检查原始数据后会得到正确的数据.但是我不太明白为什么打印机会抛出异常,但任何帮助都是惊人的
解决方法:
确定,如果错误是由于返回错误格式的JSON值而导致的,则返回的格式如下:{id:13,name:“ Name”}登录无效,则L无效的第一个字符JSON语法.
这是因为您正在响应中编写方法getFromDatabase中的json字符串out.print(JObject.toString());在方法调用之后,将字符串结果=“ Login invalid”添加到响应中; out.write(result);导致您的JSON无效.
解决此问题的一种方法是从方法getFromDatabase返回JSONObject,并将结果方法放入此对象JObject.put(“ result”,result)中,然后将该对象写入响应.
内容总结
以上是互联网集市为您收集整理的java-使用高级Rest chrome打印json对象时出现意外的令牌L全部内容,希望文章能够帮你解决java-使用高级Rest chrome打印json对象时出现意外的令牌L所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。