nutz servlet添加 并 获取service

简介:   web.xml weichatServlet cn.hy.weixin.controller.WeichatServlet weichatServlet /weichat.

 

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
【Tomcat技术专题】循序渐进,分析Servlet容器鼻祖的Server和Service组件原理
【Tomcat技术专题】循序渐进,分析Servlet容器鼻祖的Server和Service组件原理
169 0
【Tomcat技术专题】循序渐进,分析Servlet容器鼻祖的Server和Service组件原理
|
存储 前端开发 Java
servlet初识,认识service()方法
servlet初识,认识service()方法
220 0
servlet初识,认识service()方法
|
API 容器
Servlet - service 方法重写问题
Servlet - service 方法重写问题
275 0
|
设计模式 Java 网络安全
【Spring注解驱动开发】面试官:如何将Service注入到Servlet中?朋友又栽了!!
最近,一位读者出去面试前准备了很久,信心满满的去面试。没想到面试官的一个问题把他难住了。面试官的问题是这样的:如何使用Spring将Service注入到Servlet中呢?这位读者平时也是很努力的,看什么源码啊、多线程啊、高并发啊、设计模式啊等等。没想到却在一个很简单的问题上栽了跟头,这就说明学习知识要系统化,要有条理,切忌东学一点,西记一点,否则,到头来,啥也学不到。
184 0
|
Java Spring 前端开发
Spring开发 - 通过实现ApplicationContextAware在Servlet中调用注解的Service
用过Spring MVC的人都知道,我们如何在Controller中注入Service,可以使用@Resource注解的方法。 有时候,实际在项目的过程中,我们需要在某个Servlet中使用Service, 但是由于Spring MVC中的Servlet都是由 DispatcherServlet统一管理的,因此,像Controller方式的注解方式注入在普通的Servlet中是行不通的。
1196 0
|
Java Spring 容器
如何使用spring将service层注入到servlet中去(how to use Spring to inject ur service layer into the servlet )
In a typical struts+spring framework, we know how to inject our “service” into the “action”.
896 0
|
3月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
36 3
|
3月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
34 1
|
3月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
55 0
|
3月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
29 0