Skip to content

Commit e141e8b

Browse files
committed
进行一些纠正
1 parent 16bea70 commit e141e8b

42 files changed

Lines changed: 275 additions & 216 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Centos安装工具文集/redis安装以及java连接.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
###1.什么是redis
1+
### 1.什么是redis
22
>Redis是一个开源的使用ANSI [C语言](https://baike.baidu.com/item/C%E8%AF%AD%E8%A8%80)编写、支持网络、可基于内存亦可持久化的日志型、Key-Value[数据库](https://baike.baidu.com/item/%E6%95%B0%E6%8D%AE%E5%BA%93),并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
33
4-
###2.redis用在什么场景
4+
### 2.redis用在什么场景
55
简括四个字:读多写少
6-
###3.Redis安装(Linux)
6+
### 3.Redis安装(Linux)
77
http://download.redis.io/releases/redis-4.0.2.tar.gz
88
```
99
$ wget http://download.redis.io/releases/redis-4.0.2.tar.gz
1010
$ tar xzf redis-4.0.2.tar.gz
1111
$ cd redis-4.0.2
1212
$ make
1313
```
14-
###4.redis启动
14+
### 4.redis启动
1515
![image.png](http://upload-images.jianshu.io/upload_images/5786888-9378c775e186f5d1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1616
启动成功界面:
1717
![image.png](http://upload-images.jianshu.io/upload_images/5786888-dd32d3558c0eabf9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Java-Servlet/Java-HttpRequest-详解.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
HttpServlet 类需要两个参数HttpRequest和HttpResponse。比如doGet方法
24
```
35
protected void doGet(
@@ -12,7 +14,7 @@ HttpRequest对象的目的是代替浏览器把Http请求发送给web应用,
1214

1315
HttpRequest对象有很多方法,这里只介绍重要的,剩余的有兴趣的话你可以自己看JavaDoc。
1416

15-
#####参数
17+
##### 参数
1618
请求参数是从浏览器连同请求一起发送的参数。 请求参数通常作为URL的一部分(在“查询字符串”中)或作为HTTP请求主体的一部分发送。 例如:
1719
```
1820
www.baidu.com?param1=hello&param2=world
@@ -34,7 +36,7 @@ protected void doGet(HttpServletRequest request,HttpServletResponse response)
3436
```
3537
通常,如果浏览器发送HTTP GET请求,则参数将包含在URL中的查询字符串中。 如果浏览器发送HTTP POST请求,则参数将包含在HTTP请求的正文部分(form)中。
3638

37-
#####请求头
39+
##### 请求头
3840

3941
请求头是浏览器伴随HttpRequest发送的的一个'键值对',请求标题包含关于例如 使用什么浏览器软件,浏览器能够接收哪些文件类型等等。
4042
我们可以使用HttpRequest对象来接受请求头:
@@ -43,7 +45,7 @@ String contentLength = request.getHeader("Content-Length");
4345
```
4446
Content-Length头包含在HTTP请求正文中发送的字节数,以防浏览器发送HTTP POST请求。 如果浏览器发送HTTP GET请求,则不使用Content-Length标头,并且上述代码将返回null。
4547

46-
#####输入流
48+
##### 输入流
4749
如果浏览器发送HTTP POST请求,请求参数和其他潜在数据将发送到HTTP请求正文中的服务器。 它不一定是在HTTP请求主体中发送的请求参数。 它可能几乎是任何数据,如文件或SOAP请求(Web服务请求)。
4850

4951
为了可以访问HTTP POST请求的主题内容,我们可以用inputStream。这是一个例子:
@@ -52,7 +54,7 @@ InputStream requestBodyInput = request.getInputStream();
5254
```
5355
注意:在调用任何getParameter()方法之前,您必须调用此方法,因为在HTTP POST请求上调用getParameter()方法将导致servlet引擎 解析 HTTP请求主体 以 获取参数。 一旦分析完毕,就无法再以原始字节流的形式访问主体。
5456

55-
#####Session
57+
##### Session
5658
也可以从HttpRequest对象获取Session对象。
5759

5860
Session对象可以在请求之间保存关于给定用户的信息。 因此,如果您在一个请求期间将对象设置为会话对象,则它可供您在同一会话时间范围内的任何后续请求和期间读取。
@@ -61,7 +63,7 @@ Session对象可以在请求之间保存关于给定用户的信息。 因此,
6163
```
6264
HttpSession session = request.getSession();
6365
```
64-
#####ServletContext
66+
##### ServletContext
6567

6668
也可以从HttpRequest对象中获取ServletContext对象。ServletContext包含一些web应用信息。例如,能获取到web.xml文件里的一些参数,也能将request请求转发给别的Servlet,也能在ServletContext里存储一些应用参数。
6769
这是获取ServletContext的例子:

Java-Servlet/Java-HttpResponse-详解.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
HttpServlet 类需要两个参数HttpRequest和HttpResponse。比如doGet方法
24
```
35
protected void doGet(
@@ -11,40 +13,40 @@ HttpResponse对象的目的是为了响应浏览器发送给Web应用程序的HT
1113

1214
HttpResponse对象有很多方法,我会介绍这里最常用的方法。如果你有兴趣其他方法你可以在JavaDoc中阅读。
1315

14-
####Writing HTML
16+
#### Writing HTML
1517

1618
你能获取PrintWriter从HttpResponse对象中然后发送html到浏览器。这是个例子:
1719
```
1820
PrintWriter writer = response.getWriter();
1921
2022
writer.write("<html><body>GET/POST response</body></html>");
2123
```
22-
####Headers
24+
#### Headers
2325

2426
HttpRequest对象可以获取请求头,那么HttpResponse必须设置这些参数。例如:
2527
```
2628
response.setHeader("Header-Name", "Header Value");
2729
```
28-
####Content-Type
30+
#### Content-Type
2931

3032
这个请求头是响应给浏览器说明发送的内容类型。例如,HTML的内容类型是text/html。例如:
3133
```
3234
response.setHeader("Content-Type", "text/html");
3335
```
34-
####写文本
36+
#### 写文本
3537
您可以编写文本回浏览器而不是HTML,
3638
```
3739
response.setHeader("Content-Type", "text/plain");
3840
3941
PrintWriter writer = response.getWriter();
4042
writer.write("This is just plain text");
4143
```
42-
####Content-Length
44+
#### Content-Length
4345
Content-Length告诉浏览器你的响应信息是多少个字节
4446
```
4547
response.setHeader("Content-Length", "31642");
4648
```
47-
####写二进制数据
49+
#### 写二进制数据
4850

4951
你也能写二进制数据给浏览器,例如,你能发送一个图片、pdf文件等。
5052
这样的话,contentType 应该是 image/png。
@@ -55,7 +57,7 @@ OutputStream outputStream = response.getOutputStream();
5557
5658
outputStream.write(...);
5759
```
58-
####URL重定向
60+
#### URL重定向
5961

6062
你可以从servlet从其中重定向一个不同的URL发送给浏览器,当重定向的时候不能发送任何数据。例如:
6163
```

Java-Servlet/Java-HttpServlet-详解.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
javax.servlet.http.HttpServlet类是比Simple Servlet示例中显示的GenericServlet稍高级的基类。
24

35
HttpServlet类读取HTTP请求,并确定请求是否为HTTP GET,POST,PUT,DELETE,HEAD等,并调用一个相应的方法。

Java-Servlet/Java-HttpSession-详解.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
HttpSession 是一个用户的session。session包含了用户信息。
24

35
当用户第一次访问网站时,有一个唯一的ID明确他的身份,这个ID保存在cookie或者一个请求参数里。
@@ -22,7 +24,7 @@ String userName = (String) session.getAttribute("userName");
2224
```
2325
这些session是保存在servlet容器中。
2426

25-
####session丢失问题处理
27+
#### session丢失问题处理
2628
当我们的网站有多个不通的项目服务时,用户请求别的项目服务会存在session找不到的问题,有几个######解决办法:
2729
1. 不使用session。
2830
2. 将session保存到数据库,然后别的服务来获取。

Java-Servlet/Java-RequestDispatcher-详解.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
RequestDispatcher 让两个servlet相互通信成为可能,就像是浏览器发送request请求一样。所以我们可以从HttpRequest中获取到RequestDispatcher对象
24
```
35
protected void doPost(HttpServletRequest request, HttpServletResponse response)
@@ -16,10 +18,10 @@ dispatcher.forward(request, response);
1618
dispatcher.include(request, response);
1719
```
1820

19-
###request.getRequestDispatcher和response.sendRedirct区别
21+
### request.getRequestDispatcher和response.sendRedirct区别
2022
* getRequestDispatcher是服务器内部跳转,地址栏信息不变,只能跳转到web应用内的网页。
2123
* sendRedirect是页面重定向,地址栏信息改变,可以跳转到任意网页。
22-
######getRequestDispatcher实例:
24+
###### getRequestDispatcher实例:
2325
```
2426
request.setAttribute("lover", "fantj");
2527
request.getSession().setAttribute("lovered", "fantj");
@@ -41,7 +43,7 @@ dispatcher.include(request, response);
4143
```
4244
结果显示,地址栏信息仍为http://localhost:8080/Test/second(不变),这三种方式**都可以传值**到第二个Servlet。
4345

44-
#####sendRedirct实例
46+
##### sendRedirct实例
4547
```
4648
//SecondServlet
4749
request.setAttribute("lover", "fantj");
@@ -62,7 +64,7 @@ dispatcher.include(request, response);
6264
```
6365
结果显示,地址栏信息变为http://localhost:8080/Test/third?name=fantj(发生改变),只有request.getAttribute("lover")获取不到值,session范围及url路径后的传值在第二个Servlet都可以获取到值。
6466

65-
######总结
67+
###### 总结
6668
其实我们好好想想,他们需要建立的对象不同,一个是request一个是response。
6769

6870
**request**处理可以想象成帮用户再补充一些请求(根据自己项目的业务逻辑),所以它应该要获取到所有request发送过来的数据,并且让用户感觉不到我们有帮他处理一些事情(因为地址栏信息不变)。

Java-Servlet/Java-Servlet-Cookie-详解.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
HTTP Cookies是Web应用程序可以存储在访问Web应用程序的用户的客户机上的一小部分数据。 通常最多4千字节的数据。我将解释如何设置,读取和删除Java Servlet(或JSP)内部的Cookie。
24

35
为什么有个或JSP呢,因为Jsp其实是Servlet演变来的,它具备Servlet的所有性质。但是它偏向于做模版引擎。
46

5-
###Java Cookie 示例
7+
### Java Cookie 示例
68

79
你能用HttpServletResponse对象来设置cookie。
810
```
@@ -12,7 +14,7 @@ response.addCookie(cookie);
1214
```
1315
这个cookie通过name:myCookie;value:myCookieValue。被识别和鉴定。它的name属性必须是唯一,就像哈希地址一样。只要浏览器访问Web应用程序,它就会将存储在客户机上的Cookie提交给Web应用程序。 仅提交访问的Web应用程序存储的Cookie。 不需要提交来自其他Web应用程序的Cookie。
1416

15-
###从浏览器发送的数据中获取cookie
17+
### 从浏览器发送的数据中获取cookie
1618
```
1719
Cookie[] cookies = request.getCookies();
1820
```
@@ -27,7 +29,7 @@ for(Cookie cookie : cookies){
2729
}
2830
}
2931
```
30-
####Cookie 的生命周期
32+
#### Cookie 的生命周期
3133
cookie的生命周期是干啥用的呢,简单的说:是为了客户安全,你可以设置一个合适的生命周期来保护客户的隐私。
3234
```
3335
Cookie cookie = new Cookie("uid", "123");
@@ -38,7 +40,7 @@ response.addCookie(cookie);
3840
```
3941
可以看到,设置了cookie后,需要在response对象上进行添加,它会告诉浏览器。我设置的生命周期是多少,浏览器会按照这个时间对cookie做销毁处理。
4042

41-
###删除cookie
43+
### 删除cookie
4244
删除cookie是浏览器的任务,上面说到cookie的生命周期,但是总会有一些特殊的情况。比如你想立刻删除该用户的cookie,防止他进行违法操作。那可以给它的生命周期设置为0,如果你想让用户关闭浏览器的一瞬间删掉cookie,那你就给它的生命周期赋值为-1.
4345
```
4446
Cookie cookie = new Cookie("uid", "");

Java-Servlet/Java-Servlet-Filter-详解.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
Servlet Filter 可以拦截所有指向服务端的请求。
24

35
![Servlet Filter.png](http://upload-images.jianshu.io/upload_images/5786888-5cf65328e0331541.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
@@ -69,7 +71,7 @@ throws IOException, ServletException {
6971
}
7072
```
7173

72-
###在web.xml里配置过滤器/拦截器
74+
### 在web.xml里配置过滤器/拦截器
7375
```
7476
<filter>
7577
<filter-name>myFilter</filter-name>

Java-Servlet/Java-Servlet-GZip-Servlet-Filter-详解.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
GZip Servlet过滤器可用于GZip压缩内容从Java Web应用程序发送到浏览器。
24

3-
###为什么要压缩
5+
### 为什么要压缩
46

57
Gzip压缩HTML、js、css等,使得发送给浏览器的数据大小变得更小。提升上传速度,尤其是移动端带宽受限制的情况下,不过它可能带来服务器和浏览器的CPU消耗问题,但是响应速度会得道很大的改善。
68

7-
###GZip 请求头
9+
### GZip 请求头
810

911
浏览器在发送到HTTP服务器(例如Java Web服务器)的请求中包含Accept-Encoding HTTP标头。 Accept-Encoding标头的内容告诉浏览器可以接受哪些内容编码。 如果该标题包含gzip值,则浏览器可以接受GZip压缩内容。 然后服务器可以将GZip压缩发送回浏览器的内容。
1012

1113
如果从服务器发回的内容是GZip压缩的,则服务器会在HTTP响应中包含带有值gzip的Content-Encoding HTTP标头。 这样浏览器就知道内容是GZip压缩的。
1214

13-
###为什么使用GZip Servlet过滤器?
15+
### 为什么使用GZip Servlet过滤器?
1416

1517
如果对每一个Servlet请求都设置压缩,那肯定在性能上会有差距,所以Gzip Servlet过滤器 可以让我们对需要压缩的东西进行压缩,没必要压缩的就不去压缩。使性能最大化的提升。
1618

17-
###GZip Servlet滤波器设计
19+
### GZip Servlet滤波器设计
1820
![image.png](http://upload-images.jianshu.io/upload_images/5786888-93e32f829b7f4b77.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1921

2022
如图所示:首先需要一个Servlet过滤器类。 该类映射到web.xml文件中的一组URL。
2123
当一个HTTP请求到达映射到过滤器的Servlet容器时,过滤器会在该请求被Servlet,JSP等处理之前截取请求所针对的目标。 GZip servlet过滤器检查客户端(浏览器)是否可以接受GZip压缩内容。如果可以接受,就对目标做压缩处理,然后将HttpServletResponse对象封装在GZipServletResponseWrapper进行压缩,最后将压缩内容写入HttpServletResponse。
2224

23-
###实例
25+
### 实例
2426
The code consists of 3 classes. A GZipServletFilter, a GZipServletResponseWrapper and a GZipServletOutputStream.
2527

2628
The GZipServletOutputStream is what compresses the content written to it. It does so by using a GZIPOutputStream internally, which is a standard Java class.
@@ -206,7 +208,7 @@ class GZipServletOutputStream extends ServletOutputStream {
206208
}
207209
}
208210
```
209-
###web.xml 配置
211+
### web.xml 配置
210212

211213
为了激活Gzip Servlet Filter,我们需要配置一些东西。
212214
```

Java-Servlet/Java-Servlet-web-xml-配置详解.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
本问翻译自:http://tutorials.jenkov.com/java-servlets/index.html
2+
13
要从浏览器访问Java servlet,必须告诉servlet容器要部署哪些servlet以及要将servlet映射到哪个URL。 这是在Java Web应用程序的web.xml文件中完成的。
24

3-
###配置和映射Servlet
5+
### 配置和映射Servlet
46
我们来看一个例子:
57

68
```
@@ -37,7 +39,7 @@
3739
```
3840
*是通配符,意思是任何文本。 如您所见,您可以使用通配符(*)将servlet映射到单个特定的URL或URL的模式。 你将使用什么取决于servlet的功能。
3941

40-
#####Servlet初始参数
42+
##### Servlet初始参数
4143
您可以从web.xml文件将参数传递给servlet。 servlet的init参数只能由该servlet访问。
4244
如何在web.xml文件中配置它们的方法:
4345
```
@@ -70,7 +72,7 @@ public class SimpleServlet extends GenericServlet {
7072
}
7173
```
7274
servlet容器首次加载servlet时会调用servlets init()方法。 在加载servlet之前,是不会允许访问该servlet。
73-
####Servlet加载启动
75+
#### Servlet加载启动
7476
<servlet>元素有一个名为<load-on-startup>的子元素,您可以使用它来控制何时servlet容器应该加载servlet。 如果不指定<load-on-startup>元素,那么servlet容器通常会在第一个请求到达时加载servlet。
7577

7678
通过设置<load-on-startup>元素,可以告诉servlet容器在servlet容器启动后立即加载servlet。 请记住,在加载servlet时调用Servlet init()方法。
@@ -89,7 +91,7 @@ servlet容器首次加载servlet时会调用servlets init()方法。 在加
8991
```
9092
<load-on-startup>元素中的数字告诉servlet容器应该按什么顺序加载servlet。 较低的数字首先被加载。 如果该值为负数或未指定,则servlet容器可以随时加载servlet。
9193

92-
####Context 参数
94+
#### Context 参数
9395
可以设置一些上下文参数,这些参数可以从应用程序中的所有servlet中读取。
9496
那该如何配置呢?
9597
```

0 commit comments

Comments
 (0)