Web Service——初探MVC之Model

声明:本人刚接触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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值