我是靠谱客的博主 阳光小刺猬,这篇文章主要介绍【JavaWeb】创建servlet实例的方法1.通过实现Servlet接口的Servlet实例2.通过继承GenericServlet类的Servlet实例通过继承HttpServlet类的Servlet实例,现在分享给大家,希望可以做个参考。
1.通过实现Servlet接口的Servlet实例
需要实现Servlet接口来创建任何servlet(直接或间接)。它提供了3个生命周期方法,用于初始化servlet,服务请求以及销毁servlet和2个非生命周期方法。
Servlet接口的方法
| 方法 | 描述 |
|---|---|
public void init(ServletConfig config) | 初始化servlet它是servlet的生命周期方法,由web容器调用一次。 |
public void service (ServletRequest request, ServletResponse response) | 为传入的请求提供响应它由Web容器的每个请求调用。 |
public void destroy() | 仅被调用一次,并且表明servlet正在被销毁。 |
public ServletConfig getServletConfig() | 返回ServletConfig对象。 |
public String getServletInfo() | 返回有关servlet的信息,如作者,版权,版本等 |
public class MyServlet implements Servlet {
ServletConfig servletConfig = null;
/**
* 初始化servlet,它是servlet的生命周期方法,由web容器调用一次。
* @param servletConfig servlet的配置
*/
@Override
public void init(ServletConfig servletConfig){
this.servletConfig = servletConfig;
System.out.println("servlet is initialized");
}
/**
* 为传入的请求提供响应。它由Web容器的每个请求调用。
* @param request 请求
* @param response 响应
* @throws IOException
* @throws ServletException
*/
@Override
public void service(ServletRequest request, ServletResponse response) throws IOException, ServletException {
// 设置响应内容类型器
response.setContentType("text/html");
// 获取响应输出对象
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<div style='text-align:center;'><h1>Hello Simple Servlet</h1></div>");
out.print("</body></html>");
}
/**
* 仅被调用一次,并且表明servlet正在被销毁。
*/
@Override
public void destroy(){
System.out.println("servlet is destroyed");
}
/**
* 返回ServletConfig对象。
* @return 返回servlet的配置对象
*/
@Override
public ServletConfig getServletConfig(){
return servletConfig;
}
/**
*返回有关servlet的信息,如作者,版权,版本等。
* @return 返回servlet的信息
*/
@Override
public String getServletInfo(){
return "copyright 2012-2020";
}
}
2.通过继承GenericServlet类的Servlet实例
GenericServlet类实现了Servlet,ServletConfig和Serializable接口。它提供除了service方法之外,还实现了这些接口的所有方法。GenericServlet类可以处理任何类型的请求,因此它与协议无关。可以通过继承GenericServlet类并提供服务方法的实现来创建通用的servlet。
GenericServlet类的方法
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | public void init(ServletConfig config) | 用于初始化servlet |
| 2 | public abstract void service(ServletRequest request, ServletResponse response) | 为传入请求提供服务,每当用户请求一个servlet时调用它。 |
| 3 | public void destroy() | 在整个生命周期中仅调用一次,以表明servlet正在被销毁。 |
| 4 | public ServletConfig getServletConfig() | 返回ServletConfig对象 |
| 5 | public String getServletInfo() | 返回有关servlet的信息,如作者,版权,版本等。 |
| 6 | public void init() | 这是servlet程序员的一个方便的方法,现在不需要调用super.init(config) |
| 7 | public ServletContext getServletContext() | 返回ServletContext的对象。 |
| 8 | public String getInitParameter(String name) | 返回给定参数名称的参数值。 |
| 9 | public Enumeration getInitParameterNames() | 返回web.xml文件中定义的所有参数。 |
| 10 | public String getServletName() | 返回servlet对象的名称。 |
| 11 | public void log(String msg) | 在servlet日志文件中写入给定的消息。 |
| 12 | public void log(String msg,Throwable t) | 将说明性消息写入servlet日志文件和堆栈跟踪。 |
public class MyServlet1 extends GenericServlet {
@Override
public void service(ServletRequest request, ServletResponse response) throws IOException, ServletException {
// 设置响应内容选择器
response.setContentType("text/html");
// 获取响应输出对象
PrintWriter out = response.getWriter();
out.print("<html><body>");
out.print("<div style="text-align:center;"><h1>Hello Generic Servlet</h1></div>");
out.print("</body></html>");
}
}
通过继承HttpServlet类的Servlet实例
HttpServlet类的方法
HttpServlet类扩展了GenericServlet类并实现了Serializable接口。它提供了http特定的方法,如:doGet,doPost,doHead,doTrace等.
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | 'public void service(ServletRequest req,ServletResponse res)` | 通过将请求和响应对象转换为http类型将请求调度到受保护的service方法。 |
| 2 | protected void service(HttpServletRequest req, HttpServletResponse res) | 从service方法接收请求,并根据传入的http请求类型将请求发送到doXXX()方法。 |
| 3 | protected void doGet(HttpServletRequest req, HttpServletResponse res) | 处理GET请求,它由Web容器调用。 |
| 4 | protected void doPost(HttpServletRequest req, HttpServletResponse res) | 处理POST请求,它由Web容器调用。 |
| 5 | protected void doHead(HttpServletRequest req, HttpServletResponse res) | 处理HEAD请求,它由Web容器调用。 |
| 6 | protected void doOptions(HttpServletRequest req, HttpServletResponse res) | 处理OPTIONS请求,它由Web容器调用。 |
| 7 | protected void doPut(HttpServletRequest req, HttpServletResponse res) | 处理PUT请求,它由Web容器调用。 |
| 8 | protected void doTrace(HttpServletRequest req, HttpServletResponse res) | 处理TRACE请求,它由Web容器调用。 |
| 9 | protected void doDelete(HttpServletRequest req, HttpServletResponse res) | 处理DELETE请求,它由Web容器调用。 |
| 10 | protected long getLastModified(HttpServletRequest req) | 返回自1970年1月1日GMT以来HttpServletRequest上次修改的时间。 |
public class HelloServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response){
try {
response.getWriter().println("<h1>Hello Servlet!</h1>");
response.getWriter().println(new Date().toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后
以上就是阳光小刺猬最近收集整理的关于【JavaWeb】创建servlet实例的方法1.通过实现Servlet接口的Servlet实例2.通过继承GenericServlet类的Servlet实例通过继承HttpServlet类的Servlet实例的全部内容,更多相关【JavaWeb】创建servlet实例内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复