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)
上一篇 2025年8月23日 上午10:01
下一篇 2025年8月23日 上午10:22


相关推荐

  • snort:预处理器开发HelloWorld

    snort:预处理器开发HelloWorld文章目录参考 1 预处理器回顾 2 README PLUGINS3 spp template c 参考 Snort 预处理插件 HelloWorld 程序开发 Snort 预处理器介绍 详细 本专栏所有相关博文使用的 snort 版本均为 2 9 151 预处理器回顾预处理器在 Snort 应用规则前处理接收到的数据预处理器对每一个数据包只执行一次被捕获的数据包首先经过预处理器 然后经过探测引擎根

    2025年7月22日
    4
  • JSTL —[什么是JSTL,JSTL标签]

    JSTL —[什么是JSTL,JSTL标签]文章目录什么是 JSTLJSTL 环境搭建什么是 JSTLJSP 标准标识库 使用 JSTL 可实现 JSP 页面的逻辑处理 可用于编写各种动态 JSP 页面 JSTL Javaserverpa 即 JSP 标准标签库 是由 JCP Javacommunit 所制定的标准规范 它主要提供给 JavaWeb 开发人员一个标准通用的标签库 并由 Apache 的 Jakarta 小组来维护 开发人员可以利用这些标签取代 JSP 页面上的 Java 代码 从而提高程序的可

    2026年3月17日
    2
  • 双向LSTM (BiLSTM) (双向RNN)

    双向LSTM (BiLSTM) (双向RNN)为什么用双向LSTM?单向的RNN,是根据前面的信息推出后面的,但有时候只看前面的词是不够的,例如,我今天不舒服,我打算____一天。只根据‘不舒服‘,可能推出我打算‘去医院‘,‘睡觉‘,‘请假‘等等,但如果加上后面的‘一天‘,能选择的范围就变小了,‘去医院‘这种就不能选了,而‘请假‘‘休息‘之类的被选择概率就会更大。什么是双向LSTM?双向卷积神经网络的隐藏层要保存两个值,A参与正向计算,A’参与反向计算。最终的输出值y取决于A和A’:即正向..

    2022年6月18日
    58
  • java版微信公众号开发(二):配置token

    java版微信公众号开发(二):配置token

    2021年6月9日
    153
  • C语言输出所有的水仙花数

    C语言输出所有的水仙花数输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为153=1³+5³+3³解题思路:水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和。程序能正常运行并准确输出“水仙花数”。定义i为水仙花数,运用for循环for(❶i=100;❷i<=999;❸i++)先执行❶,再执行❷判断条件是否满足,满足执行下列花括号,最后执行❸,一次循环结束;再执行❷判断条件是否满足,满足执行下列花括号,最后

    2022年7月24日
    9
  • WAIC唯一翻译合作伙伴科大讯飞 语音同传大模型能力全面升级:首字响应仅需2秒

    WAIC唯一翻译合作伙伴科大讯飞 语音同传大模型能力全面升级:首字响应仅需2秒

    2026年3月14日
    2

发表回复

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

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