Servlet是我们学习的一个动态资源, 它用来处理请求,然后生成响应。我们在学习Web Project的时候,研究Servlet是一个很好的开始。
2.2、继承javax.servlet.GenericServlet。
2.3、继承javax.servlet.http.HttpServlet
这个方法我们直接可以新建一个Servlet,然后选择继承javax.servlet.http.HttpServlet,看着Servlet类的步步封装,使我们使用Servlet类更加方便。
1.ini()t方法:在构造方法调用之后调用;2.service()方法:当请求发来时,处理请求使用;3.destory()方法,当服务器关闭时,会销毁servlet,在销毁之前调用该方法释放资源。
我们还可以利用ServletConfig对象得到ServletContext对象,这个对象的功能也相当强大,而且ServletContext对应着Application(应用)域。对于ServletContext对象的详解请看下一篇文章。
1、Servlet干什么用的?
处理请求,生成响应2、我们如何创建一个Servlet呢?
2.1、实现Servlet接口。public class AServlet implements Servlet {
private ServletConfig config;
public void init(ServletConfig arg0) throws ServletException {
this.config = arg0;
System.out.println(new Date() + "这是初始化的方法");
}
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
String name = getServletConfig().getServletName();
}
public ServletConfig getServletConfig() {
return config;
}
public String getServletInfo() {
return null;
}
public void destroy() {
System.out.println(new Date() + "这是习销毁的方法");
}
}
2.2、继承javax.servlet.GenericServlet。
public abstract class BServlet extends GenericServlet {
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
HttpServletRequest request=null;
HttpServletResponse response =null;
try {
response=(HttpServletResponse) res;
request=(HttpServletRequest) req;
} catch (Exception e) {
// TODO: handle exception
}
}
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String method=req.getMethod();
if (method.equals("GET")) {
doGet(req,res);
}else if (method.equals("POST")) {
doPost(req,res);
}
}
private void doPost(HttpServletRequest req, HttpServletResponse res) {
}
private void doGet(HttpServletRequest req, HttpServletResponse res) {
}
2.3、继承javax.servlet.http.HttpServlet
这个方法我们直接可以新建一个Servlet,然后选择继承javax.servlet.http.HttpServlet,看着Servlet类的步步封装,使我们使用Servlet类更加方便。
3、Servlet的声明周期方法
对于servlet来讲,有3个生命周期方法.1.ini()t方法:在构造方法调用之后调用;2.service()方法:当请求发来时,处理请求使用;3.destory()方法,当服务器关闭时,会销毁servlet,在销毁之前调用该方法释放资源。
4、ServletConfig对象
ServletConfig对象封装了Servlet在web.xml中的配置,这个对象给我们提供一些方法让我们获得web.xml的配置信息,我们最常用的就是getInitParameter()方法,利用这个方法,我们可以得到配置在web.xml中的键值对信息,代码如下:
<!-- 给注册的<servlet-name>起一个名字 -->
<servlet>
<servlet-name>AServlet</servlet-name>
<servlet-class>cn.itcast.servlet.hello.AServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>password</param-value>
</init-param>
<init-param>
<param-name>name1</param-name>
<param-value>password1</param-value>
</init-param>
</servlet>
<!-- 分配路径给servlet -->
<servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/AServlet</url-pattern>
</servlet-mapping>
JAVA代码
public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
String name = getServletConfig().getServletName();
Enumeration<String> en = getServletConfig().getInitParameterNames();
while (en.hasMoreElements()) {
String key = en.nextElement();
String value = getServletConfig().getInitParameter(key);
arg1.getWriter().print(key + "====== " + value + "<br/>");
}
}
我们还可以利用ServletConfig对象得到ServletContext对象,这个对象的功能也相当强大,而且ServletContext对应着Application(应用)域。对于ServletContext对象的详解请看下一篇文章。