web.xml
<servlet> <servlet-name>weichatServlet</servlet-name> <servlet-class>cn.hy.weixin.controller.WeichatServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>weichatServlet</servlet-name> <url-pattern>/weichat.do</url-pattern> </servlet-mapping>
servlet
package cn.hy.weixin.controller; import java.io.IOException; import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.mvc.Mvcs; import cn.hy.activity.data.Activity; import cn.hy.activity.service.ActivityService; import cn.hy.weixin.entity.AccessToken; import cn.hy.weixin.util.AccessTokenUtil; import cn.hy.weixin.util.CheckUtil; import cn.hy.weixin.util.MessageUtil; import net.sf.json.JSONObject; public class WeichatServlet extends HttpServlet{ private static final long serialVersionUID = 3264201758083219979L; public 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"); System.out.println("signature="+signature); System.out.println("timestamp="+timestamp); System.out.println("nonce"+nonce); PrintWriter out = response.getWriter(); if(CheckUtil.checkSignature(signature, timestamp, nonce)){ out.print(echostr); } } public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{ request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); try { Map<String,String> map = MessageUtil.xmlToMap(request); String toUserName = map.get("ToUserName"); String fromUserName = map.get("FromUserName"); String msgType = map.get("MsgType"); String content = map.get("Content"); for(String str : map.keySet()) { System.out.println("key..." + str + " " + map.get(str)); } String message = null; if(MessageUtil.MESSAGE_EVENT.equals(msgType)){ String eventType = map.get("Event"); System.out.println("msgType" +msgType); System.out.println("scene_id = " + map.get("EventKey"));//获取二维码自定义参数 if(MessageUtil.MESSAGE_EVENT_SUBSCRIBE.equals(eventType)){//关注事件 //创建自定义菜单 AccessToken token = AccessTokenUtil.getAccessToken(); String menu = JSONObject.fromObject(MessageUtil.initMenu()).toString(); int result = MessageUtil.createMenu(token.getToken(), menu); System.out.println("-------------------------------------"); System.out.println(token.getToken()); System.out.println(menu +"\r\n"+menu.getBytes().length); System.out.println("--crate menu--"+result +"--------------"); System.out.println("-------------------------------------"); int activityId =0; String sceneId = map.get("EventKey"); if(sceneId != null && sceneId !=""){ try{ activityId =Integer.parseInt(sceneId.split("_")[1]); }catch(Exception e){ activityId =0; } } if(activityId == 0 ){ message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage()); }else{ ActivityService activityService = (ActivityService) Mvcs.ctx().getDefaultIoc().get(ActivityService.class); System.out.println("activityService"+activityService); Activity activity = activityService.getActivityDetail(activityId); StringBuffer sb =new StringBuffer(); sb.append("名称: "+ activity.getName()+"\n\n"); sb.append("活动代码: "+ activity.getCode()+"\n\n"); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage(sb)); } } if(MessageUtil.MESSAGE_EVENT_UNSUBSCRIBE.equals(eventType)){//取消关注 //todo } if(MessageUtil.MESSAGE_EVENT_VIEW.equals(eventType)) { System.out.println("here...." + eventType); } } else if(MessageUtil.MESSAGE_TEXT.equals(msgType)){ if(content.equals("1")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.fristKey()); System.out.println("message------------------------" +message); }else if(content.equals("2")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.secKey()); }else if(content.equals("3")){ System.out.println("toUserName------------------------" +toUserName); message = MessageUtil.initNews(toUserName, fromUserName); }else if(content.equals("?") || content.equals("?")){ message = MessageUtil.initText(toUserName, fromUserName, MessageUtil.initMenuMsaage()); } } out.print(message); } catch (Exception e) { e.printStackTrace(); }finally{ out.close(); } } }
service 获取
ActivityService activityService = (ActivityService) Mvcs.ctx().getDefaultIoc().get(ActivityService.class);
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(支持支付宝和微信 以及扣扣群),没钱捧个人场,谢谢各位。
个人主页:http://knight-black-bob.iteye.com/
谢谢您的赞助,我会做的更好!
相关推荐
在开发Java应用时,Nutz Redis模块是一个非常实用的工具,它使得我们能够方便地将Nutz框架与Redis键值存储系统相结合。本篇文章将详细阐述Nutz Redis集成过程中的关键知识点,以及如何避免因依赖包问题导致的困扰。 ...
`nutz-mvc`包括了`nutz-web`和`nutz-wk`,前者处理Web相关的功能,后者是Nutz的Web容器,提供了Servlet的替代方案,使得开发者可以脱离传统的Servlet容器运行Nutz应用。 在进行Web开发时,我们还需要`nutz-plugin-...
**Nutz+ExtJS示例教程...这个示例教程旨在帮助开发者理解如何在Nutz后端构建Service,并与ExtJS前端进行交互,实现数据的动态展示。通过实践,你可以掌握这两种技术的结合使用,从而提升Web应用的开发效率和用户体验。
本篇文章将详细介绍如何利用Nutz搭建MVC框架,并探讨其在实际开发中的优势。 **一、Nutz MVC框架介绍** Nutz MVC是Nutz框架的一部分,它基于Servlet容器运行,通过注解驱动,简化了Java Web应用的开发流程。Nutz ...
接着,我们需要下载并添加Nutz框架到我们的项目中。Nutz的MVC模块提供了一种简单的方式来组织和管理Web应用的各个部分。 1. **创建新项目** - 在NetBeans中,选择“文件”->“新建项目”,然后在“Java Web”类别...
接着,我们需要配置 `nutz-plugin-multiupload` 插件,这可能涉及到在 `conf/nutz.conf` 文件中添加相应的配置项,例如设置临时文件路径、最大文件大小等参数。 在代码实现上,Nutz 提供了 `org.nutz....
总的来说,"nutz生成javabean工具.zip"中的Nutz Codematic是一个强大的辅助开发工具,能够帮助Java开发者快速生成符合规范的JavaBean,提高工作效率,并与Nutz框架的其他部分紧密结合,促进项目的顺利进行。...
【Nutz代码生成器】是基于Nutz框架开发的一款实用工具,主要用于自动化生成Action和实体类代码,极大地提高了开发效率,降低了手动编写这些基础代码的工作量。Nutz是一款轻量级、高性能的Java开发框架,它集合了ORM...
8. **社区与版本更新**:Nutz框架拥有活跃的社区,开发者可以在其中获取最新的框架资讯、参与讨论和寻求帮助。手册也会提醒读者关注Nutz框架的版本更新,以利用新功能和改进。 总的来说,"nutz框架使用手册"是学习...
标题“nutz学习资料2”表明这是一份关于Nutz框架的学习资源集合,Nutz是一个基于Java的轻量级框架,旨在提供全面的MVC支持和企业级开发工具。通过这个压缩包,我们可以期待深入理解Nutz框架的核心特性和使用方法。 ...
- 在Nutz项目中添加`nutz-freemarker-plugin.jar`库,配置Nutz的MVC模块,指定视图解析器为Freemarker。 - 配置Freemarker的配置文件(如`freemarker.properties`),设置模板路径、缓存策略等。 2. **模板解析**...
- **社区参与**:鼓励用户提交问题报告并参与到项目的贡献中来,共同促进 Nutz 的发展和完善。 #### 五、Nutz 的未来发展 - **持续演进**:作为一个新兴开源项目,Nutz 致力于不断改进和发展,未来将继续致力于...
在开发项目时,将此jar文件添加到项目的类路径中,就可以使用Nutz提供的各种服务和功能。 4. **Nutz-1.r.61-sources.jar** 这个文件提供了Nutz 1.r.61版本的源代码,对于开发者来说,这是一个宝贵的资源,可以深入...
通过这个Javadoc,开发者可以快速查找并了解Nutz框架中的各个类和方法,从而更好地进行代码编写。 2. `nutz-1.r.58.jar`:这是Nutz框架的核心库文件,包含了框架的所有功能模块。将此jar包添加到项目的类路径中,...
《ztree与nutz在实际应用中的简单使用详解》 在IT行业中,高效地管理和操作数据是至关重要的。zTree和Nutz都是在这方面提供强大支持的工具。zTree是一款基于JavaScript的灵活、强大的树状菜单插件,而Nutz则是一个...
除了DAO层的缓存,Nutz还支持在服务层或业务逻辑层使用缓存,例如通过`CacheFactory`获取缓存实例,并进行手动的缓存操作。这种灵活性使得开发者可以根据业务场景选择最适合的缓存策略。 在标签中提到了"源码",...
- **发展方向**:作为一个新兴的开源项目,Nutz致力于不断优化和完善现有功能,并探索新的特性,以满足更多开发者的需求。 - **长期目标**:维持框架的轻量化和高性能,确保Nutz始终保持敏捷性,适应不断变化的技术...
Nutz是一个轻量级、高性能的Java开发框架,它提供了丰富的功能来支持Web应用程序的开发。这个名为"Nutz应用示例"的项目...开发者可以通过分析和运行这个项目,深入理解Nutz的工作原理,并提升自己的Java Web开发技能。
综上所述,"nutz邮箱验证jar包"是一个集成在Nutz框架中的实用工具,它简化了Java应用中的电子邮件验证流程,提高了开发效率,并考虑到了安全性、可扩展性等多个方面。在实际项目中,开发者可以通过合理利用这个jar包...