Java中Post的提交方式

  在利用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开发的人员很多,做这个总结也算是帮别解答了一些疑惑吧!既然做这件事可以帮自己解决疑惑又可以帮助别人,何乐而不为呢?生活赋予我们一种巨大的和无限高贵的礼品,这就是青春:充满着力量,充满着期待志愿,充满着求知和斗争的志向,充满着希望信心和青春。这句话是奥斯特洛夫斯基曾经说过的,本人觉得说得很好。然后就拿出来跟大家分享,正处于美好青春的我们,为何不为以后美好的我们好好干一番呢!为何不对自己要求严格一点呢!为何不给自己定下一个小小的目标呢!如果你现在对自己狠一点、严格一点,在不久的将来;你会感激现在的自己。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值