-
Java超市进销存系统毕业设计完整版
Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版Java超市进销存系统毕业设计完整版Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版,Java超市进销存系统毕业设计完整版
- 2022-01-25 14:13:29下载
- 积分:1
-
微信公众平台开发模式(JAVA) SDK/微信app
【核心代码】package com.gson;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Date;import java.util.Properties;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.gson.bean.Articles;import com.gson.bean.InMessage;import com.gson.bean.OutMessage;import com.gson.bean.TextOutMessage;import com.gson.inf.MessageProcessingHandler;import com.gson.util.Tools;import com.gson.util.XStreamFactory;import com.thoughtworks.xstream.XStream;/** * 请求拦截 * * @author GodSon * */public class WeChatFilter implements Filter { private final Logger logger = Logger.getLogger(WeChatFilter.class); private String _token; private String conf = "classPath:wechat.properties"; private String defaultHandler = "com.gson.inf.DefaultMessageProcessingHandlerImpl"; private Properties p; @Override public void destroy() { logger.info("WeChatFilter已经销毁"); } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; Boolean isGet = request.getMethod().equals("GET"); String path = request.getServletPath(); String pathInfo = path.substring(path.lastIndexOf("/")); if (pathInfo == null) { response.getWriter().write("error"); } else { _token = pathInfo.substring(1); if (isGet) { doGet(request, response); } else { doPost(request, response); } } } private void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/xml"); OutMessage oms = new OutMessage(); ServletInputStream in = request.getInputStream(); // 转换微信post过来的xml内容 XStream xs = XStreamFactory.init(false); xs.alias("xml", InMessage.class); String xmlMsg = Tools.inputStream2String(in); logger.debug("输入消息:[" xmlMsg "]"); InMessage msg = (InMessage) xs.fromXML(xmlMsg); // 获取自定消息处理器,如果自定义处理器则使用默认处理器。 String handler = p.getProperty("MessageProcessingHandlerImpl"); if (handler == null) handler = defaultHandler; try { // 加载处理器 Class clazz = Class.forName(handler); MessageProcessingHandler processingHandler = (MessageProcessingHandler) clazz.newInstance(); // 取得消息类型 String type = msg.getMsgType(); Method mt = clazz.getMethod(type "TypeMsg", InMessage.class); oms = (OutMessage) mt.invoke(processingHandler, msg); if (oms == null) { oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); } setMsgInfo(oms,msg); } catch (Exception e) { logger.error(e); oms = new TextOutMessage(); ((TextOutMessage) oms).setContent("系统错误!"); try { setMsgInfo(oms,msg); } catch (Exception e1) { logger.error(e); } } // 把发送发送对象转换为xml输出 xs = XStreamFactory.init(true); xs.alias("xml", oms.getClass()); xs.alias("item", Articles.class); String xml = xs.toXML(oms); logger.debug("输出消息:[" xml "]"); response.getWriter().write(xml); } private void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { String signature = request.getParameter("signature");// 微信加密签名 String timestamp = request.getParameter("timestamp");// 时间戳 String nonce = request.getParameter("nonce");// 随机数 String echostr = request.getParameter("echostr");// // 验证 if (Tools.checkSignature(_token, signature, timestamp, nonce)) { response.getWriter().write(echostr); } } private void setMsgInfo(OutMessage oms,InMessage msg) throws Exception { // 设置发送信息 Class outMsg = oms.getClass().getSuperclass(); Field CreateTime = outMsg.getDeclaredField("CreateTime"); Field ToUserName = outMsg.getDeclaredField("ToUserName"); Field FromUserName = outMsg.getDeclaredField("FromUserName"); ToUserName.setAccessible(true); CreateTime.setAccessible(true); FromUserName.setAccessible(true); CreateTime.set(oms, new Date().getTime()); ToUserName.set(oms, msg.getFromUserName()); FromUserName.set(oms, msg.getToUserName()); } /** * 启动的时候加载wechat.properties配置 可以在过滤器配置wechat.properties路径 */ @Override public void init(FilterConfig config) throws ServletException { String cf = config.getInitParameter("conf"); if (cf != null) { conf = cf; } String classPath = this.getClass().getResource("/").getPath().replaceAll("%20", " "); conf = conf.replace("classPath:", classPath); p = new Properties(); File pfile = new File(conf); if (pfile.exists()) { try { p.load(new FileInputStream(pfile)); } catch (FileNotFoundException e) { logger.error("未找到wechat.properties", e); } catch (IOException e) { logger.error("wechat.properties读取异常", e); } } logger.info("WeChatFilter已经启动!"); }}
- 2014-01-21下载
- 积分:1
-
失物招领系统
失主可以通过网络进入到本系统,查询自己丢失的物品是否已被好心人拾到并交给了招领中心和对好心人的感谢等;拾到物品的人可以通过该系统直接发布拾到物品的信息;管理员可通过本系统对失物信息、报失信息、留言...
- 2023-01-07 11:10:03下载
- 积分:1
-
单片机
单片机,基于1602的液晶屏显示代码+文本,详细版。
单片机,基于1602的液晶屏显示代码+文本,详细版。(Single chip microcomputer, based on the 1602 LCD screen display code + text, detailed version. Single chip microcomputer, based on the 1602 LCD screen display code + text, detailed version.
Singlechip)
- 2018-10-12 13:22:35下载
- 积分:1
-
AvdStartDialog
Avd Start Dialog Source Code for Andriod.
- 2013-10-24 10:34:54下载
- 积分:1
-
登录注册代码
登录注册代码
- 2014-01-08下载
- 积分:1
-
Android 文件管理器源码(可直接运行)
此源码是Android平台下,Java编写的文件管理器,有视频,图片,压缩包,等分类管理,删除,移动等主要功能
- 2022-08-24 16:03:33下载
- 积分:1
-
oracle数据库连接模板
java项目开发中oracle数据库的连接及一些操作的模板类,包括管理数据库连接类(作用是连接数据库)、jdbc模板类(作用是执行sql语句、关闭数据库)、读取配置文件类、共有DAO类
- 2023-04-19 20:45:03下载
- 积分:1
-
Android-API-
android API chm文档,希望对大家有帮助。
里面邮箱系的说明,更主要的是他是中文版的哦(The Android API chm document, we want to help. Inside the mailbox Department, the main thing is that he is a Chinese version of Oh)
- 2013-04-22 14:06:36下载
- 积分:1
-
11600dh
备注:网站收录登陆地址(http://你的域名/control/Admin-Login.asp)
账号:admin 密码:11600admin
11600导航是以简单、实用为主旨的网址导航。11600导航也同时提供新网站登录服务。
整个源码设计主要以简约、实用、易用为主,虽然简约,但其中的模式值得我们这些网址导航站长去借鉴(Note: the site contains the login address (http:// your domain name /control/Admin-Login.asp)
Account: admin Password: 11600admin
11600 navigation is simple, practical for the purpose of Web site navigation. 11600 navigation also provides new site login service.
The main source of the design is simple, practical, easy to use, although simple, but the model is worth us to learn these web site navigation master)
- 2017-01-31 11:52:26下载
- 积分:1