Servlet技术基础知识一
理解:
1、http请求和Http响应
2、http协议
3、servlet与jsp
1、http请求和Http响应
2、http协议
3、servlet与jsp
重点:
1、通过服务器端组件动态生成HTML页面
浏览器得到的页面不是预先写好的,而是程序算出来的
2、Servlet和servlet容器
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客
户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
是java写的程序,是按照sun 公司的servlet标准写的
可以在实现了sun 公司的servlet标准的容器里面运行
1、通过服务器端组件动态生成HTML页面
浏览器得到的页面不是预先写好的,而是程序算出来的
2、Servlet和servlet容器
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客
户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
是java写的程序,是按照sun 公司的servlet标准写的
可以在实现了sun 公司的servlet标准的容器里面运行
servlet可以在容器的支持下,处理http请求和响应,动态生成html页面
Servlet 的生命周期
Servlet 的生命周期始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。
(1) 初始化
在下列时刻装入 Servlet:
如果已配置自动装入选项,则在启动服务器时自动装入
在服务器启动后,客户机首次向 Servlet 发出请求时
重新装入 Servlet 时装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。
在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。
(2) 请求处理
对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用
Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请
求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求
,例如 doGet()、doPost() 或其它的方法。
(3) 终止
当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。
3、web项目及其基本结构(这是sun公司标准规定的,tomcat,weblogic,websphere肯定也一样的结构)
app-name<dir>
静态文本
Servlet 的生命周期
Servlet 的生命周期始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。
(1) 初始化
在下列时刻装入 Servlet:
如果已配置自动装入选项,则在启动服务器时自动装入
在服务器启动后,客户机首次向 Servlet 发出请求时
重新装入 Servlet 时装入 Servlet 后,服务器创建一个 Servlet 实例并且调用 Servlet 的 init() 方法。
在初始化阶段,Servlet 初始化参数被传递给 Servlet 配置对象。
(2) 请求处理
对于到达服务器的客户机请求,服务器创建特定于请求的一个“请求”对象和一个“响应”对象。服务器调用
Servlet 的 service() 方法,该方法用于传递“请求”和“响应”对象。service() 方法从“请求”对象获得请
求信息、处理该请求并用“响应”对象的方法以将响应传回客户机。service() 方法可以调用其它方法来处理请求
,例如 doGet()、doPost() 或其它的方法。
(3) 终止
当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。
3、web项目及其基本结构(这是sun公司标准规定的,tomcat,weblogic,websphere肯定也一样的结构)
app-name<dir>
静态文本
首先要新建一个文本夹dangdang
再建一个文件夹WEB-INF
web.xml用来作配置文件,用来告诉tomcat有哪些servlet等文件。部署描述符
classes文件夹(写得类文件要放在这里)
lib文件夹(jvm虚拟机没有的jar包要放在这里,比如ojdbc访问oracle的驱动)
再建一个文件夹WEB-INF
web.xml用来作配置文件,用来告诉tomcat有哪些servlet等文件。部署描述符
classes文件夹(写得类文件要放在这里)
lib文件夹(jvm虚拟机没有的jar包要放在这里,比如ojdbc访问oracle的驱动)
4、什么工具都不使得情况下,写一个servlet
javac -d . HeyServlet.java
package cn.e2leaning.
import javax.servlet.Servlet; //Servlet不在Jdk中,可以使用tomcat目录下的common下的lib
public class HeyServlet implements Servlet{
//实现其方法
}
或者
import javax.servlet.Http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HeyServlet extends HttpServlet{
//HttpServlet已经实现了Servlet的相应方法
public void Service(HttpServletRequest request,HttpServletResponse response){
//其中request为请求;response为响应
//重写httpservlet的service方法;
System.out.println("hey!!!");//显示在console上,并不显示在页面上
}
}
import javax.servlet.Http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HeyServlet extends HttpServlet{
public HeyServlet(){
System.out.println("HeyServlet!");//只在加载的时候创建下对象
}
//HttpServlet已经实现了Servlet的相应方法
public void Service(HttpServletRequest request,HttpServletResponse response){
//其中request为请求;response为响应
//重写httpservlet的service方法;
System.out.println("hey!!!");//显示在console上,并不显示在页面上
}
}
HeyServlet是怎么运行的?
在代码里面没有new Service,那么是怎么做的呢?什么时候调用的service方法呢?
是tomcat在收到请求的时候,通过调用下service方法(固定的方法),来创建一个对象。
《配合servlet的生命周期来理解》
javac -d . -classpath servlet-api.jar HeyServlet.java //意思是告诉javac使用classpath指定的api来编译
servlet-api.jar是sun公司提供的,tomcat放到了其lib目录下
写一下web.xml,告诉tomcat在哪里有servlet等,这些servlet在运行的时候有哪些功能特性
<!--省略web.xml的标准的文件头-->
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>这里写哪个类</servlet-class>
</servlet>
注意多个servlet,name和class名字不能一样
<!--省略web.xml的标准的文件头-->
<servlet>
<servlet-name>one</servlet-name>
<servlet-class>这里写哪个类</servlet-class>
</servlet>
注意多个servlet,name和class名字不能一样
<servlet-mapping>
<servlet-name>one</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
把上面写的servlet与一个地址进行绑定
<servlet-name>one</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
把上面写的servlet与一个地址进行绑定