服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - myeclipse创建servlet_动力节点Java学院整理

myeclipse创建servlet_动力节点Java学院整理

2020-12-07 10:49fjdingsd Java教程

这篇文章主要为大家详细介绍了myeclipse创建servlet的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

现在我们来创建一个web应用,就叫【myservlet】好了,如下图所示:

myeclipse创建servlet_动力节点Java学院整理

可以从项目窗口中看出,只要创建web工程,就会自动帮我们创建【web-inf】目录,并在其下创建【lib】目录和web.xml文件。我们顺便来看一下刚创建的web.xml文件内容:

myeclipse创建servlet_动力节点Java学院整理

web.xml文件中只有设置主页而已,为什么先看这个,稍后会说到。

我们当然可以按照《servlet的学习(一)》中的方法来建立servlet,即创建一个类来继承servlet的实现类genericservelet,复写service()方法,并在web.xml文件中配置这个servlet。

但是!!!我们并不使用继承genericservelet类的方式,而是去继承genericservelet类的子类httpservlet类。这么做有什么好处呢?httpservlet是指能够处理http请求的servlet,它在原有servlet的接口上添加了一些http协议处理方法,比servlet接口的功能更加强大,所以我们只需要继承httpservlet类就可以了。如果你在myeclipse中对web工程建立servlet也是可以看到myeclipse是默认将你创建的servlet继承httpservlet的,如下图所示:

myeclipse创建servlet_动力节点Java学院整理

选择【servlet】,弹出,写好包名和我要创建的servlet名:secondservlet,如下图:

myeclipse创建servlet_动力节点Java学院整理

可以看到myeclipse自动将你要创建的servlet的父类选择为httpservlet。  

当我们选择了httpservlet类作为要继承的servlet父类,那么就该知道httpservlet类已经复写了service()方法,这个方法内的代码会自动判断用户的请求方式,如果为get请求,则调用httpservlet的doget()方法;如果为post请求,则调用dopost()方法,因此我们开发的时候,只需要复写doget()方法或dopost()方法,无需再去复写service()方法。具体可以看servlet的api文档中有关httpservlet的详细内容。

我们勾选doget方法和dopost方法,其他方法根据实际情况添加。接着点击【next】,会看到另一个设置窗口:

myeclipse创建servlet_动力节点Java学院整理

  【generate/map web.xml file】:将创建好的servlet映射到web.xml文件中,这样能省我们很多事,当我们选择将servlet映射进web.xml文件中时,就可以根据下面几个指定来设置映射到web.xml文件中哪些内容。

  【servlet/jsp class name】:这是作为在web.xml文件中<servlet-class>标签中的内容。

  【servlet/jsp name】:设置在web.xml文件中<servlet-name>标签中的内容。

  【servlet/jsp mapping url】:设置web.xml文件中<servlet-mapping>标签下<url-pattern>标签的内容,也就是设置该servlet的对外访问路径。

  【file path of web.xml】:该web.xml的路径,一般不用设置。

  点击完成之后,我们再来看看web.xml文件,是的,刚才设置的servlet到web.xml文件的映射都已经被myeclipse在web.xml文件中添加好了,为我们省事了不少。如下图所示:

myeclipse创建servlet_动力节点Java学院整理

我们来看看servlet中的内容:

myeclipse创建servlet_动力节点Java学院整理

  是的,有点乱,这是因为myeclipse在创建servlet时是按模板生成的,这里我们可以将这些不需要的代码先去除,最后的部分我们再来讲解如何修改myeclipse中的servlet模板。

  在这种继承httpservlet的servlet开发中,我们只关心doget方法和dopost方法,对于不知何时http请求是get方式何时是post方式来说,可以使用以下“小聪明”的方式来满足在一个方法中同时处理get请求或post请求:

myeclipse创建servlet_动力节点Java学院整理  

刚才说到在httpservlet中的service()方法已经复写了其父类genericservlet的service()方法,那我们就来看一下httpservlet中的service()方法,将光标点击httpservlet,然后按下键盘“f3”键,会发现:

myeclipse创建servlet_动力节点Java学院整理

缺少servlet的jar包源码,这里我们有两种解决方式:

  一、到sun官网或oracle官网下载servlet源码;

  二、到apache-tomcat官网下载tomcat的源码,这里我选择这种方式:

myeclipse创建servlet_动力节点Java学院整理选择zip格式就可以(貌似tar.gz是给linux用的)。

下载解压后,目录后面是带有“src”字样:

myeclipse创建servlet_动力节点Java学院整理

那么我们就可以在myeclipse中点击“attach source”,因为是导入整个目录,所以选择“external folder”即可,导入之后我们就可以看到httpservlet的源码了,看到其service()方法,代码较长,这里就不附出,但思想就是先获取请求对象httpservletrequest的请求方式,然后用if判断来针对各个请求调用不同的方法,如doget方法或dopost方法。

  接下来我们就可以安心回到刚刚创建的servlet,在doget方法中编写代码,我们就写个简单的返回客户端一点数据好了:

?
1
2
3
4
5
6
7
public void doget(httpservletrequest request, httpservletresponse response)
      throws servletexception, ioexception {
    
    outputstream out = response.getoutputstream();
    out.write("hello servlet again !".getbytes());
    
  } 

  接着启动服务器,并将这个写好的servlet发布

最后,我们就能在浏览器查看:

  myeclipse创建servlet_动力节点Java学院整理

  记住,在地址栏中输入完主机地址和端口(如果有)后,如果web.xml没有另外设置的话,跟的是web项目名称和你在web.xml文件中为该servlet设置的对外访问路径。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐