Java相关课程系列笔记之九Servlet学习笔记.docx
《Java相关课程系列笔记之九Servlet学习笔记.docx》由会员分享,可在线阅读,更多相关《Java相关课程系列笔记之九Servlet学习笔记.docx(74页珍藏版)》请在冰豆网上搜索。
Java相关课程系列笔记之九Servlet学习笔记
Servlet学习笔记
Java相关课程系列笔记之九
笔记内容说明
Servlet(程祖红老师主讲,占笔记内容100%);
目录
一、Servlet概述1
1.1B/S架构(了解)1
1.2什么是Servlet1
1.3什么是Tomcat2
1.4如何写一个Servlet(不使用开发工具)3
1.5使用MyEclipse开发Servlet5
1.6Servlet是如何运行的6
1.7常见错误及解决方式6
1.8案例:
根据请求次数显示结果和显示当前时间7
二、HTTP协议8
2.1什么是HTTP协议8
2.2通讯的过程8
2.3数据格式8
2.4TCP/IPMonitor的使用9
2.5get请求与post请求9
2.6如何读取请求参数9
2.7访问数据库(MySql)10
2.8案例:
添加员工(访问MySql数据库)10
2.9异常:
IllegalStateException11
三、编码问题12
3.1Java语言在内存当中默认使用的字符集12
3.2编码12
3.3解码12
3.4Servlet如何输出中文12
3.5如果表单有中文参数值,也需要注意编码问题12
3.6案例:
根据请求正确显示中文12
3.7将中文数据插入到数据库13
四、重定向14
4.1什么是重定向14
4.2如何重定向14
4.3注意两个问题14
4.4两个特点14
4.5重定向原理图:
以2.8案例为例14
五、DAO15
5.1什么是DAO15
5.2如何写一个DAO15
5.3工厂类15
六、工厂设计模式16
6.1什么是工厂16
6.2使用工厂设计模式的好处16
6.3如何使用工厂模式16
6.4案例:
为2.8案例添加新功能,并使用DAO和工厂模式16
七、Servlet容器处理细节19
7.1Servlet容器如何处理请求资源路径以及匹配19
7.2一个Servlet如何处理多种请求19
八、Servlet的生命周期20
8.1Servlet的生命周期的含义20
8.2Servlet生命周期的四个阶段20
8.3实例化20
8.4初始化20
8.5就绪20
8.6销毁21
8.7Servlet生命周期图21
8.8Servlet生命周期相关的几个接口与类21
九、JSP(简要介绍,详细内容见JSP笔记)23
9.1什么是JSP23
9.2为什么要使用JSP23
9.3JSP与Servlet的关系23
9.4如何写一个JSP文件23
9.5JSP是如何运行的23
9.6指令24
9.7案例:
创建emplist.jsp页面,将表示逻辑交给JSP处理24
十、请求转发26
10.1什么是转发26
10.2如何转发26
10.3编程需要注意的两个问题26
10.4转发原理图26
10.5转发的特点27
10.6转发和重定向的区别27
10.7何时用重定向27
10.8何时用转发27
10.9案例:
修改6.4案例中step7中的ListEmpServlet.java28
十一、异常的处理30
11.1用输出流out30
11.2用转发的方式30
11.3让容器处理系统异常30
11.4案例:
将10.9案例中的step3中的所有catch块修改30
十二、路径问题31
12.1什么是相对路径31
12.2什么是绝对路径31
12.3如何写绝对路径31
12.4如何防止硬编码31
12.5案例:
相对、绝对路径对比31
12.6四种情况下,正确的绝对路径写法32
十三、状态管理33
13.1什么是状态管理33
13.2如何进行状态管理33
13.3cookie33
13.4如何创建一个cookie33
13.5查询cookie33
13.6编码问题34
13.7cookie的生存时间34
13.8cookie的路径问题34
13.9cookie的限制35
13.10案例:
写一个CookieUtil35
13.11session(会话)36
13.12如何创建一个session对象36
13.13HttpSession接口中提供的常用方法36
13.14session的超时37
13.15用户禁止cookie以后,如何继续使用session37
13.16url重写37
13.17session的优点37
13.18session的缺点38
13.19案例:
session验证和访问次数38
13.20案例:
验证码39
13.21案例:
购物车41
十四、过滤器45
14.1什么是过滤器45
14.2如何写一个过滤器45
14.3案例:
敏感字过滤器45
14.4过滤器的优先级46
14.5初始化参数47
14.6优点47
十五、监听器48
15.1什么是监听器48
15.2容器会产生两大类事件48
15.3如何写一个监听器48
15.4ServletContext(Servlet上下文)48
15.5如何获得Servlet上下文48
15.6Servlet上下文的作用48
15.7案例:
统计在线人数49
十六、上传文件51
16.1如何上传文件51
16.2案例:
上传文件51
十七、Servlet线程安全问题53
17.1为何Servlet会有线程安全问题53
17.2如何处理线程安全问题53
十八、Servlet小结54
18.1Servlet基础54
18.2Servlet核心54
18.3状态管理54
18.4数据库访问54
18.5过滤器和监听器54
18.6典型案例和扩展54
十九、其他注意事项55
19.1连接数据库的工具55
19.2知名网站55
19.3C/S架构:
Client/Server55
19.4B/S架构:
Browser/Server56
Servlet概述
1.1B/S架构(了解)
1)什么是B/S架构
客户端使用浏览器,服务端使用web浏览器,客户端跟服务器之间使用HTTP协议进行通讯。
2)优点
①客户端不需要单独安装(因为使用浏览器);C/S架构比较麻烦的是需要单独安装每个客户端,并且一旦客户端版本发生改变,就需要再次安装。
②开发相对简单;C/S架构需要我们分别在,客户端和服务器端编写相应的通信处理模块和自定义协议,而B/S架构使用标准的HTTP协议(即不再需要自定义协议),而且浏览器与Web服务器已经包含了相应的通信模块了。
1.2什么是Servlet
Sun公司制订的一种用来扩展Web服务器功能的组件规范。
1)扩展web服务器功能
早期(2000年左右)的Web服务器:
apache的webserver、微软的iis。
只能够处理静态资源(即需要事先将html文件写好),不能够处理动态资源的请求(即需要依据请求参数然后进行计算,生成相应的页面)。
为了让这些web服务器能够处理动态资源的请求,需要扩展他们的功能。
早期使用的是CGI技术(CommonGatewayInterface通用网关接口),可以使用很多语言编写,如perl,C/C++等来开发CGI程序。
但是CGI程序有几个问题,比如开发比较复杂(因为需要程序员自己去分析请求参数)、性能不佳(因为当Web服务器收到请求之后,会启动一个CGI进程来处理请求)、CGI程序依赖平台(可移植性不好)。
现在,可以使用Servlet来扩展。
当浏览器将请求发送给Web服务器(比如:
apcahe的webserver),Web服务器会向Servlet容器发送请求,Servlet容器负责解析请求数据包。
当然,也包括网络通讯相关的一些处理,然后将解析之后的数据交给Servlet来处理(Servlet只需要关注具体的业务处理,不用关心网络通讯相关的问题)。
◆注意事项:
可以不使用服务器,而直接向Servlet容器发送请求,因为Servlet容器里面也有个通信模块,所以也可直接把Servlet容器当作简单的Web服务器来使用。
2)组件规范
①组件:
是符合一定规范,并且实现部分功能的可以单独部署的软件模块。
组建必须要部署到容器里面才能运行。
②容器:
也是符合一定规范,并且提供组件的运行环境的程序。
◆注意事项:
单个的组件、单个的容器都是没意义的,都不能单独运行,需要放在一起才能运行。
1.3什么是Tomcat
Tomcat本身是一个Servlet容器,即可以提供Servlet运行环境的一个程序,但是Tomcat还提供了Web服务器所具有的所有功能,所以我们也称Tomcat是一个Web服务器。
Tomcat的默认端口是8080。
1)安装Tomcat(www.apache.org下载)
①Linux系统下安装和配置的步骤
step1:
解压到/home/soft01下
step2:
配置环境变量
cd/home/soft01
vi.bash_profile
JAVA_HOME:
jdk的主目录
CATALINA_HOME:
tomcat的主目录
PATH:
CATALINA_HOME/bin
step3:
启动Tomcat
cd/home/soft01/tomcat主目录/bin
shstartup.sh或者shcatalina.shrun
接下来,可以打开浏览器,输入http:
//localhost:
8080,验证是否配置成功。
step4:
关闭Tomcat
cd/home/soft01/tomcat主目录/bin
shshutdown.sh
②Windows系统下安装和配置的步骤
step1:
解压到某个盘下
step2:
配置环境变量
JAVA_HOME(JDK的主目录)必须配置
CATALINA_HOME(Tomcat的主目录)可以不配置
PATH(Tomcat的bin目录)可以不配置
“我的电脑”右键“属性”,打开“系统属性”的“高级”选项卡,找到“环境变量。
新建“用户变量”。
新建JAVA_HOME。
◆注意事项:
新建系统变量或新建用户变量均可,建议新建用户变量。
新建CATALINA_HOME(可以不配置)。
新建PATH(可以不配置)。
◆注意事项:
v如果环境变量中已经有PATH,修改该PATH即可,使用“;”分号作分隔,如下所示:
PATHC:
\ProgramFiles\Java\jdk1.6.0_06\bin;
D:
\apache-tomcat-5.5.23\bin
vWindows操作系统下以“;”分号为分隔符;linux系统下以“:
”冒号为分隔符。
step3:
启动Tomcat
进入启动Tomcat的bin目录下,双击“startup.bat”。
接下来,可以打开浏览器,输入http:
//localhost:
8080,验证是否配置成功。
step4:
关闭Tomcat
进入启动Tomcat的bin目录下,双击“shutdown.bat”。
2)Tomcat目录结构简介
①