servlet小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2015.1.08:
1 Servlet技术:sun公司提供的一种实现动态网页的解决方案,是基于java编程语言的WEB 服务器端编程技术。
一个servlet程序就是一个实现了servlet接口的java类,它由支持servlet(具有servlet引擎)的web服务器调用和启动运行。一个servlet程序负责处理它所对应的一个或一组URL地址的访问请求,并接受客户端发出的访问请求信息和产生响应内容。Applet是用于浏览器端的java小程序,Servlet是用于WEB服务器端的java小程序。
C/S系统:
B/S系统:
Sevlet API: sun公司定义的一套专门用于开发servlet程序的java类和接口,其定义了servlet 引擎与servlet程序之间通信的协议约定
GenericServlet类实现了servlet接口,它实现了servlet程序的基本特征和功能
HttpServlet: GenericServlet的子类,它在其基础上进行了一些针对HTTP特点的扩充
客户端每次访问一个支持HTTP的Servlet程序时,Servlet引擎都将调用Servlet的service方法来进行处理。Service方法接受两个参数:HttpServletRequest/ HttpServletResponse
Servlet是平台独立的java类,编写一个servlet,实际上就是按照servlet规范编写一个java类。Servlet被编译为平台中立的字节码,可以被动态的加载到支持java技术的web 服务器上。
Servlet容器/引擎是web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应。Servlet容器在servlet的生命周期内包容和管理servlet
2 Servlet的注册和运行: tomcat下是在web.xml中定义servlet/servlet-mapping
3 Servlet的生命周期:web容器加载Servlet,生命周期开始。通过调用servlet的init()方法进行Servlet的初始化。通过调用Service()方法实现根据请求的不同调用不同的方法,服务结束后,web容器调用Servlet的destroy()方法。Servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁。而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet
Servlet开发涉及的相关知识:良好的java基础/熟悉XML,HTTP,WEB站点管理/熟悉HTML,CSS和JavaScript/一定的数据库理论和开发基础
1.12:
1 servlet激活器:tomcat 5之前的版本才有servlet激活器invoker
2 缺省Servlet: 如果某个servlet的映射路径仅仅为一个正斜杠(/),那么这个servlet就成为当前web应用程序的缺省Servlet。缺省Servlet用于处理所有其他Servlet都不处理的访问请求。当访问tomcat服务器中的某个静态HTML文件和图片时,实际上是在访问这个缺省的servlet
1.13:
6 区分servlet的编译和运行环境:
7 编译Servlet源文件时需要注意:必须将含有Servlet api的jar文件加入到CLASSPATH的路径列表中;编译生成的.class文件必须放置在WEB-INF\class目录中,并且要有包名对应的子目录结构
我们针对这些问题可以写下compile.bat批处理文件:
set CLASSPATH=E:\software\apache-tomcat-7.0.42\apache-tomcat-7.0.42\lib\servlet-api.jar
javac -d E:\software\apache-tomcat-7.0.42\apache-tomcat-7.0.42\webapps\lesson1\WEB-INF\classes %1
pause
1.20:
1 Servlet引擎:负责管理和维护所有Servlet对象的生命周期。它负责将客户端的请求信息
交给servlet和将servlet生成的响应信息返给客户端
2 servlet: 属于一种插件,它是一个提供了一些约定方法供容器去调用的类。它只负责在自
身的方法中接受并处理容器传递进来的数据,以及生成饼返回给容器去使用的数据和状态
信息。Servlet程序的运行过程就是它与servlet引擎的交互过程,它只与servlet引擎打交道,并不与web服务器和客户端进行任何直接的交互
3 web服务器上可以布置多个servlet,每个servlet都在服务器中配置好可以处理何种URL,当符合样式的URL请求到达时,servlet引擎调用相应的servlet进行处理。
4 Servlet的运行过程:
特殊说明:
在servlet的整个生命周期,它的init方法只被调用一次,而每次访问请求都会调用一次servlet的service()方法。
5 tomcat提供了自动重新装载被修改servlet的配置选项。
法1:配置tomcat-users.xml,用manager用户登陆
法2:配置server.xml中的
时间tomcat就会刷新得到新的servlet
6 浏览器访问servlet的过程:web浏览器向web服务器发送http请求,web容器首先创
建servlet对象,然后创建request(装载请求内容)和response对象(空的),再把这两
个对象传递给servlet对象的service方法,把响应内容装载在response对象返回给web容器,然后web容器再发送http请求给web浏览器
Note:Web容器和servlet不是直接交换信息的,而是通过request和response对象来完成信息交换的
7 Servlet容器,Servlet和Servlet API的关系:
Note:虽然servlet程序中引用的是servlet api,但运行时真正调用的对象是由servlet容器
中的实现类创建的,所以将servlet api的jar包增加到classpath中,只能保证编译成功,
但不能让servlet程序离开servlet 容器运行
1.21:
1 servlet的线程安全:
servlet引擎采用多线程模式运行,它为并发的每个访问请求都使用一个线程来进行响应。
在访问成员变量,访问共享资源,访问servlet容器对象,写数据库时要考虑线程安全
2 ServletConfig接口:
Servlet引擎将代表servlet容器的对象和servlet的配置参数一并封装到servletConfig对象,并且在初始化servlet对象时即调用inti方法把servletConfig对象当作参数传递给servlet。Servlet还有方法getServletConfig可以得到这个对象。