学习笔记文档:https://pan.baidu.com/s/1XEB1a0xHSdFnUDdHFJr6ig 密码:csi6
Servlet:运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码,通过java的API 动态的向客户端输出内容
servlet规范:包含三个技术点
1)servlet技术
2)filter技术---过滤器
3)listener技术---监听器
实现步骤(不常用):
1)创建类实现Servlet接口
2)覆盖尚未实现的方法---service方法
3)在web.xml进行servlet的配置
但在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多, 我们一般创建类继承HttpServlet
实现步骤(常用):
1)创建类继承HttpServlet类
2)覆盖doGet和doPost
3)在web.xml中进行servlet的配置
xxxServlet.java(实现Servlet接口):
package com.xxx.servlet;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class QuickStratServlet implements Servlet{
@Override
public void init(ServletConfig config) throws ServletException { //只会运行一次
//1、获得servlet的name----<servlet-name>abc</servlet-name>
String servletName = config.getServletName();
System.out.println(servletName); //abc
//2、获得该servlet的初始化的参数 (web.xml中配置初始化参数)
String initParameter = config.getInitParameter("url");
System.out.println(initParameter);
//3、获得Servletcontext对象
ServletContext servletContext = config.getServletContext();
System.out.println("init running....");
}
// 请求几次就运行几次
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("QuickStratServlet running....");
res.getWriter().write("QuickStratServlet running....");
}
@Override
public void destroy() {
System.out.println("destroy running....");
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
}
WEB-INF/web.xml(配置文件):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>MyWeb</display-name>
<context-param> <!-- (整个应用的)初始化参数配置 -->
<param-name>driver</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>com.xxx.servlet.QuickStratServlet</servlet-class>
<init-param> <!-- (该servlet的)初始化参数配置 -->
<param-name>url</param-name>
<param-value>jdbc:mysql:///mydb</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>/quickStratServlet</url-pattern> <!-- 可以用"*"匹配任意,但必须放在最前面或最后面 -->
</servlet-mapping>
<welcome-file-list> <!-- 默认首页配置 -->
<welcome-file>1.html</welcome-file> <!-- 先后次序表示优先级 -->
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>