[原创]初尝servlet_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2240 | 回复: 1   主题: [原创]初尝servlet        下一篇 
风之情
注册用户
等级:列兵
经验:97
发帖:2
精华:0
注册:2015-1-30
状态:离线
发送短消息息给风之情 加好友    发送短消息息给风之情 发消息
发表于: IP:您无权察看 2015-1-30 14:18:16 | [全部帖] [楼主帖] 楼主

在servlet中有三个子接口FacesServletGenericServletHttpServlet;最常用的当然是HttpServlet.

现在我们看看servlet的生命周期,在执行时,首先加载ClassLoader,然后对其进行实例化,在到servlet中初始化 init( ServletConfig config),方法中的参数config是servlet的配置信息,初始化时查看API文档可以看到在 GenericServlet中有两个初始化方法,分别是void init()  和 void  init(ServletConfig config)查看源码时知道,在 void  init(ServletConfig config) 中有this.config=config这句话,它是对config进行了除了初始化,所以我们在重写init方法时,如果重写void  init(ServletConfig config)这个方法,就会将this.config=config覆盖掉,这样在执行时由于config没有初始化为null,就会抛出NullPointerException,所以我们要初始化一些信息时最好是重写void init() 这个方法。ok,在初始化之后呢,就是以多线程的方式处理客户端的请求,首先执行service()方法——>doGet()  or  doPost(),调通doGet()还是doPost()处决于form表单的提交方式,最后在退出的时候就会执行destroy()方法,当tomcat重启或者重载时会退出。在执行过程中只有一个对象以多线程的方式处理客户端发出的请求,而且init()方法只执行一次,只在第一次初始化的时候。

之后在编译之后将.class文件放在webapp中,然后web.xml配置servlet:

<servlet> 

  <servlet-name>hello</servlet-name>

  <servlet-class>HelloServlet</servlet-class>

  </servlet>

  <servlet-mapping> 

  <servlet-name>hello</servlet-name>

  <url-pattern>/helloServlet</url-pattern>

 </servlet-mapping> 

 <servlet-mapping> 

  <servlet-name>hello</servlet-name> 

  <url-pattern>/hello.asp</url-pattern>

  </servlet-mapping>

在<servlet-name>hello</servlet-name>是给你的servlet命名,在这个标签对中可以随便写,只要在 <servlet-mapping> 中的<servlet-name>hello</servlet-name> 与servlet标签中的名字配对就行,在<servlet-class>HelloServlet</servlet-class>中的内容是你编译之后的.class文件的名字,在<url-pattern>/helloServlet</url-pattern>中内容是你要访问的路径,这里面内容也是可以随意写的,在这里我配置了两个路径/helloServlet和/hello.asp,但是一定要加上/,配置好xml后,启动tomcat就能访问了。




赞(0)    操作        顶端 
rui.yuan
注册用户
等级:中校
经验:1637
发帖:29
精华:0
注册:1970-1-1
状态:离线
发送短消息息给rui.yuan 加好友    发送短消息息给rui.yuan 发消息
发表于: IP:您无权察看 2015-1-30 15:22:03 | [全部帖] [楼主帖] 2  楼

web.xml里面可以配置<load-on-startup>这样只要服务器启动就可以执行了



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论