<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zhi_it_coder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhi_it_coder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhi_it_coder]]></copyright><item><title><![CDATA[Javaweb 过滤器与重定向的关系]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/109013535</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/109013535</guid><author>zhi_it_coder</author><pubDate>Sun, 11 Oct 2020 16:43:37 +0800</pubDate><description><![CDATA[过滤器与重定向的关系

在Web开发中我们经常要写过滤器，现在我们用Javaweb中过滤器Filter（位于 javax.servlet包下）来讨论。

面临需求：
做一个请求资源的过滤器，要求登录后的用户并且session没有过期的情况下，任然可以通过直接登录后的页面。

思路：根据需求，我们可以简单的知道只需要在过滤器中，拿到session取登录的用户信息，如果存在，那就表示可以访问；如果没有那就报错，让重新登录。
根据思路，写出代码：
public class SysFilter implements]]></description><category></category></item><item><title><![CDATA[Git 安装和使用教程]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/83352475</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/83352475</guid><author>zhi_it_coder</author><pubDate>Wed, 24 Oct 2018 22:59:25 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/smuxiaolei/p/7484678.html

]]></description><category></category></item><item><title><![CDATA[程序设计基础概念1]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/83213091</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/83213091</guid><author>zhi_it_coder</author><pubDate>Sat, 20 Oct 2018 14:21:24 +0800</pubDate><description><![CDATA[程序设计基础概念之
赋值语句：
面试例题1： 下面C++代码的输出结果是什么？

//C/C++ code
int i = 1;
void main()
{
	int i = i;
}
A.main()里的i是一个未定义值
B.main()里的i值为1
C.编译器不允许这种做法
D.main()里的i值为0

解析：当面试者看到int i=i；的时候，可能会认为编译器不允许这种写法，即无法通过编译...]]></description><category></category></item><item><title><![CDATA[delete[]p和delete p的区别.md]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82932775</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82932775</guid><author>zhi_it_coder</author><pubDate>Wed, 03 Oct 2018 17:29:22 +0800</pubDate><description><![CDATA[new、delete、malloc、free的关系：
delete会调用对象的析构函数,和new对应，free只会释放内存，new调用构造函数。malloc与free是C++/C语言的标准库函数，new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言，光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数，对象在消亡之前要...]]></description><category></category></item><item><title><![CDATA[链表和数组的区别.md]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82931538</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82931538</guid><author>zhi_it_coder</author><pubDate>Wed, 03 Oct 2018 14:18:27 +0800</pubDate><description><![CDATA[链表和数组的区别及它们各自的常规操作：
链表和数组的区别：
1.存储形式：数组是一块连续的空间，声明是就要确定长度。而链表是一块可不连续的动态
空间，长度可变，每个节点都要保存相邻节点指针。
2.数据查找：数组的线性查找速度快，查找直接使用下标（偏移地址）。链表需要按顺序检索节点，
效率很低。
3.数据插入和删除：链表可以很快插入和删除节点，但是数组可能需要移动大量的数据。
4.越界问题：链表不存...]]></description><category></category></item><item><title><![CDATA[数组指针和指针数组及引用的简单理解.md]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82929701</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82929701</guid><author>zhi_it_coder</author><pubDate>Wed, 03 Oct 2018 01:26:00 +0800</pubDate><description><![CDATA[a和&amp;amp;a的区别，及指针数组和数组指针的简单理解：
以代码的形式解释：
#include &amp;lt;iostream&amp;gt;
using namespace std;

int main()
{
	//a是数组时，a 和 &amp;amp;a的区别
	int a[5] = { 1,2,3,4,5 };
	int *ptr1 = (int *)(&amp;amp;a+1);
	ptr1--;
	cout &amp;lt...]]></description><category></category></item><item><title><![CDATA[strcpy和sprintf和memcpy的区别.md]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82917093</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82917093</guid><author>zhi_it_coder</author><pubDate>Mon, 01 Oct 2018 16:10:37 +0800</pubDate><description><![CDATA[strcpy、sprintf和memcpy的区别
下面代码说明：
#include &amp;lt;iostream&amp;gt;
using namespace std;
#include &amp;lt;string.h&amp;gt;
void strcpyMethod()
{
	/*
	char *strcpy(char *dest, const char *src) ：C 库函数 把 src 所指向的字符串复制到 d...]]></description><category></category></item><item><title><![CDATA[sizeof与strlen.md]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82913162</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/82913162</guid><author>zhi_it_coder</author><pubDate>Sun, 30 Sep 2018 20:20:16 +0800</pubDate><description><![CDATA[**sizeof与strlen的区别： **
下面以代码的形式来解释
#include &amp;lt;iostream&amp;gt;
using namespace std;
int main()
{
	cout &amp;lt;&amp;lt; sizeof(int) &amp;lt;&amp;lt;&quot;\t&quot;&amp;lt;&amp;lt;sizeof(double)&amp;lt;&amp;lt; endl;
	
	int x = 3;
	cout &amp;lt;&amp;lt]]></description><category></category></item><item><title><![CDATA[加一：给定一个非负整数组成的非空数组，在该数的基础上加一，返回一个新的数组。  最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。  你可以假设除了整数 0 之外，这个整数不会以零开头。]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/80976356</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/80976356</guid><author>zhi_it_coder</author><pubDate>Mon, 09 Jul 2018 19:53:13 +0800</pubDate><description><![CDATA[LeetCode：加一

给定一个非负整数组成的非空数组，在该数的基础上加一，返回一个新的数组。

最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外，这个整数不会以零开头。 

程序如下：

#include &amp;lt;iostream&amp;gt;
using namespace std;
#include &amp;lt;vector&amp;gt;

vector&amp;lt;...]]></description><category></category></item><item><title><![CDATA[Python源文件改写]]></title><link>https://blog.youkuaiyun.com/zhi_it_coder/article/details/80740078</link><guid>https://blog.youkuaiyun.com/zhi_it_coder/article/details/80740078</guid><author>zhi_it_coder</author><pubDate>Tue, 19 Jun 2018 22:48:03 +0800</pubDate><description><![CDATA[Python源文件改写：

## 编写一个程序，读取一个python源程序文件，将文件中所有除保留字之外的小写字母换成字母，并且生成文件要能够被Python解释器正确执行。 ##


以下给出程序：

# -*- coding :utf-8 -*-
import keyword
f = open('test.py')
content  = f.read()
f.close()

table = [...]]></description><category></category></item></channel></rss>