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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于Set集合去重[通俗易懂]

    关于Set集合去重[通俗易懂]上次说了List集合的去重,这次来说说Set集合的去重publicstaticvoidmain(String[]args){ HashSeths=newHashSet<>(); hs.add(“a”); hs.add(“b”); hs.add(“c”); hs.add(“a”); hs.add(“a”); for(Objectobj:…

    2022年6月7日
    46
  • python和c++哪个好_pycharm怎么创建python项目

    python和c++哪个好_pycharm怎么创建python项目创建项目首先打开Pycharm勾选IconfirmthatIhavereadandacceptthetermsofthisUserAgreement接下来选择Don’tsend就可以了初次登陆的时候因为你没有Project,所以我们可以创建一个Project随后,我们便可以得到以下界面,new1是项目的名称,new1之前的是你项目所在路径,当然你也可以设置其他的名称,尽…

    2022年8月26日
    14
  • ubuntu中文输入法_ubuntu如何设置中文输入法

    ubuntu中文输入法_ubuntu如何设置中文输入法在Ubtuntu12.10中自带了中文输入法,可通过Ctrl+Space进行输入法到切换,在英文系统中同样已经预装了ibus,只需要下载一下简体中文语言包即可。如何安装简体中文语言包?依次选择SytemSetting–>LanguageSupport–>Install/RemoveLanguages后,将出现如下图所示窗口:将右侧Installed栏的选择框勾…

    2022年9月26日
    2
  • [UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一

    [UML] 类图介绍 —— 程序员(灵魂画手)必备画图技能之一统一建模语言(UnifiedModelingLanguage,UML)可分类成:功能模型:从用户的角度展示系统的功能,包括用例图。对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。动态模型:展现系统的内部行为。包括序列图,活动图,状态图。类图说到类图,它包含的东西确实有点多,你去网上看总能看到,同样都是类图,但是好像各有各家的章法,总让人摸不着头脑。要么少个箭头要么实线变成虚线了… 那这个类图到底有没有标准呢?别慌,有的,《大话设.

    2022年7月12日
    21
  • java远程关机,Win7远程桌面以及远程关机设置注意事项

    java远程关机,Win7远程桌面以及远程关机设置注意事项远程桌面注意点在开启远程桌面的时候提示 必须为远程桌面启用 Windows 防火墙例外 顾名思义就是防火墙给阻止了 但是在防火墙里找了又找还是没有找到远程桌面的选项 为了系统的安装也不能把防火墙给关闭 怎么才能把远程桌面添加到防火墙信任呢 原因分析 出现此现象是由于 Windows7 组策略的设置才没有远程桌面这一选项 我们只需要修改下组策略才行解决方法 开始 运行 gpedit msc 计算机配置

    2025年8月25日
    3
  • Vue(27)vue-codemirror实现在线代码编译器「建议收藏」

    Vue(27)vue-codemirror实现在线代码编译器「建议收藏」前言如果我们想在Web端实现在线代码编译的效果,那么需要使用组件vue-codemirror,他是将CodeMirror进行了再次封装支持代码高亮62种主题颜色,例如monokai等等支持js

    2022年7月29日
    45

发表回复

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

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