在利用Java的开发工具做项目或者做一些小程序的时候,难免都会用到post进行一步提交数据。用异步提交的好处是局部刷新,这样的话就可以大大提交运行效率;也避免了一些不需要更新的数据重新加载。如何利用Json进行post提交的呢?那么今天详细跟你谈谈,是如何利用Json进行post提交。
以下是jsp用到.jar
向表格添加数据为例,jsp的代码
<body>
<form action="" >
<table id="tab" width="90%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="5%" class="td_title">用户id</td>
<td width="5%" class="td_title">用户名</td>
<td width="5%" class="td_title">密码</td>
<td width="5%" class="td_title">性别</td>
<td width="5%" class="td_title">操作时间</td>
<td width="5%" class="td_title">详细操作时间</td>
<td width="5%" class="td_title">新增</td>
<td width="5%" class="td_title">修改</td>
<td width="5%" class="td_title">删除</td>
</tr>
</table>
</form>
<input type="button" id="btn" value="登陆"/>
//jquery的插件
<script src="${ctx}/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.get("${ctx}/servlet/UserJsonServlet?type=selectUser",
function(d){
console.log(typeof d);
var str="";
var sex="";
data=d.data;
for(var i=0; data.length;i++){
str += "<tr>" +"<td style='display:none'>" + data[i].userid + "</td>" +
"<td>" + data[i].username + "</td>" +
"<td>" + data[i].password + "</td>" +
"<td>" + data[i].sex + "</td>" +
"<td>" + data[i].createtime + "</td>" +
"<td>" + data[i].detime + "</td>" +
"<td><a href='${ctx}/servlet/UserDemoServlet?type=addJump'><img src='image/edit.gif' border='0'></a></td>" +
"<td><a href='${ctx}/servlet/UserDemoServlet??type=updateJump&userid=${user.userid}'><img src='image/edit.gif' border='0'></a></td>" +
"<td><a href='${ctx}/servlet/UserDemoServlet?type=type=delete&userid=${user.userid}'><img src='image/edit.gif' border='0'></a></td>" +
"</tr>";
$('#tab').html(str);
}
},"json");
});
});
</script>
</body>
Json的封装类
public class ToJsonUtil implements Serializable{
private static final long serialVersionUID = 1L;
//对象
public static String toJson(Collection<?> lists){
JSONObject json = new JSONObject();//将变量用put的方式放入
JSONArray jsonArray=new JSONArray();
JsonConfig config = new JsonConfig();//我们要控制JSON序列化过程中的Date对象的格式化,以及数值的格式化
config.registerJsonValueProcessor(
Date.class,
new JsonValueProcessor(){
@Override
public Object processObjectValue(String key, Object value, JsonConfig config) {
String str = new SimpleDateFormat("yyyy-MM-dd").format((java.util.Date) value);
return str;
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return null;
}
});
config.registerJsonValueProcessor(
Timestamp.class,
new JsonValueProcessor(){
public Object processObjectValue(String key, Object value, JsonConfig config) {
String str = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format((java.sql.Timestamp) value);
return str;
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return null;
}
});
if(lists!=null && lists.size()>0){
//添加时间转换器
jsonArray.addAll(lists,config);
json.put("count",lists.size());
json.put("data",jsonArray);
}else{
//没有查询到数据
json.put("count", 0);
}
return json.toString();
}
//字符串
public static String toJson(String str){
JSONObject json = new JSONObject();
JSONArray jsonArray=new JSONArray();
JsonConfig config = new JsonConfig();
jsonArray.add(str,config);
json.put("data",jsonArray);
return json.toString();
}
//对象
public static String toJson(Object t){
JSONObject json = new JSONObject();
JSONArray jsonArray=new JSONArray();
JsonConfig config = new JsonConfig();
jsonArray.add(t,config);
json.put("data",jsonArray);
return json.toString();
}
public static String toJson(Integer curPage,Integer totalRows,Collection<?> lists,boolean success){
JSONObject json = new JSONObject();
JSONArray jsonArray=new JSONArray();
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(
Date.class,
new JsonValueProcessor(){
@Override
public Object processObjectValue(String key, Object value, JsonConfig config) {
String str = new SimpleDateFormat("yyyy-MM-dd").format((java.util.Date) value);
return str;
}
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return null;
}
});
if(lists!=null && lists.size()>0){
//添加时间转换器
jsonArray.addAll(lists,config);
json.put("success",success);
json.put("totalRows",totalRows);
json.put("curPage",curPage);
json.put("data",jsonArray);
}else{
//没有查询到数据
json.put("curPage", 0);
}
return json.toString();
}
}
dao包里的findAll的方法
public class UserDaoImpl implements IUserDao{
private String findAll="select *from user";
public List<User> findAll() {
User user=null;
List<User>users=null;
try {
con=DBUtilDemo.getConnection();
ps=con.prepareStatement(findAll);
rs=ps.executeQuery();
users=new ArrayList<User>();
while (rs.next()) {
user=new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setCreatetime(rs.getDate("createtime"));
user.setSex(rs.getBoolean("sex"));
user.setUserid(rs.getInt("userid"));
user.setDetime(rs.getTimestamp("detime"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBUtilDemo.close(con, ps, rs);
}
return users;
}
}
DButilDeme的类
public class DBUtilDemo {
private static String username;
private static String password;
private static String url;
private static String driver;
static {
Properties properties = new Properties();
try {
InputStream in = DBUtilDemo.class.getClassLoader()
.getResourceAsStream("jdbc.properties");
properties.load(in);
username = properties.getProperty("username");
password = properties.getProperty("password");
url = properties.getProperty("url");
driver = properties.getProperty("driver");
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (ps != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (rs != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Servlet的代码
public class UserJsonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private IUserService userService=new UserServiceImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String type=request.getParameter("type");
List<User> users=userService.findAll();
PrintWriter out=response.getWriter();
out.write(ToJsonUtil.toJson(users));
}
到这里基本的的方法已经说完,还有最重要的一点。执行结果如下图:
个人总结:为什么要说Java中post提交呢?第一,本人是初学Java者对很多事情存在很多疑惑,今天大概对Post提交做了个总结;有些疑惑也得到解决,对自己也要一定的提高。第二,由于在利用Java开发的人员很多,做这个总结也算是帮别解答了一些疑惑吧!既然做这件事可以帮自己解决疑惑又可以帮助别人,何乐而不为呢?生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。这句话是奥斯特洛夫斯基曾经说过的,本人觉得说得很好。然后就拿出来跟大家分享,正处于美好青春的我们,为何不为以后美好的我们好好干一番呢!为何不对自己要求严格一点呢!为何不给自己定下一个小小的目标呢!如果你现在对自己狠一点、严格一点,在不久的将来;你会感激现在的自己。