>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 15150 个阅读者 刷新本主题
 * 贴子主题:  Servlet中读JSON请求数据和写JSON响应数据 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2022-09-26 00:27:07     消息  查看  搜索  好友  邮件  复制  引用


package com.jcuckoo.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONObject;

public class JsonReader {
public static JSONObject receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {

// 读取请求内容
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
//将json字符串转换为json对象
JSONObject json=JSONObject.fromObject(sb.toString());
return json;
}
}

package com.jcuckoo.servlet;

import java.io.IOException;
import java.io.Writer;
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.jcuckoo.pojos.User;
import com.jcuckoo.service.UserService;
import com.jcuckoo.util.JsonReader;
import net.sf.json.JSONObject;
@WebServlet("/LoginUserServlet")
public class LoginUserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public LoginUserServlet() {
super();
}

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

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// response.setContentType("text/html");
// 设置字符编码为UTF-8, 这样支持汉字显示
// response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");

/** 设置响应头允许ajax跨域访问 **/
response.setHeader("Access-Control-Allow-Origin", "*");
/* 星号表示所有的异域请求都可以接受, */
response.setHeader("Access-Control-Allow-Methods", "GET,POST");

Writer out = response.getWriter();


JSONObject json=JsonReader.receivePost(request);
System.out.println(json);

UserService userService=new UserService();

//将建json对象转换为java对象
User loginUser = (User)JSONObject.toBean(json,User.class);
User user = userService.LoginUser(loginUser);
JSONObject jsonObject=new JSONObject() ;
if(user!=null){
//将java对象转换为json对象
jsonObject.put("user", JSONObject.fromObject(user));
jsonObject.put("message", "用户登录成功!");
}else{

jsonObject.put("message", "用户登录失败!");
}
out.write(jsonObject.toString());
out.flush();
}
}

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Servlet-jCuckoo</title>
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
</head>
<body>
<form >
用户名:<input type="text" id="userName"/><br/>
密码:<input type="password" id="userPwd"/><br/>
<input type="button" value="登录" id="sender">
</form>
<div id="messageDiv"></div>

<script>
$('#sender').click(function(){
var userName=document.getElementById('userName').value;
var userPwd=document.getElementById('userPwd').value;
var user={userName:userName,userPwd:userPwd};
var url="LoginUserServlet";

$.post(url, JSON.stringify(user), function(data) {
  console.log(data);
             $("#messageDiv").html(data);
             var json=JSON.parse(data);
             alert(json.message);
         });
/* $.ajax({
type:'post',
url:url,
dataType:"json",
data:JSON.stringify(user),
success: function (data) {
var user=data.user;
$("#messageDiv").html(JSON.stringify(user));
             alert(data.message);
        },
        error: function (data) {
             alert(data.message);
             $("#messageDiv").html("");
        }
});  */

});
</script>
</body>

————————————————
原文链接:https://blog.csdn.net/guoquanyou/article/details/62421318


程序猿的技术大观园:www.javathinker.net
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3754

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员