servlet
什么是servlet?
server+Applet,是一种服务器端的Java请用程序
只有当一个服务器端的程序使用了servlet API的时候,这个服务器端的程序才能称之为ServletServlet的作用是处理请求,服务器会吧接收到的请求交给Servlet来处理,在Servlet中通常需要:
- 接受请求数据
- 处理请求
- 完成响应
Servlet干什么的?
- 本身不注意任何业务处理
- 只接收请求并决定调用哪个JavaBean去处理请求
- 确定用哪个页面来显示处理返回的数据
Servlet小总结
Java程序
运行在服务器
需要web容器的支持
使用了ServletAPI
本身不做任何业务处理,中间调度作用
实现Servlet的三种方式
1、 实现servlet接口(不常用)
2、 继承Genericservlet类(不常用)
3、 继承httpservlet类(常用)
- 这个类也是Servlet接口的一个实现类,用来面上http协议的
- Httpservlet原理
Servlet配置路径
需要在WEB-INF下的web.xml中给Servet配置路径
代码演示:
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class>类的路径xxx</servlet-class>
</servlet>
<servlet-mapping>
<!-- 两个servlet-name 必须是一样的 -->
<servlet-name>xxx</servlet-name>
<servlet-pattern>/路径名</servlet-pattern>
<!--servlet-pattern这里必须是/开头 -->
</servlet-mapping>
继承的方法
- init() 初始化
- service() 处理请求和生成响应
- doGet() 实现操作
- doPost() 实现操作
- destory() 销毁
定义局部初始化参数
- 通过WEB-INF中的web.xml配置文件,定义初始化参数位置
- servlet标签内
- 可以定义多个
- 需要在init()有参构造的方法内写代码
- 代码格式:
<servlet>
<init-param>
<param-name>参数名</param-name>
<param-value>参数值</param-value>
</init-param>
</servlet>
实现代码:
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
//获取servlet的名称======》获取web.xml配置中的servlet节点的名称
System.out.println("获取servlet的名称:"+config.getServletName());
System.out.println(config.getServletContext().getContextPath());
定义全局初始化参数
- 通过WEB-INF中的web.xml配置文件,定义初始化参数位置
- servlet标签外
- 可以定义多个
- 代码格式:
<context-param>
<param-name>xxx</param-name>
<param-value>xxx</param-value>
</context-param>
实现代码:
//config.getServletContext() 读取的是全局的
Enumeration<String> ctxParams = config.getServletContext().getInitParameterNames();
while(ctxParams.hasMoreElements()){
System.out.println("获取全局的:"+ctxParams.nextElement());
}
//根据参数名获取值
System.out.println("获取当前servlet:"+config.getInitParameter("name"));
//获取全局的
System.out.println("获取全局的:"+config.getServletContext().getInitParameter("name"));
}
Servlet生命周期
1. 加载和实例化
2. 初始化阶段 调用init()方法
3. 处理请求阶段 调用service()方法
4. 销毁阶段 调用destroy()方法