用途:让服务器端接收浏览器端发来的请求并返回数据。
使用:
1、创建实现了servlet接口的java类,一般继承HttpServlet类
2、在web.xml中注册,并配置访问路径
HttpServlet类:该类实现了原始的servlet接口,并重写了service()方法,主要完成了根据用户访问的类型get或者post,来决定去调用doGet()还是doPost()方法,因此开发者不需要再重写service方法了。
运行过程:
web容器只会在用户第一次访问servlet时实例化servlet,并调用init()方法,而每次用户的访问请求都会调用service()方法。可以通过load-on-startup在web应用启动时就实例化servlet,为系统准备必要的数据等。
<servlet>
<servlet-name>aa</servlet-name>
<servlet-class>
xxx
</servlet-class>
<load-on-startup>1</load-on-startup></span>
</servlet>
缺省servlet
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
例子
<servlet-name>aa</servlet-name>
<servlet-class>xxx</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>aa</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Servlet中一些重要的对象
ServletConfig对象
servlet的init方法会接收一个ServletConfig对象,而在web.xml中注册servlet时可以通过<init-param>设置一些参数,这些参数会被存到ServletConfig对象中。
ServletContext对象
容器会为每个web应用创建一个ServletContext对象,可以通过ServletConfig.getServletContext方法获得ServletContext对象。该对象有几个作用:
一、是完成同一个web应用内的各个servlet的通讯。就是在一个servlet中将数据setAttribute()进来,再从另一个servlet中getAttribute得到。
二、得到web应用的参数配置
在web.xml中可以通过<context-param>进行应用级别的参数配置,如下:
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</context-param>
然后可以在doGet()方法中
servletContext.getInitParameter("url");
这样得到。
三、请求转发
在doGet()方法中,servletContext.getRequestDispatcher("另一个servlet").forward(request, response);
四、读取资源文件
InputStream in = this.getServletContext().getResourceAsStream("/db1.properties");