Servlet JSP一些知识.docx
《Servlet JSP一些知识.docx》由会员分享,可在线阅读,更多相关《Servlet JSP一些知识.docx(56页珍藏版)》请在冰豆网上搜索。
![Servlet JSP一些知识.docx](https://file1.bdocx.com/fileroot1/2023-4/16/ee6c138d-428a-4c96-8943-781b82c3bcea/ee6c138d-428a-4c96-8943-781b82c3bcea1.gif)
ServletJSP一些知识
ServletJSPAjaxJSON
1、架构:
.........................................................................................................................-3-
2、什么是servlet?
...........................................................................................................-3-
3、如何开发一个servlet?
...............................................................................................-3-
4、web.xml的模板(一个web.xml中可以配置多个Servlet):
....................................-4-
5、tomcat的安装:
........................................................................................................-5-
6、Servlet的运行过程(重点):
.................................................................................-5-
7、http协议(了解):
......................................................................................................-6-
8、get/post请求:
..........................................................................................................-6-
9、表单处理:
.................................................................................................................-7-
10、中文问题
(1):
.....................................................................................................-7-
11、重定向(重点):
...................................................................................................-7-
12、系统异常处理:
.......................................................................................................-8-
13、Servlet容器如何处理请求资源地址:
..................................................................-8-
14、servlet的生命周期及核心的类与接口(重点):
...............................................-8-
15、JSP(JavaServerPage):
...................................................................................-10-
16、转发(重点):
.....................................................................................................-11-
17、转发与重定向的区别:
.........................................................................................-11-
18、状态管理:
.............................................................................................................-11-
19、cookie技术(重点):
.........................................................................................-12-
20、session技术(重点):
........................................................................................-13-
21、URL重写实现session技术:
................................................................................-15-
22、路径问题:
.............................................................................................................-15-
23、过滤器:
.................................................................................................................-16-
24、监听器:
.................................................................................................................-16-
25、上传文件.................................................................................................................-17-
26、Servlet线程安全:
.................................................................................................-17-
-1-
27、中文问题
(2):
...................................................................................................-18-
28、JSP总结(主要组成部分):
...............................................................................-18-
29、jstl和el表达式:
..................................................................................................-19-
30、中文问题(数据库乱码).....................................................................................-22-
31、MVC.........................................................................................................................-23-
32、Ajax..........................................................................................................................-24-
33、JSON........................................................................................................................-26-
34、jQuery......................................................................................................................-27-
-2-
1、架构:
c/s架构(client客户端-server服务端)
(胖客户端:
要求客户端运行业务;把业务放到服务器端,则是瘦客户端)
典型的c/s应用:
ftp工具、QQ、邮件系统、杀毒软件...
1.建立在tcp/ip协议之上,有自己的通信规则(建立业务)
2.需要相互配合才能完成一个完整业务逻辑
3.允许多个客户端程序同时接入一个server程序(并发)
4.每一个client(机器)都必须安装客户软件
5.修改了server程序,通常client程序都要修改(升级)
优点:
利用客户端的计算能力,分担服务器的负荷(大型网络游戏就利用这点)
缺点:
用户必须安装客户端程序;客户端需要升级(麻烦)
b/s架构(browser-webserver(cluster集群))
(极瘦客户端:
最低限度地减少客户端程序,只需要browser(浏览器))
1.基于http协议(应用层)
2.几乎所有的业务逻辑处理都在server完成
3.支持并发
4.client要求很少,只需要安装browser(浏览器)
5.修改server之后,client不需要任何变化
6.server端开发技术:
html/js,xhtml,...php,asp,jsp,servlet
缺点:
所有业务都在服务器端完成,服务器负荷大。
优点:
支持高并发访问;不需另外安装软件(只需浏览器),免去更新的麻烦。
2、什么是servlet?
servlet是sun公司制订的一种用来扩展web服务器功能的组件规范。
Server+Applet=Servlet意为服务器端的小程序。
如何理解:
a,扩展web服务器功能:
指的是标准的web服务器只具有与客户端(浏览器)通讯的功能,不能够处理业务、
逻辑的请求,需要编写相应的程序来负责处理客户端的请求。
b,组件:
实现了特定规范的可以单独部署的软件模块;组件一般用来实现业务逻辑;组件必
须依赖容器来运行。
c,容器:
实现了特定规范的程序,提供组件的运行环境,并且管理组件的生命周期。
一般的web服务器,比如tomcat,weblogic,was都内置有一个servlet容器。
3、如何开发一个servlet?
1)写一个java类,实现Servlet接口或者继承HttpServlet类。
2)编译:
(servlet-api.jar)
-3-
3)打包:
4)部署:
appname(名称任意)
WEB-INF
classes(放字节码文件)
lib(可选,放一些jar文件)
web.xml(部署描述文件)
将第3步生成的文件夹或者使用jar命令
将该文件夹压缩所生成的.war文件copytoweb服务器特定的文件夹下面。
然后启
动服务器。
5)访问:
http:
//ip:
port/appname/url-pattern
4、web.xml的模板(一个web.xml中可以配置多个Servlet):
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="
servlet的名字1//servlet的逻辑名
servlet类全名1//类的完全限定名
servlet的名字2
servlet类全名2
servlet的名字1//要和servlet标签中的相同
指定servlet相对于应用目录的路径
//servlet的访问路径
servlet的名字2
指定servlet相对于应用目录的路径
index.jsp//指定默认的欢迎页面
-4-
5、tomcat的安装:
1)将/opt/apache-tomcat压缩文件,解压缩到/homt/soft01下。
比如,解压缩以后,在soft01下,有了一个文件夹叫apache-tomcat-5.5.29。
2)配置环境变量
cd/home/soft01
vi.bash_profile
JAVA_HOME
CATALINA_HOME:
/home/soft01/apache-tomcat-5.5.29
PATH:
/home/soft01/apache-tomcat-5.5.29/bin
..bash_profile
3)启动服务器
cdapache-tomcat-5.5.29
cdbin
shstartup.sh
4)在浏览器地址栏输入:
http:
//localhost:
8080
5)关闭服务器
cdapache-tomcat-5.5.29
cdbin
shshutdown.sh
6)tomcat的几个文件夹的作用。
bin:
是一些可执行文件,比如启动和关闭服务器的脚本。
conf:
是一些配置文件,比如server.xml,可以配置tomcat的监听端口号等等。
webapps:
部署文件夹,将一个应用copy到这儿,服务器会自动部署。
work:
服务器在运行时,临时生成的一些文件,比如,调用jsp所生成的servlet源
代码及字节码。
6、Servlet的运行过程(重点):
在浏览器地址栏输入:
http:
//ip:
port/appname/hello?
name=zs
a,浏览器会依据ip,port连接服务器,浏览器将/appname/hello?
name=zs(请求资源路径)
存放到请求数据包(依据http协议打包)。
b,Servlet引擎(webserver当中负责通讯的模块)会创建Request对象(一般称为请求对
象,Servlet引擎会将请求数据包中的数据封装到
Request对象当中,方便Servlet获取数据,也就是说,Servlet不用处理http协议相
关的代码),还会创建Response对象(一般称为
响应对象,方便Servlet将处理之后的结果返回给客户端)。
c,Servlet引擎依据/appname找到对应的应用。
依据应用所对应的web.xml,找到
url-pattern元素。
接下来,依据servlet-class元素指定的类名,创建Servlet实例。
d,Servlet实例可以通过Request对象获取请求参数值。
也可以通过Response对象输出结
果。
-5-
e,Servlet引擎从Response对象中获取结果,生成响应数据包。
f,浏览器解析服务器返回的响应数据包,生成相应的界面。
7、http协议(了解):
http协议是什么?
超文本传输控制协议,其作用是:
定义了浏览器与web服务器之间数据传输的过程及数
据的格式。
a,数据传输的过程:
浏览器向服务器发送建立连接的请求。
浏览器向服务器发送请求数据。
服务器处理请求数据,返回响应数据。
服务器立即关闭连接。
b,数据的格式:
请求数据包:
1请求行
请求方式(get/post)请求资源的路径协议的版本号
2消息头
由w3c定义的一些关键字,用于浏览器与服务器之间发送一些特定的消
息,比如,浏览器可以发送cookie消息头,向服务器发送cookie数据。
3实体内容
如果请求方式是post方式,则请求参数会存放在实体内容里面。
如果是
get方式,则请求参数会存放在请求资源路径后面。
响应数据包:
1状态行
协议的版本状态码描述
常见的状态码:
404:
找不到资源
500:
系统出错(应用程序出错)
200:
正确
2消息头
3实体内容
服务器返回的数据
8、get/post请求:
1)哪一些是get请求:
a,在浏览器地址栏直接输入一个地址。
b,点击链接地址。
click
c,表单默认的提交方式。
2)哪一些是post请求:
表单设置了method="post"。
-6-
3)get方式的特点:
因为请求参数都添加在请求资源路径后面,所以,添加的参数大小有限制。
并且,
请求参数会在浏览器地址栏显示,不安全。
浏览器会缓存get方式所获取的资源。
4)post方式的特点:
请求参数都添加到了实体内容里面,添加参数大小理论上没有限制。
因为请求参数
不会在浏览器地址栏显示,相对安全。
get请求一般用于向服务器请求资源。
post请求一般用于向服务器提交数据。
9、表单处理:
如何获取表单中的数据
Stringrequest.getParameter(StringparaName);
需要注意:
paraName对应的参数名不存在,返回null。
String[]request.getParameterValues(StringparaName);
Maprequest.getParameterMap();返回所有的请求参数与请求参数值对。
10、中文问题
(1):
a,如果是一个静态页面(html),里面有中文,一定要设置
,
并且要保证保存该页面的编码也是utf-8。
当然,charset也可以gbk,gb2312。
其作用是,模拟Conent-Type消息头,告
诉浏览器当前返回的页面的编码是什么。
b,在Servlet类的service方法里:
request.setCharacterEncoding("utf-8");其作用是,告诉服务器,以指定的编码格式
去解码。
如果Servlet还要将结果输出到客户端(浏览器),还需要:
response.setContentType("text/html;charset=utf-8");
其作用是:
第一,告诉服务器,输出数据到PrintWriter时,所采用的编码格
式;第二,生成一个消息头,告诉浏览器,以指定的编码来显示返回的数据。
c,数据库
useUnicode=true&characterEncoding=utf8
11、重定向(重点):
1)什么是重定向?
服务器向浏览器发送一个状态码302及一个消息头location(location的值是一个
地址),浏览器会立即向location所指定的地址发送一个新的请求。
我们把这样一种
机制叫重定向。
-7-
2)编程:
response.sendRedirect(Stringurl);
3)需要注意的问题
在重定向之前,不能够有任何的输出;如果response缓存当中有数据,在重定向
之前,会自动清空。
4)重定向的特点:
a,地址任意
b,浏览器地址栏地址会变化(即变化为跳转之后的地址)。
12、系统异常处理:
程序在执行过程当中,发生了不可恢复的错误(程序不能够处理,需要人工参与),这
种类型的错误称为系统异常。
处理方式:
step1throws系统异常。
step2在web.xml中,配置一个错误处理页面。