openfire插件开发-外界进行http请求

将Servlet做成一个插件,让外界不需要登录就可以进行http请求访问openfire

package org.jivesoftware.openfire.plugin;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jivesoftware.admin.AuthCheckFilter;
import org.jivesoftware.openfire.XMPPServer;
import org.jivesoftware.openfire.plugin.handle.HandleMsg;
import org.jivesoftware.util.JiveProperties;
import org.json.JSONException;
import org.json.JSONObject;
import org.xmpp.packet.JID;
import org.xmpp.packet.Message;

public class ExampleServlet extends HttpServlet {

	private static final long serialVersionUID = -6093345417438012819L	
	
	@Override
	
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	
	throws ServletException, IOException {
	
		// super.doGet(req, resp);
		
		 resp.setContentType("text/plain");
		
		 PrintWriter out = resp.getWriter();
		
		 System.out.println("example servlet dogetbbbb");
		
		 out.print("example servlet dogetbbbb");
		
		 out.flush();
	
	 }
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
		
		req.setCharacterEncoding("UTF-8");
		resp.setCharacterEncoding("UTF-8");		
		
		String result = null;
		JSONObject jsonObject = null;
		try {
			result = req.getParameter("json");
			jsonObject = new JSONObject(result);
			System.out.println("请求报文:" + result);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
			
			try {
				BufferedReader br = new BufferedReader(
						new InputStreamReader((ServletInputStream) req.getInputStream(), "utf-8"));
				StringBuffer sb =new StringBuffer("");
				String temp;
				while((temp=br.readLine())!=null){
					sb.append(temp);
				}
				br.close();
				result = sb.toString();
				jsonObject = new JSONObject(result);
				System.out.println("请求报文:" + result);
				}catch (Exception e1) {
					result = "{err:\"error\"}";
				} 
		}finally{
			PrintWriter pw = resp.getWriter();
			pw.write(HandleMsg.handleMsg(jsonObject));
			pw.flush();
			pw.close();
		}
			
			
	}	
	
	@Override
	public void destroy() {
		super.destroy();
	}
	
	@Override
	public void init() throws ServletException {
		super.init();
		AuthCheckFilter.addExclude("example/servlet");//外界访问权限
		AuthCheckFilter.addExclude("example/servlet/exampleServlet");//外界访问权限
	
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值