├── .gitattributes
└── JSP.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/JSP.md:
--------------------------------------------------------------------------------
1 | #JSP
2 | JSP(Java Server Pages),一种动态网页开发技术。
3 |
4 | JSP是以Java语言作为脚本语言的,其开发的WEB应用可以跨平台使用,既可以运行在Linux上也能运行在Window上。
5 |
6 | 第一个Hello World 程序
7 |
8 |
9 |
10 | 第一个JSP程序
11 |
12 |
13 | <%
14 | out.println("Hello World!");
15 | %>
16 |
17 |
18 |
19 | ####JSP开发环境:
20 |
21 | - JDK
22 | - 集成开发环境myeclipse、idea(我在用的)
23 | - 服务器Tomcat
24 |
25 |
26 | ####JSP优势:
27 |
28 | - 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
29 |
- 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
30 |
- JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
31 |
- JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet 模板引擎所支持
32 |
33 |
34 | ####动态网页性能对比
35 |
36 | - JSP:适合开发大型的企业级web应用
37 |
- ASP.net:简单易学,但安全性和跨平台性差
38 |
- PHP:简单高效成本低,适合中小型企业开发
39 |
40 |
41 |
42 | ####JSP页面元素构成
43 |
44 | - 静态内容
45 |
- 指令
46 |
- 表达式
47 |
- 小脚本
48 |
- 声明
49 |
- 注释
50 |
51 |
52 |
53 | #####JSP页面的生命周期
54 | 编译阶段:解析文件,转化为servlet,编译servlet
55 | ||
56 | 初始化阶段:首先调用构造函数,jspInit()方法只执行一次
57 | ||
58 | 执行阶段:_jspService(HttpServletRequest request,HttpServletResponse response)
59 | ||
60 | 销毁阶段:jspDestroy()
61 |
62 |
63 |
64 | #####JSP指令
65 | ######page指令:定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
66 |
67 | ``<%@ page ... %>``
68 |
69 | 属性:
70 |
71 | - language(默认JAVA)
72 |
- import:导入要使用的Java类
73 |
- contentType(常用:=text/html;charset="utf-8")
74 |
75 |
76 |
77 | ######include指令:将一个外部文件嵌入到当前文件中,同时解析
78 |
79 | ``<%@ include file="文件相对 url 地址" %>``
80 |
81 |
82 |
83 | ######taglib指令:使用标签库定义新的自定义标签,启用定制行为
84 |
85 | ``<%@ taglib uri="uri" prefix="prefixOfTag" %>``
86 |
87 |
88 | #####JSP声明
89 |
90 | ``<%!JAVA声明的变量或者方法%>``
91 |
92 | #####JSP脚本元素
93 | 即JSP中可以执行的java代码
94 |
95 | ``<%JAVA代码%>``
96 |
97 |
98 | #####JSP表达式
99 |
100 | ``<%=表达式%>`` 表达式不以分号结束;
101 |
102 | #####JSP 九大内置对象
103 | JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。
104 | 常用的:
105 |
106 |
107 |
108 |
109 | | 对象 |
110 | 描述 |
111 | 备注 |
112 |
113 |
114 | | request |
115 | HttpServletRequest类的实例 |
116 | request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等 |
117 |
118 |
119 | | response |
120 | HttpServletResponse类的实例 |
121 | 定义了处理HTTP头模块的接口 |
122 |
123 |
124 | | out |
125 | PrintWriter类的实例,用于把结果输出至网页上 |
126 | 常用方法:printIn();clear();flush();clearBuffer();getBufferSize();getRemaining();isAutoFlush();close(); |
127 |
128 |
129 | | session |
130 | HttpSession类的实例 |
131 | |
132 |
133 |
134 | | application |
135 | ServletContext类的实例,与应用上下文有关 |
136 | |
137 |
138 |
139 | | config |
140 | ServletConfig类的实例 |
141 | |
142 |
143 |
144 | | pageContext |
145 | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
146 | 存储了request对象和response对象的引用 |
147 |
148 |
149 | | page |
150 | 类似于Java类中的this关键字 |
151 | |
152 |
153 |
154 | | Exception |
155 | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
156 | 通常用来产生对出错条件的适当响应 |
157 |
158 |
159 |
160 |
161 |
162 | #####JSP服务器相应
163 | Response响应对象主要将JSP容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等。
164 |
165 |
166 | #####JSP客户端相应
167 | request对象提供了一系列方法来获取HTTP信息头,包括表单数据,cookies,HTTP方法等等。
168 |
169 | #####JSP session
170 | HTTP是无状态协议,这意味着每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息。
171 |
172 | ######维持客户端与服务器的会话的方法
173 | * Cookies
174 | * 隐藏表单域:
175 | ``
176 | 但点击A标签中的超链接时不会产生表单提交事件,因此隐藏表单域也不支持通用会话跟踪
177 | * 重写URL
178 | * session(保存在服务器的内存之中,每个用户对应一个不同的session)
179 |
180 |
181 | ######session的生命周期
182 | 创建
183 | 活动
184 | 销毁:调用session.incalidate()方法;session过期;重启服务器;
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
--------------------------------------------------------------------------------