Web Service——初探MVC之Model

来源:互联网 发布:java面试逻辑题及答案 编辑:程序博客网 时间:2024/06/06 05:56

声明:本人刚接触Java Web,知识面较窄,会常犯常识性错误,望谅解,欢迎指教!

这几天在设计一个系统的框架,用的是MVC模型,由于刚接触Web,所以不敢用Struts之类的框架把自己搞晕,慢慢来。

目前的技术结构是Servlet+ Bean+数据库,服务端提供数据服务,Android客户端负责展现内容,所以服务端没有View。

Controller由Servlet实现,在写Model时我犯浑了,为了响应多个客户端的并发请求,我把Model写成线程,同步的处理请求;问题随之而来,当我从request中往外拿数据时,取到的是一大堆null,开始我很疑惑,以为是Controller部分的框架出问题了,可是修改之后问题还没有解决,于是我开始着手于Model部分的框架;当我看到Model继承的Thread的时候,让我想到Servlet的生命周期,我想有可能跟生命周期有关系,因为Model和Servlet是同步执行的,当Servlet结束的时候,Model可能刚刚执行,Model的执行依赖于request和response,如果Servlet结束时与该次请求对应的request失效,那么在Model中就有可能获取不到任何数据。

修改Model框架后运行,没有任何问题。

虽然运行成功,但是大部分推断都是猜测,于是通过百度我了解到:

1.一般情况下,同一个Servlet只会在服务器中存在一个实例,所以上面关于request的有效性和Servlet生命周期有关的推断是错的。

2.对于每一个请求,服务器都会创建一个单独的线程调用Servlet实例的相应方法来响应请求

通过以上两点,我推测request的有效性和服务器创建的线程的生命周期有关,如果那个线程结束了,request就无效了,重构前的Model出现的错误也能说得通。

现在的问题是怎么验证request的有效性和那个线程有关?

0 0
原创粉丝点击