零java基础搞定微信Server_2_Servlet基础
2016-09-16 16:06
337 查看
本文作者twowinter,发布于2015年,如今整理重发。
这篇文章还是学习孙鑫《JavaWeb开发详解》,消化理解,提炼出知识要点。
常见的Servlet容器是tomcat。
下面是Tomcat服务器接受客户请求并做出响应的图例。
启动tomcat后,打开浏览器确认安装完成。
针对HTTP1.1中定义的7种请求方法Get、Post、Head、Put、Delete、Trace和Option,HttpServlet分别提供了7种doXXX()处理方法。
结合微信的例子来看,它就是继承了HttpServlet,内部用了doGet和doPost两个处理。
Servlet
1 前言
Servlet是整个javaweb的基石,在微信bluelight的DEMO中,CallbackServlet就是整个web处理的入口,所有的消息都是从这边进入的。/** * 微信回调请求处理 */ public class CallbackServlet extends HttpServlet { private static final long serialVersionUID = 1L; private CallbackService service = new CallbackService(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { // 开发者接入验证 String timestamp = req.getParameter("timestamp"); String nonce = req.getParameter("nonce"); String signature = req.getParameter("signature"); String echostr = req.getParameter("echostr"); if (signature.equals(SHA1.gen(WxConfig.TOKEN, timestamp, nonce))) { out(echostr, resp); } else { out("", resp); } } catch (Throwable e) { e.printStackTrace(); out("", resp); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { // 编码格式 req.setCharacterEncoding("UTF-8"); // 验证签名 String timestamp = req.getParameter("timestamp"); String nonce = req.getParameter("nonce"); String signature = req.getParameter("signature"); if (!signature.equals(SHA1.gen(WxConfig.TOKEN, timestamp, nonce))) { out("", resp); return; } // 解析xml Map<String, String> reqMap = parseXml(req.getInputStream()); System.out.println("reqMap=" + reqMap); // 处理请求 String xmlStr = service.handle(reqMap); System.out.println("xmlStr=" + xmlStr); // null 转为空字符串 xmlStr = xmlStr == null ? "" : xmlStr; out(xmlStr, resp); } catch (Throwable e) { e.printStackTrace(); // 异常时响应空串 out("", resp); } } 。。。。。。 }
这篇文章还是学习孙鑫《JavaWeb开发详解》,消化理解,提炼出知识要点。
2 Servlet与Tomcat的介绍
在java中,给我们提供了编写服务器拓展功能的技术-Servlet。它是基于java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。常见的Servlet容器是tomcat。
下面是Tomcat服务器接受客户请求并做出响应的图例。
3 Tomcat的安装
tomcat是一个开源的面向java的web服务器,http://tomcat.apache.org/,安装JDK之后,再下载安装添加环境变量JAVA_HOME即可。启动tomcat后,打开浏览器确认安装完成。
4 Servlet接口
Tomcat提供了Servlet接口供大家编写自己的Servlet,但我们没必要自己造轮子,已经有很多具体的实现类:如公共类GenericServlet,如针对Http协议的HttpServlet。HttpServlet是继承于GenericServlet。针对HTTP1.1中定义的7种请求方法Get、Post、Head、Put、Delete、Trace和Option,HttpServlet分别提供了7种doXXX()处理方法。
结合微信的例子来看,它就是继承了HttpServlet,内部用了doGet和doPost两个处理。
虚拟目录
在conf/server.xml中可以配置虚拟目录。相关文章推荐
- 零java基础搞定微信Server_4:写一个servlet的demo
- 零java基础搞定微信Server_2:Servlet基础
- 零java基础搞定微信Server_4_写一个servlet的DEMO
- 零java基础搞定微信Server_1_XML基础
- 零java基础搞定微信Server
- 零java基础搞定微信Server_5:启用微信公众号开发模式
- 零java基础搞定微信Server_5_启用微信公众号开发模式
- 零java基础搞定微信Server
- 零java基础搞定微信Server_1:XML基础学习
- 零java基础搞定微信Server_6:微信公众号的文本消息处理
- 零java基础搞定微信Server_7_微信公众号的自定义菜单
- 零java基础搞定微信Server_3:搭建微信Server本地开发环境
- 零java基础搞定微信Server_6_微信公众号文本消息处理
- 零java基础搞定微信Server_3_搭建微信Server本地开发环境
- 零java基础搞定微信Server_7:微信公众号的自定义菜单
- Java Web 第二天 Servlet基础
- ArcGIS Server for Java安装基础
- 《Servlet与JSP核心编程》笔记(Note of 《Core Servlets and JavaServer Pages:Volume 1:Core Technologies 2nd》)
- 传智播客Java web之 Servlet基础补充
- 几个比较好的java学习网站(Struts,Servlet,jar源码,hibernate,java基础知识)