jsoncpp 一. json基础 类型: 1. Json::Value为主要数据类型; 2. Json::Reader将文件流或字符串创解析到Json::Value中,主要使用parse函数;3. Json::Writer:与JsonReader相反,将Json::Value转换成字符串流等,Writer类是一个纯虚类,并不能直接使用。在此我们使用 Json::Writer 的子类:son::FastWriter(将数据写入一行,没有格式),Json::StyledWriter(按json格式化输出,易于阅读) 二. 解析json 1. 从内存解析json void f() { Json::Value root; Json::Reader reader; char str[] = "{\"name\" : \"liushall\", \"age\" : 20, \ \"files\" : [\"1.json\", \"2.json\ 继续阅读 >>


王良 18/04/15 23:47:04
JSP生命周期 由于在Servlet中编写HTML很麻烦,可以使用JSP来编写HTML。JSP与Servlet是一体的两面。因为JSP最后还是会被容器转译为Servlet源代码、自动编译为.class文件、载入.class文件,然后生成Servlet对象。 在编写Servlet时,可以重新定义init()方法作Servlet的初始化,重新定义destroy()进行Servlet销毁前的收尾工作。JSP在转译为Servlet并载入容器生成对象之后,会调用_jspInit()方法进行初始化工作,而销毁前则是调用_jspDestroy()方法进行善后工作。在Servlet中,每个请求到来时,容器会调用service()方法,而在JSP转译为Servlet后,请求的到来则是调用_jspService()方法。 Servlet到JSP的转换 指示元素 <%@指示类型 ... %> JSP指示元素的主要目的,在于指示容器将JSP转译为Servlet源代码时一些必须遵守的信息。 常 继续阅读 >>


贺含悦 18/03/11 00:23:05
过滤器概述 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不过滤器是用来拦截请求的,而不是处理请求的。 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。 其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。可以理解为,Filter来决定是否调用Servlet!当执行完成Servlet的代码后,还会执行Filter后面的代码。 过滤器hello world 其实过滤器与Servlet很相似,写一个类,实现Servlet接口!没错,写过滤器就是写一个类,实现Filter接口。 public class HelloFilter implements Filter { public void init(Fi 继续阅读 >>


贺含悦 18/03/10 22:30:10
监听器是JAVAWeb开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1)什么是web监听器?   web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,比如ServletContext、HttpSession、ServletRequest的创建和销毁,变量的创建、销毁和修改等。可以在某些动作前后增加处理,实现监控。 2)监听器常用的用途: 加载初始化信息:利用ServletContextListener 统计在线人数:利用HttpSessionListener 统计网站访问量 实现访问监控 3)接下里看看一个监听器的创建以及执行过程   首先需要创建一个监听器,实现某种接口,例如我想实现一个对在线人数的监控,可以创建如下的监听器: public class MyListener implements HttpSessionListener{ private int userNumber = 0; pu 继续阅读 >>


贺含悦 18/03/10 21:50:51
每个Servlet都必须由Web容器读取Servlet设置信息,才可以真正成为一个Servlet。对于每个Servlet的设置信息,web容器会为其生成一个ServletConfig作为代表对象,我们可以从这个对象取得Servlet初始参数,以及代表整个web应用程序的ServletContext对象。 Servlet、ServletConfig、GenericServlet 在Servlet接口上,定义了一个与Servlet生命周期及请求服务相关的init()、service()、destroy()三个方法: init():容器启动后产生ServletConfig对象后,会调用Servlet接口的该方法,并将ServletConfig对象当作参数传入。 service():在请求到来容器时,会产生HttpServletRequest与HttpServletResponse对象,并在调用该方法时当作参数传入。 destory():对Servlet的一些善后工作。 ServletConfig就 继续阅读 >>


贺含悦 18/03/10 21:14:17
会话管理基本原则 使用隐藏域 在HTTP协议中,服务器是没有记忆功能的,每个请求对服务器来说都是新请求。 所以就有了隐藏域,隐藏域是主动告知服务器多次请求间必要信息的方式之一。 如何将上一次的结果成为下一次请求的隐藏域呢? 做法之一就是将上一次的结果发送至服务器,由服务器将上一次的结果以隐藏域的方式再响应给浏览器。 比如调查问卷,第一页的结果会在第二页成为隐藏域,当第二页发送后,可以看到两页问卷的所有答案。 ... @WebServlet("/questionnarie") public class Questionnaire extends HttpServlet { protected void processRequest(HttpServlertRequest request, HttpServletResponse response) throws ServletException, IOException 继续阅读 >>


贺含悦 18/02/28 22:19:23
从容器到HttpServlet 有关HTTP请求的相关信息,是如何变成相对应的Java对象的呢? 当请求来到HTTP服务器,服务器将请求转交给Web容器的时候,Web容器会创建一个代表当次请求的HttpServletRequest对象,并给这个对象设置请求的相关信息。同时,容器也会创建一个作为稍后对客户端进行响应的HttpServletResponse对象。 接着,容器会根据读取的@WebServlet标注或web.xml的设置,找出处理该请求的Servlet,调用它的service()方法,将创建的HttpServletRequest对象和HttpServletResponse对象传入作为参数,service()方法中会根据HTTP请求的方式,调用对应的doxxx()方法。 例如,若为GET,调用doGet()方法,那么在该方法中就可以使用两个传入的对象了。可以使用getParameter()取得请求参数,使用getWriter()取得输出用的PrintWriter()对象,并进行各项响应处理 继续阅读 >>


贺含悦 18/02/28 22:19:03
1. bug描述 今天写代码的时候出现了一个问题, 前端页面的一些小图标不见了, F12之后, 发现报错信息如下: Failed to decode downloaded font: http://localhost:8080/font-awesome-4.7.0/fonts/fontawesome-webfont 当然这只是其中的一条, 因为由好几个图标都不能显示, 所以有好几条这样的报错信息. 2. bug解决 我先google了一下这个错误信息, 并没有找到正确的解决方案, 但是有一个博主说是因为工程中使用了Maven, 没有在pom.xml设置过滤信息, 从而导致了bug, 具体解释点击这里. 然而这并没有解决我的问题, 因为我的pom.xml和他的格式不一样, 并且没有设置任何拦截. 但是这位博主给了我一个重要的提示, 那就是查看我的过滤器!!! 果然问题出现在过滤器中, 在过滤器中的非过滤URI字段数组中, 我只添加了css/js/img等, 而没有添加这个用于显示图标的” 继续阅读 >>


祝一迪 17/12/23 00:26:07
第一个Servlet程序 package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello.view") public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, 继续阅读 >>


贺含悦 17/12/19 00:47:45
第一个Servlet程序 package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello.view") public class HelloWorld extends HttpServlet { @Override protected void doGet(HttpServletRequest request, 继续阅读 >>


贺含悦 17/12/19 00:47:45