servlet学习入门

servlet到底是什么?

其实你可以把一个servlet理解成一个动态web资源,在一个web应用中可以有多个servlet,每一个servlet都有一个对外访问路径,也就是你在浏览器中输入的URL。而哪个请求对应那个servlet则是由web应用下的web.xml进行配置。

web应用的结构图:


原理如下:


servlet的生命周期:

  • 1)通常情况下,服务器会在Servlet第一次被调用时创建该Servlet类的实例对象(servlet出生),创建出对象后立即调用init()方法做初始化操作;
  • (2)一旦被创建出来,该Servlet实例就会驻留在内存中,为后续对这个Servlet的请求做服务,每次对这个Servlet的访问都会导致Servlet中Service方法执行;
  • (3)当web应用被移除容器或者关闭服务器时,随着web应用的销毁,Servlet也会被销毁(servlet死亡)。在销毁之前服务器会调用Servlet的destroy方法做一些善后的工作。

有3个方法代表了Servlet的生命周期:

  • init方法,负责初始化Servlet对象。
  • service方法,负责响应客户的请求(调用doGet或doPost等方法)。
  • destroy方法,当Servlet对象退出生命周期时,负责释放占用的资源。

注:在Servlet的整个生命周期内,Servlet的init方法只有在servlet被创建时被调用一次,每次对这个Servlet的访问都会导致Servlet中Service方法执行。


在eclipse中创建web项目

首先你要确定自己安装的是eclipse for j2ee,理论上j2se版本也可以建,但是比较麻烦,这里不做赘述。

本文以eclipse 4.7.2,也就是eclipse oxygen,tomcat 8.5.7为例

1.File-New-other-Dynamic web Project,点击next


这里注意要点next,不要直接点finish。

2.出现工程设定窗口中设定工程的名字( 对应工程的名字 )和Dynamic web module version(版本),我使用的是tomacat8.5,对应的是3.1)单击next


上面的working sets是工作集的意思,暂时不用管,以后用到再说。

3.点击next,进行下一步


4.上面的src即class文件的存放位置。继续点next进行下一步。


注意上面画红框的部分,这个意思是是否生成web.xml文件,如果画上✔,那么会在WEB-INF文件夹下生成一个web.xml文件。但是因为sevlet3.0以后可以通过注解来配置servlet的对外访问路径等等其他设置。这里我们采用两种方式,一种是选择web.xml,一种是通过@WebServlet注解来配置。

5.在java Resources下src下新建servlet,主要extends的superclass选择httpservlet。


点击next


继续点击next


红框内是需要选择继承的方法,一般选择doGet()跟doPost()。然后点击Finish,生成如下:


6.这样就可以编辑servlet了。编辑完之后,一定要记得配置web.xml或者是@WebServlet注解。

在web.xml中进行如下配置

 <servlet>
  <servlet-name>Demo03</servlet-name>
  <servlet-class>cn.shenqueying.Demo03</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Demo03</servlet-name>
  <url-pattern>/FirstServlet</url-pattern>

  </servlet-mapping>

<servlet>元素就是填写servlet的name跟从包名开始的class name。servlet-mapping标签则是填写映射,即对外的访问路径,url-pattern就是外部浏览器访问的文件名。但是在浏览器输入时,要从项目名开始,加上url-pattern


如果是通过注解来配置,就是在@WebServlet注解中加入name=,urlPatterns=,两个属性,效果跟上面一样。


其实@WebServlet注解,可以配置很多其他别的东西,日后在详细了解。也可以把urlPatterns改为value,效果一样。

7.我们将servlet编辑完成后,通过ctrl+f11进行运行,其实这时就是将开发的web应用自动的部署在了tomcat服务器上了,打开tomcat-conf-server.xml的<host>标签的<context>下可以找到已经配置上的应用。当然我们也可以手动配置。

8.

https://www.ibm.com/developerworks/cn/java/j-lo-servlet/这个文章讲的是servlet的底层实现,暂时看不懂,以后再看吧委屈

9.我在访问时出现出现了如下错误


  • web.xml中< servlet-class >路径配置错误,检查servlet类是否在该路径下,注意要包含package名
  • web-inf/classes目录下没有XXXX.class文件,应该编译把classes作为输出目录
  • servlet类同时在web.xml中配置并加上了@webservlet的注解,去掉其中之一即可
  • tomcat并没有成功部署项目,检查servlet是否初始化,即在init方法里输出日志或断点,看是否进入
我的情况是第一种,上图中标识,“.”是在中文状态下输入的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值