您好,欢迎访问一九零五行业门户网

怎么配置servlet

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的详细内容。
其它类似信息

推荐信息