servlet知识收集

Servlet
基本概念:
1.     什么是Web?Web有什么用?
2.     什么是Web服务器?Web Server?
3.     Web Server的作用?
4.     发展历史?
5.     什么是CGI?
6.     Servlet的出现
7.     Servlet的作用?
8.     Web ServerServlet的交互
9.     Servlet API
 
什么是Web?Web有什么用?:
Web就是网络,一个大的网络,是由n个服务器和客户端组成的的计算机网络,有了这个网络,就可以实现各个计算机之间的通信
 
什么是Web服务器?Web Server?
web这个网络中,有一些计算机承担主管的作用,很多的信息都放到一个或者多个电脑中,其他计算机如果想要这些信息,那么需要到主管这里请示,然后主管回复他们,这个主管就是web服务器,也就是Web Server,它一般是只两个意思,一个是硬件是服务器,另一个是软件是服务器,比如在硬件服务器上装上服务器端的软件,Tomcat,它的好处就在于通用
 
Web Server的作用?
1.     负责各个计算机的通信 Socket
2.     线程,处理并发,多个计算机(多用户)与服务器通信的能力 Socket
3.     特定的协议
发现问题:如果自己架设个Web Server是不容易实现,需要做大量的工作,设计制作Web Server是由系统程序员使用c/c++开发的
 
发展历史?
专用服务器: 例如:QQ,MSN,需要在客户端装软件,程序员需要开发客户端程序
Web时代:互联网上用户需要客户端,程序员只需要在通用服务器上进行二次开发,例如:开发个网站等等,用户在客户端上只装个通用的客户端就行(BrowBer浏览器),这样就可以用很多的基于Web Server平台开发的程序,非常的方便
Web Server:1.使用80端口 2.业务层协议:http
BrowBer:浏览器,IE
 
什么是CGI?
如果我们需要做个通用的软件,那么在Web Server平台上进行二次开发,这个工作是由应用程序员来做,我们使用的是JAVA
 
如果在Web Server平台上进行二次开发,需要使用一些技术,:CGI,Servlet
什么是CGI?
公共网关接口,工作方式:请求-响应特点:1.无连接,请求-响应-断开连接 2.http协议
为什么要使用http协议呢?如果是有限连接,由于大量的客户端要进行访问,所以资源不够,所以使用http协议无连接的方式,解决了大量客户端访问服务器的问题
CGI就是Web Server上的Web组件,它不能离开Web Server这个平台
Web Server相当于一个容器,运行环境,Web组件在这个平台上工作
 
CGI的作用:1.采取了一个工作方式:请求-响应(无连接)实现通信功能 2.完成业务计算
 
Servlet的出现:
CGI的问题:CGI是一个独立的进程,进行工作的,进程和进程间的通信不大容易实现,比较复杂
客户端请求(request)—web server—交给CGI(独立进程)做业务计算返回给web server—响应(reponse)—客户端
web server通过ipcCGI提交服务,这样是比较困难的
JAVAEE规范:Servlet替代CGI
两者的区别:1.Servletjava写的,CGIc/c++写的 2.Servlet是多线程的,CGI是多进程的,多线程比多进程好实现 3.Servlet是常驻内存的,效率高
 
Servlet的作用?
工作在web server之上,完成业务计算,以请求响应的方式完成特定的工作
 
Web ServerServlet的交互:
Web Server的容器提供一些公共的对象,Servlet来使用
Servlet组件API,容器回调这些API
 
Servlet API:
容器回掉的API:
init():Servlet做初始化的
Service(request):将请求的信息作为参数传递给Servlet
Destroy():卸载方法
 
从容器中读取Servlet信息的API:
GetServletconfig():得到Servlet的配置信息
GetServletinfc():得到Servlet的配置信息
 
使用Servlet子类创建Servlet
1HttpHttpServlet
2.使用HttpServlet类的Servlet
3.带包名的类的部署方法
4Servlet处理表单
Http HttpServlet类:
1。什么是http?有什么用?
基于请求/响应的协议,web server和浏览器通过httpinternet上发送和接收消息
2http请求
由三个部分组成:请求的方法uri协议和版本,请求头,请求正文(包含查询字符串)
3http响应
由三个部分组成:协议状态代码描述,响应头,响应正文(html页面)
4HttpServlet的作用?
负责根据用户发送的请求来响应并返回结果给容器,servlet容器读取Http请求,然后将这些内容打包到HttpRequest对象中,这样减轻了HttpServlet的工作量,现在只要调用HttpServletRequest的一些方法就能处理请求信息了,所以,httpServlet的作用就是得到http请求并作出响应并返回结果给容器的
5HttpServletRequest的常用方法
getCookies():得到http请求中的Cookies
getHeaderString name):得到参数指定的http请求中的Header数据
getRequestURI():得到http请求中的URI
getQueryString():得到http请求中的查询字符串
getMethod():得到http请求中所使用的方法
6HttpServletResponse的常用方法
addCookieCookie cookie):向http响应里加入Cookie
setHeaderString nameString value):设置http响应的Header
addHeaderString nameString value):向http响应加入Header
 
使用HttpServlet类的Servlet
使用httpServlet类的好处在于,它是个抽象类,可以只写必要的方法
要么重写service方法,要么写dopost()doget()方法,因为,dopostdoget这两个方法会从父类中了解到用户使用的请求方法,根据用户的请求方法调用对应的dopost或者doget,所以,如果不但写了这两个方法还重写了service方法,重写的service方法就失去了判断用户请求方法的功能
Servlet处理表单:
知识点:
1.在一个web应用中使用多个servlet
2.在一个web应用中使用多个html页面
3.htm文件的名字为index的时候,成为该web应用的主页
4.自动识别getpost方法
5.get结果在url中有参数,查询字符串 post结果在url中没有参数
 get请求既能使用url也可以使用表单 post请求只能在表单中使用
总结HttpServlet的步骤:
1.继承HttpServlet
2.覆盖部分方法(最好不要将service,请求方法(doGet,doPost)同时覆盖)
3.读取请求信息,查询字符串,表单等,并响应一个html数据
 getParameterNames():从请求中得到所有的参数名字
 getParameterValues():从请求中得到所有的参数值
 getParameter(String name):从请求中得到指定参数名所对应的值
4.得到输出流,并将结果发送给servlet容器
 response.getWriter() print println PrintWriter
 
Servlet生命周期:
1.初始化阶段
2.响应客户请求阶段
3.终止阶段
 
 
初始化阶段:
用户-〉请求-〉到servlet容器-〉容器创建一些对象-servlet调用init()方法,只被调用一次
init()
init(ServletConfig config):如果覆盖这个方法,一定要调用一下父类的这个方法,让他做一些工作,然后使用Servlet.getServletConfig()得到config,这样才能拿过来接着用
filter:过滤器
1.servlet链的原理和产生的问题?
用户请求(url)-->servlet1(解密)-->servlet2(打包)-->servlet3(响应数据)
好处:简化,专用,复用,但是也有问题,耦合问题,每个servlet依赖于上一个servlet
filter可以解决这个问题,因为下一个filter不需要上一个filter传递url,他们依赖容器
 
2.什么是filter?有什么用?
用户请求(url)-->filter(n)-->servlet(n)
filter是在servlet,jsp,html请求之前和响应之后作一些处理的
作用:过滤,在执行servlet,jsp,html之前和之后执行这个过滤器,可以跟踪用户状态,身份验证,字符转换等
 
3.常用方法?如何使用filter?
必须实现filter接口
init():容器创建filter对象后,调用这个初始化方法,在这个方法里可以取初始化参数
doFilter():过滤方法,过滤指定的url,FilterChain参数可以调用下一个filter
destroy():容器在销毁filter对象前调用这个方法,用来释放资源的
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值