设为首页 收藏本站
查看: 1327|回复: 0

[经验分享] Servlet请求和响应

[复制链接]
发表于 2017-2-19 08:39:01 | 显示全部楼层 |阅读模式
   一、写在前面的话
  今天是2016年8月4日,距离我到这个新公司正好一个月,虽说是新公司,10个人的项目组9个我都认识。环境上和沟通上都没有什么问题,最重要的问题是技术上的,做了将近三年的.net现在要转向做java了,这一个月真是煎熬啊,离开老东家前每天在公司偷偷的花了一些时间熟悉了一下java语法,进组第一天简单布置了一下位置和熟悉新公司的环境,第二天申请了SVN权限,下载了代码并把环境配置了一下,第三天让项目组长分配了几个简单的bug改了下,其实就java和C#而言两者的语法还是蛮像的,JAVA中的SSM和之前做ASP.NET MVC中使用的Ninject、Dapper啥的思想上也都差不多,这些都不是让我烦的事情(当然深入研究肯定会发现不一样的东西,就实现业务逻辑区别不大),让我受不了的是IDE呀,不知道.NETer在用IDEA或者Eclipse时候有没有感觉不适应啊,反正我是超不适应。
  不久前公司来了一些实习生,老板让我们这些工作几年的人带带他们,看着这些孩子天真且乐于学习,想起了三年前毕业时候的自己,每次他们问我java问题的时候,真的不好意思啊,扯来扯去总是扯到.net上(囧),所以呢为了不给新人带跑偏了,我觉得我有必要把Java好好的学习下。于是给自己定了一个100天的计划(其实早就有这个计划了),就像当年高考一样,突击一下。至少在人家实习这个阶段结合自己以前工作的经验传授一些有用的东西吧,不误人子弟也算是对自己负责。
  100天貌似社会上很多培训班都能出师了吧,我这个人比较笨,估计能把Servlet、JSP弄明白就行了(主要是怕实现不了)。每天下班看一点,总结几个问题,就以这样的方式来学习,估计100天也能有不少收获,嘿嘿~,想想还有点小激动呢!
  二、正文
  1.Servlet请求和响应
  ①web容器概念:顾名思义就像一个盒子,里面可以装东西,这里的web容器(Tomcat,WebLogic,WebSphere)就是装载Servlet和JSP的环境、负责管理它们的各种对象,并且负责它们的生命周期以及相关服务的链接。
  ②从浏览器请求到服务器响应
DSC0000.png

  I.客户端对Web服务器发出HTTP请求
  II.HTTP服务器(Apache)收到HTTP请求以后,转发给Web容器(Tomcat),此时Web容器会解析HTTP请求的内容,创建各种对象(例如HttpServletRequest、HttpServletResponse、HttpSession等)
  III.web容器通过请求的URL来选择需要用哪个Servlet来处理请求(这个就是web.xml中配置的或者@webServlet注解的作用了)
  IV.Servlet根据请求对象(HttpServletRequest)来决定做什么样的处理,然后通过响应对象(HttpServletResponse)来创建响应。
  V.Web服务器将响应回传到客户端。
  ③web容器接收了Http请求做了什么事情?
  以下这张时序图,很好的说明了web容器都干了啥。
DSC0001.png

  I.Web容器接收到web服务器发来的HTTP请求,就会先创建两个对象,HttpServletRequest对象以及HttpServletResponse对象,将请求信息设置给HttpServletRequest,HttpServletResponse对象后面响应会用到
  II.接着Web容器会读取Web.xml或者@WebServlet的设置,选择处理该请求的Servlet类,调用service()方法,将I创建的两个对象作为它的参数,service()方法会根据请求的方式(GET、POST)来选择调用doXXX()方法,这里使用的是Get方式。
  III.这里在doGet()方法内分别调用的getParameter()方法取得请求的参数、setContentType()设置内容类型以及getWriter()方法,它会返回一个PrintWriter对象,向请求方输出显示字符串。
  V.因为Http是无状态的协议,所以用完之后就销毁了上面创建的两个对象。
  这里请求响应对象的创建到销毁涉及到了,Servlet的生命周期,可以参考这篇文章http://www.cnblogs.com/xuekyo/archive/2013/02/24/2924072.html
  因为内容都是整理了别人的智慧结晶,所以可能后续的文章就不会更新在首页了,准备认真去代码的搬运工~
  参考资料:《JSP&Servlet学习笔记》

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344046-1-1.html 上篇帖子: Java技术体系图 下篇帖子: 成为一名JAVA高级工程师你需要学什么【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表