serverlet 返回json

serverlet 返回json1 web xml serverlet 名 项目类路径 serverlet 名 请求路径 2 javapackagec pul sam area importjava io IOException importjava io PrintWriter importjava util HashMap importjava util Lis

1.web.xml

 <servlet> <servlet-name>serverlet名</servlet-name> <servlet-class>项目类路径</servlet-class> </servlet> <servlet-mapping> <servlet-name><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">serverlet名</span><span style="font-size: 12px; font-family: Arial, Helvetica, sans-serif;"></servlet-name></span> <url-pattern>/请求路径</url-pattern> </servlet-mapping>

2.java

package com.pul.sam.area;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.HibernateTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class AreaQuery extends HttpServlet{

	private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		this.requestManage(req,res);;
	}
	
	protected void doPost(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		this.requestManage(req,res);
	}
	/
	 * 处理请求
	 * @throws IOException 
	 */
	private void requestManage(HttpServletRequest req, HttpServletResponse res) throws IOException{
		//配置编码类型
		res.setContentType("text/html;charset=UTF-8;pageEncoding=UTF-8");  //控制浏览器的编码行为
		res.setCharacterEncoding("UTF-8");//目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
		res.setHeader("content-type","text/html;charset=UTF-8");	
		req.setCharacterEncoding("UTF-8");	
		
		String type = req.getParameter("type");
		switch (type) {
			case "prov":
				this.queryProv(req, res);
				break;
			case "city":
				this.queryCity(req, res);
				break;
			case "area":
				this.queryArea(req, res);
				break;
			default:
				break;
		}
	}
	
	/
	 * 省份查询
	 * @throws IOException 
	 */
	@SuppressWarnings("rawtypes")
	private void queryProv(HttpServletRequest req, HttpServletResponse res) throws IOException {
		System.out.println("111111111");
		
		//配置编码类型
		res.setContentType("text/json;charset=UTF-8;pageEncoding=UTF-8");  //控制浏览器的编码行为
		res.setCharacterEncoding("UTF-8");//目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
		res.setHeader("content-type","text/json;charset=UTF-8");	
		req.setCharacterEncoding("UTF-8");		
		
		PrintWriter out = res.getWriter();		
		
		// 配置与数据库链接的属性
		ServletContext sc = req.getSession().getServletContext();
		ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
		SessionFactory sessionFactory=(SessionFactory) ac.getBean("sessionFactory");//创建工厂
		HibernateTransactionManager htm = new HibernateTransactionManager(sessionFactory);
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setReadOnly(false);
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = htm.getTransaction(def);
		HibernateTemplate ht=new HibernateTemplate(sessionFactory);//增删改查的模版		
		//查询数据库
		String hql = "select distinct _t1.provCode,_t1.prov from TArea _t1";
		List list = ht.find(hql);
		htm.commit(status);  //真正提交到后台数据库
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("result", list);
		JSONObject json = JSONObject.fromObject(map);
		out.print(json);
		out.close();
	}

	/
	 * 城市查询
	 * @throws IOException 
	 */
	@SuppressWarnings("rawtypes")
	private List queryCity(HttpServletRequest req, HttpServletResponse res) throws IOException {
		
		//配置编码类型
		res.setContentType("text/json;charset=UTF-8;pageEncoding=UTF-8");  //控制浏览器的编码行为
		res.setCharacterEncoding("UTF-8");//目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
		res.setHeader("content-type","text/json;charset=UTF-8");	
		req.setCharacterEncoding("UTF-8");		
		
		PrintWriter out = res.getWriter();		
		
		// 配置与数据库链接的属性
		ServletContext sc = req.getSession().getServletContext();
		ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
		SessionFactory sessionFactory=(SessionFactory) ac.getBean("sessionFactory");//创建工厂
		HibernateTransactionManager htm = new HibernateTransactionManager(sessionFactory);
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setReadOnly(false);
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = htm.getTransaction(def);
		HibernateTemplate ht=new HibernateTemplate(sessionFactory);//增删改查的模版		
		//查询数据库
		String hql = "select distinct _t1.provCode,_t1.prov from TArea _t1";
		List list = ht.find(hql);
		htm.commit(status);  //真正提交到后台数据库
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("result", list);
		JSONObject json = JSONObject.fromObject(map);
		out.print(json);
		out.close();		
		return list;
	}
	
	/
	 * 区查询
	 * @throws IOException 
	 */
	@SuppressWarnings("rawtypes")
	private List queryArea(HttpServletRequest req, HttpServletResponse res) throws IOException {
		System.out.println("111111111");
		
		//配置编码类型
		res.setContentType("text/json;charset=UTF-8;pageEncoding=UTF-8");  //控制浏览器的编码行为
		res.setCharacterEncoding("UTF-8");//目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutputStream()是不需要此种解决方案的;因为这句话的意思是为了将response对象中的数据以UTF-8解码后发向浏览器;
		res.setHeader("content-type","text/json;charset=UTF-8");	
		req.setCharacterEncoding("UTF-8");		
		
		PrintWriter out = res.getWriter();		
		
		// 配置与数据库链接的属性
		ServletContext sc = req.getSession().getServletContext();
		ApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);
		SessionFactory sessionFactory=(SessionFactory) ac.getBean("sessionFactory");//创建工厂
		HibernateTransactionManager htm = new HibernateTransactionManager(sessionFactory);
		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		def.setReadOnly(false);
		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		TransactionStatus status = htm.getTransaction(def);
		HibernateTemplate ht=new HibernateTemplate(sessionFactory);//增删改查的模版		
		//查询数据库
		String hql = "select distinct _t1.provCode,_t1.prov from TArea _t1";
		List list = ht.find(hql);
		htm.commit(status);  //真正提交到后台数据库
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("result", list);
		JSONObject json = JSONObject.fromObject(map);
		out.print(json);
		out.close();		
		return list;
	}
}

3.js

 $.ajax({ type:'post', url:'/logistic/queryArea?type=prov', cache:false, dataType:'json', success:function(data){ // alert("success"); console.log(data); console.log(eval(data));//前台json字符串转换json数据 }, error:function(e){ console.log("失败"); console.log(e); } }); 





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233029.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 6种不同画法画平行线_平行线的画法_中小学试题|家庭教育题库|辅导习题「中国戏曲学院附属中等戏曲学校」…

    6种不同画法画平行线_平行线的画法_中小学试题|家庭教育题库|辅导习题「中国戏曲学院附属中等戏曲学校」…平行线怎么画第五章《数学活动1》—-你有几种画平行线的方法【活动理念】通过让学生积极参与此次活动,获得成功的体验,感受活动课的乐趣.通过观察、操作、推理归纳,让学生进一步知道相交线、平行线以及垂线的概念,利用平行线的判定解决一些实际问题,利用平移可以绘制一些优美的图案等.【活动目标】一、知识与技能1、两直线平行的条件,掌握两种以上最快捷的画平行线的方法.2、进一步理解相交线、平行线以及垂线的概…

    2022年9月20日
    3
  • java calendar计算时间差_Java Calendar 计算时间差

    java calendar计算时间差_Java Calendar 计算时间差publicstaticvoidmain(String[]args){Calendarc=Calendar.getInstance();inty=2016;//年intM=1;//月intd=1;//日intH=0;//时intm=0;//分ints=0;//秒c.set(Calendar.YEAR,y);c.set(Calendar.MONTH,M-1);c.set(…

    2022年6月5日
    32
  • java db 使用_JavaDB的基本使用[通俗易懂]

    java db 使用_JavaDB的基本使用[通俗易懂]Derby並不是一個新的數據庫產品,它是由IBM捐獻給Apache的DB項目的一個純Java數據庫,JDK6.0里面帶的這個Derby的版本是10.2.1.7,支持存儲過程和觸發器;有兩種運行模式,一種是作為嵌入式數據庫,另一種是作為網絡數據庫,前者的數據庫服務器和客戶端都在同一個JVM里面運行,后者允許數據庫服務器端和客戶端不在同一個JVM里面,而且允許這兩者在不同的物理機器上.值得注意的是JD…

    2022年7月7日
    38
  • python中append函数什么意思_python中append函数用法讲解

    python中append函数什么意思_python中append函数用法讲解python中append函数用法讲解如果在做一个地区的统计工作,可以使用列表来帮助我们。输入汉字或者其他字符,比如“01代表汉族”,那么在写民族的时候有下拉列表,就可以打01,就会自动识别为汉族。列表是用来大规模数据填报的时候使用,在python中,也有很多使用到列表的时候,那你知道如何在列表的末尾添加新的对象?今天,我们就来认识一下python中可以在列表末尾添加元素的append函数。1、a…

    2022年6月15日
    67
  • Java websocket_docker rocketmq

    Java websocket_docker rocketmqHandlerSocket是MySQL的一个Plugin,通过它可以直接跟MySQL的StorageEngineLayer(比如InnoDB)交互,而不需要通过MySQL的ParserLayer。从性能角度有很大的提升。    HandlerSocket特别适用于海量数据、高并发的具有简单业务模型的应用,比如微博、Feed。可以用来替代传统Memcached+MySQL的方式,而且

    2022年8月24日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号