怎么配置servlet

互联网 19-5-16
Java Servlet是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。Servlet是平台独立的Java类,编写一个Servlet实际上就是按照Servlet规范编写一个Java类。

Servlet运行需要一个运行环境,即需要一个Servlet容器,这里我们使用Tomacat。Tomcat作为一个Web服务器,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器。

实现一个helloWord例子。

推荐课程:Java教程。

方式一:通过实现Servlet接口来编写Servlet类,需要实现接口中定义的5个方法,代码如下:

package day_052102; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /*  这里通过实现Servlet接口来编写一个简单的Servlet  */ public class ServletDemo implements Servlet {     public void init(ServletConfig config) throws ServletException     {     }     public ServletConfig getServletConfig()     {                  return null;     }     public String getServletInfo()     {         return null;     }     public void destroy()     {     }     public void service(ServletRequest req, ServletResponse res)             throws ServletException, IOException     {         PrintWriter out=res.getWriter();         out.print("hello World!");         out.close();     } }

然后进行web.xml的配置,代码如下:

<servlet>      <servlet-name>ServletDemo</servlet-name>      <servlet-class>day_052102.ServletDemo</servlet-class>  </servlet>  <servlet-mapping>      <servlet-name>ServletDemo</servlet-name>      <url-pattern>/ServletDemo</url-pattern>  </servlet-mapping>

点击运行按钮,启动tomacat服务器,然后在浏览器中输入http://localhost:8080/day_052102/ServletDemo,即可进行实现页面显示hello World的示例。结果如下。

方式二:继承抽象类GenericServlet,该类定义了一个通用的Servlet。

public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable

代码示例实现hellWord如下:

public class GenericServletDemo extends GenericServlet {     @Override     public void service(ServletRequest req, ServletResponse res)             throws ServletException, IOException     {         PrintWriter out=res.getWriter();         out.println("hello World!");         out.close();             }  }

方式三:通过继承抽象的HttpServlet类,此类继承于GenericServlet类。

PS:HttpServlet类中没有抽象的方法。这个类重写了service方法,它会根据请求的方式调用doGet或者doGet方法,部分源码如下:

protected void service(HttpServletRequest req, HttpServletResponse resp)         throws ServletException, IOException  {         String method = req.getMethod();         if (method.equals(METHOD_GET))   //当请求方式为GET时,调用doGet方法         {                long lastModified = getLastModified(req);             if (lastModified == -1)              {                 // servlet doesn't support if-modified-since, no reason                 // to go through further expensive logic                 doGet(req, resp);             }              else             {                 long ifModifiedSince;                 try                  {                     ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);                 }                  catch (IllegalArgumentException iae)                 {                     // Invalid date header - proceed as if none was set                     ifModifiedSince = -1;                 }                 if (ifModifiedSince < (lastModified / 1000 * 1000))                 {                     // If the servlet mod time is later, call doGet()                     // Round down to the nearest second for a proper compare                     // A ifModifiedSince of -1 will always be less                     maybeSetLastModified(resp, lastModified);                     doGet(req, resp);                 }                 else                 {                     resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);                 }             }         }

如果在自己写的类中重写了service方法,那么Servlet容器就会把请求交给你重写的service方法处理。

public class HttpServletDemo extends HttpServlet {     protected void doGet(HttpServletRequest req, HttpServletResponse resp)             throws ServletException, IOException     {         PrintWriter out=resp.getWriter();         out.println("hello!");         out.close();     } }

以上就是怎么配置servlet的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: servlet
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java字符类型采用什么编码方式

相关资讯