1.Why?为什么要使用Servlet?
为了能够将浏览器页面提交的数据交给java程序来处理,将数据存储到数据库或从数据库中读取数据显示到页面
2.What?什么是Servlet?
Servlet是运行在服务器端的一个特殊的java类,它可以用于接收页面传过来的数据,由java程序来处理,同时也可以将处理结果返回给浏览器
Servlet接口及其实现类
3.How?怎么使用Servlet?
[1]自定义Servlet
①实现Servlet接口,实现Servlet接口中的全部方法
②在web.xml中注册Servlet(我们所说的Servlet是一个特殊的java类就表现在这里,通过页面请求来获取Servlet对象,近而执行Servlet中各个方法)
▲注册Servlet(必须在web.xml中注册才能被Tomcat检测到)
<!--
要注册的信息
①Servlet实现类的全类名 →获取实例
②Servlet的映射关系→将浏览器URL请求和Servlet联系起来
-->
<servlet>
<servlet-name>一般上为实现类的类名(可以为任意的)</servlet-name> →全类名使用不方便,给起个外号
<servlet-class>Servlet实现类的全类名</servlet-class> →通过反射来获取该类的实例
</servlet>
<servlet-mapping>→映射上面注册的Servlet
<servlet-name>对应上面的Servlet全类名的别名</servlet-name>(必须和上面的别名相同)
<url-pattern>表单action对应的地址</url-pattern>
</servlet--mapping>
[2]使用Eclipse自动生成Servlet(包括注册Servlet)
4.Servlet生命周期
Servlet运行在Servlet容器中(Tomcat可以看成是一个Servlet容器),Servlet容器在使用Servlet对象时,有一下几个方面
第一次接收到浏览器请求时,
[1]创建Servlet对象
①通过反射了调用Servlet构造器
②执行init方法进行初始化,包括一些连接的建立….
③执行service方法,对表单数据的读取以及处理
[2]以后请求时,只执行servic方法→→不再创建对象→在运行时是单例的。
[3]执行destroy方法,执行一些清理工作(连接的关闭……),在对象被回收前夕被调用(对象都没有了,调用个毛!)
5.ServletConfig
ServletConfig是Servlet的配置文件,比如web.xml
[1]代表的是Servlet的配置信息
[2]如何获取:
①通过Tomcat服务器创建ServletConfig对象
②在调用init方法时传入
[3]作用
①获取Servlet类别名
②获取初始化参数
<inin-param></init-param>
③获取ServletContext对象
6.ServletContext
[1]代表整个webapp的配置文件,是Servlet的上下文
[2]如何获取
①由tomcat来负责创建
②通过ServletConfig来获取
[3]作用
①获取webapp的初始化参数
②获取webapp在服务器中的绝对路径
通常用于文件上传和下载
③作为域对象保存数据
能够在自身的属性域中保存数据
保存数据:setAttribute(属性名,属性值);
读取数据:getAttribute(属性名);
一次保存,可以在别处使用
7.Servlet最终形式
通过继承HttpServlet来,重写doXxx()方法。
HttpServlet中,重载了两个service()方法
①javax.servlet.http.HttpServlet.service(ServletRequest, ServletResponse)
将父接口类型的request对象和response对象转换为了子接口类型
request = (HttpServletRequest) req;
response = (HttpServletResponse) res;
②javax.servlet.http.HttpServlet.service(HttpServletRequest, HttpServletResponse)
根据请求方式的不同,将请求分流到doXxx()方法中处理
8.HttpServletRequest接口
①代表:Http请求
一个HttpServletRequest接口代表一个请求
②对象的获取
[1]由tomcat来创建
[2]以参数形式传入service方法中,最终传入doXxx()方法中
③作用
[1]获取请求参数
请求参数:在提交时,附着在地址中的键值对数据
[2]请求转发
9.HttpServletResponse接口
①代表一个Http响应
②对象的创建
[1]由Tomcat负责创建
[2]以参数形式传给service方法,最终传入doXxx()方法
③作用
[1]以字符流的形式将数据返回给浏览器
[2]重定向请求
派发页面的两种方式
10.转发:
[1]Servlet得到请求后,不马上做出响应,而是将其转发给另一个资源
[2]特点:
浏览器只请求一次
浏览器地址栏没有发生改变,显示的还是之前的地址
[3]方式:
request.getRequestDispatcher(“login_success.html”).forward(request, response);
[4]原因:
服务器内部进行了转发
11.重定向:
[1]Servlet得到请求后,给浏览器一个特殊的响应,告诉浏览器重新访问另一个资源
[2]特点:
浏览器请求了两次
浏览器的地址栏变为目标地址
[3]方式:
response.sendRedirect(“目标资源”);
[4]原因:
重定向是在访问Servlet后,又访问另一个地址完成的
原文地址:http://blog.csdn.net/sloverpeng/article/details/44359345