Servlet

来源:互联网 发布:百度软件中心开发者 编辑:程序博客网 时间:2024/06/05 17:29

Servlet的开发​

  • Servlet是一个特殊的Java类,必须继承HttpServlet
  • doGet 响应客户顿的GET请求
  • doPost 响应客户端的POST请求 (重写service()方法响应客户端所有请求)
  • init( ServletConfig config) 创建servlet实例时,初始化Servlet资源
  • destory() 销毁实例时,自动调用该方法的回收资源

Servlet的配置

  • 1、在Servlet类中使用@WebServlet注解进行配置
  • 2、在web.xml文件中进行配置
    <!-- 配置Servlet的名字 -->        <servlet>            <!-- 指定Servlet的名字,                相当于指定@WebServlet的name属性 -->            <servlet-name>firstServlet</servlet-name>            <!-- 指定Servlet的实现类 -->            <servlet-class>lee.FirstServlet</servlet-class>        </servlet>        <!-- 配置Servlet的URL -->        <servlet-mapping>            <!-- 指定Servlet的名字 -->            <servlet-name>firstServlet</servlet-name>            <!-- 指定Servlet映射的URL地址,                相当于指定@WebServlet的urlPatterns属性-->            <url-pattern>/aa</url-pattern>        </servlet-mapping>

JSP/Servlet的生命周期

创建实例————初始化————响应请求————资源回收————实例被销毁

创建实例的两个时机

  • (1)用户请求时
  • (2)应用启动时
 @WebServlet(loadOnStartup=1) //整型值越小,Servlet就越先实例化    public class TimerServlet extends HttpServlet    {        public void init(ServletConfig config)throws ServletException        {            super.init(config);            Timer t = new Timer(1000,new ActionListener()            {                public void actionPerformed(ActionEvent e)                {                    System.out.println(new Date());                }            });            t.start();        }    }

访问Servlet的配置参数

@WebServlet(name="testServlet"        , urlPatterns={"/testServlet"}        , initParams={            @WebInitParam(name="driver", value="com.mysql.jdbc.Driver"),            @WebInitParam(name="url", value="jdbc:mysql://localhost:3306/javaee"),            @WebInitParam(name="user", value="root"),            @WebInitParam(name="pass", value="32147")})    // 获取ServletConfig对象    ServletConfig config = getServletConfig();    // 通过ServletConfig对象获取配置参数:dirver    String driver = config.getInitParameter("driver");

Servlet3.0新特性

注解

@WebServlet :用于修饰一个Servlet类,用于部署Servlet类
@WebInitParam
@WebListener
@WebFilter
@MultipartConfig:用于修饰Servlet,指定该Servlet将会负责处理multipart/form-data类型的请求(主要用于文件上传)

Web模块支持

异步处理

改进的Servlet API

HttpServletRequest增加了对文件上传的支持
Part getPart(String name):根据名称获取文件上传域
Collection getParts():获取所有的文件的上传域

上传文件要为表单域设置enctype属性
application/x-www-form-urlencoded:默认,只处理value属性值
multipart/form=data:以二进制流的方式来处理表单数据(上传文件)
text/plain:当表单的action属性为mailto:URL的形式时比较方便

ServletContext允许通过编程的方式动态注册Servlet、Filter

原创粉丝点击