当前位置: 首页 > news >正文

哈尔滨网站建设价位佛山网站seo优化排名公司

哈尔滨网站建设价位,佛山网站seo优化排名公司,坂田网站建设多少钱,网页图片另存为的时候保存不了jpg我们在开发中无时无刻都在与Servlet进行接触#xff0c;只是因为框架的封装性#xff0c;我们很少直接地去操作servlet#xff0c;但再怎么封装#xff0c;基本的思路都不会变化#xff0c;变得只是实现的方式#xff0c;Servlet是什么#xff1a;网上的回答基本是Servl…我们在开发中无时无刻都在与Servlet进行接触只是因为框架的封装性我们很少直接地去操作servlet但再怎么封装基本的思路都不会变化变得只是实现的方式Servlet是什么网上的回答基本是Servlet是Java类用于处理业务逻辑详细一点说Servlet确实是Java类他是在Tomcat包中的我们知道Tomcat是服务器他为我们封装Request和Response我们只需要实现Servlet接口就可以拿到封装好的Request和Response对象是不是很方便呢那么Servlet起到的作用就是在拿到封装好的Request后进行业务逻辑处理然后返回ResponseServlet的整个生命周期由Tomcat控制因此通过这个就能很好的实现开发业务逻辑与Http封装的解藕开发也会更加高效Servlet的作用我们可以通过顶层接口来分析Servlet的作用这几个方法都是由容器去调用我们自己去调用是无效的init这个接受一个容器帮我们封装好的ServletConfig然后保存到本地getServletConfig返回先前保存到本地的ServletConfiggetServletInfo返回一些version或者author等信息service接受请求对象用作开发人员业务处理完毕后返回响应对象destroy容器销毁servlet我们去来到源码中的GenericServlet看看他是怎样为我们去实现的public abstract class GenericServlet implements Servlet, ServletConfig{private transient ServletConfig config;Overridepublic void init(ServletConfig config) throws ServletException {this.config config;this.init();}Overridepublic String getInitParameter(String name) {return getServletConfig().getInitParameter(name);}Overridepublic abstract void service(ServletRequest req, ServletResponse res)throws ServletException, IOException;Overridepublic ServletConfig getServletConfig() {return config;} }这里截取了部分方法实现可以看到使用了模板方法模式反正我手长模板方法模式​zhuanlan.zhihu.comGenericServlet是abstract类你可以很经常地在abstract类中看见这种设计另外还有一个HttpServlet它的注释让我们不要去实现service方法因为他已经为我们封装了请求分发的逻辑比如判断一个请求是get还是post然后分发到具体的方法上去 if (method.equals(METHOD_GET)) {doGet(req, resp);} else if (method.equals(METHOD_HEAD)) {doHead(req, resp);} else if (method.equals(METHOD_POST)) {doPost(req, resp);} else if (method.equals(METHOD_PUT)) {doPut(req, resp);} else if (method.equals(METHOD_DELETE)) {doDelete(req, resp);} else if (method.equals(METHOD_OPTIONS)) {doOptions(req,resp);} else if (method.equals(METHOD_TRACE)) {doTrace(req,resp);} else {//// Note that this means NO servlet supports whatever// method was requested, anywhere on this server.//String errMsg lStrings.getString(http.method_not_implemented);Object[] errArgs new Object[1];errArgs[0] method;errMsg MessageFormat.format(errMsg, errArgs);resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);}我们需要实现的是doGet、doPost这些方法在里面写我们的业务逻辑这里又有模板方法模式的身影Servlet有两个息息相关的类ServletContext和ServletConfig对应JSP中九大作用域中的application和config对象本质是用于做数据分享ServletContextWeb应用有且仅有一个ServleContext在应用起动的时候会被创建他可以实现应用内的数据共享但是仅限单机版的应用程序因为他仅仅是保存在一个JVM创建的上下文中如果是分布式的那建议使用数据库、session或者其他组件来代替ServletConfig/*** A servlet configuration object used by a servlet container to pass* information to a servlet during initialization.*/用于容器向Servlet传递信息在ServletConfig和ServletContext都有getInitParameter方法 这两个方法的都能从web.xml中获取参数但是是有区别的。可以在xml中配置!-- 通过ServletContext#getInitParameter获取 -- context-paramparam-nametest/param-nameparam-valueServletContext/param-value/context-paramservletservlet-nametestServletConfig/servlet-nameservlet-classcom.web.test.TestServletConfig/servlet-class!-- 通过ServletConfig#getInitParameter获取 -- init-paramparam-nametestServletConfig/param-nameparam-valuegetFromServletConfig/param-value/init-paraminit-paramparam-nameencode/param-nameparam-valueutf-8/param-value/init-param/servlet如何获得ServletContext和ServletConfigServletConfig可以通过Servlet#getServletConfig获取该方法就在Servlet中Servlet是在ServletContext初始化之后才初始化Servlet可以在Web应用启动或者发送请求的时候初始化这要看load-on-startup的配置当这个值0相反为不配置或者0时Web应用启动的时候就会初始化Servlet初始化之后你才能获得ServletConfig。ServletContext在web.xml中读取到context-param的时候就会创建ServletContext然后将context-param中的值配置文件的地址塞到ServletContext中所以理论上来说这一步之后Web容器中的内容都能获取ServletContext了就看源码设计者觉得哪个地方需要就提供一个方法然后Tomcat启动的时候会负责调用方法或者注入ServletContext等一系列操作实现WebApplicationInitializer接口注册监听器实现ServletContextListenerServletConfig#getServletContextServletRequest#getServletContextHttpSession#getServletContext侧面也表现了ServletContext和ServletConfig的作用范围还有一个有意思的点你只要是在能获取到ServletContext的地方你就可以通过ServletContext#setAttribute来设置值这个操作对整个Web应用都可见不需要返回ServletContext因为我前面说过Web应用有且仅有一个ServleContext出现的地方都是传递的引用JavaWeb项目中有一个WEB-INF的文件夹可以放置一些不能被客户端直接访问的数据但不能被客户端访问并不代表不能被访问实际上可以通过Servlet映射或则重定向来访问RequestDispatcher rd request.getRequestDispatcher(./WEB-INF/view/a.jsp); rd.forward(request, response);servletservlet-nameCustomer/servlet-namejsp-file/WEB-INF/customer.jsp/jsp-file /servlet servlet-mappingservlet-nameCustomer/servlet-nameurl-pattern/User/url-pattern /servlet-mapping
http://www.yutouwan.com/news/500115/

相关文章:

  • 网站建设分工安装wordpress后加固
  • 手机网站底部固定菜单网站建立需要多久
  • 去除wordpress主题版权青浦网站优化
  • 相城区公司网站建设南京制作网页培训班
  • 网站推广步骤有哪些深圳品牌整合营销
  • 什么是企业网站策划案网站建设和seo讲师要求
  • 好网站开发策划要求互联网黄页是什么
  • 兰州做网站的公司兼职网站建设推广人才
  • 江西萍乡做网站公司嘉兴企业网站建设系统
  • wordpress 文库插件南宁网站优化推广方案
  • 《网页设计与网站建设》网站界面设计实验报告
  • 网页设计需要什么技术wordpress和dede seo
  • 河北涿州市网站建设个人网站设计模板素材
  • 如何自己建一个公司网站企业网站什么意思
  • 成都网站制作scgckj浩博建设集团网站
  • 网站管理员权限设置qq群推广网站免费秒进
  • 做试管的网站柴沟堡网站建设
  • 定制网站开发国家企业信用公示信息系统入口
  • 沈阳建设局网站wordpress影院主题
  • 温州 网站建设网站设计需要什么技术
  • 网站模板图怎么样建设一个电影网站视频下载
  • 网站负责人半身照网站登录密码怎么取消保存
  • 房山广州网站建设crm系统排行榜
  • s网站建设vi系统设计
  • 广州联亨科技网站建设paypal外贸门户网站
  • 网站建设谈单流程网上做推广有没有好一点的平台
  • 百度可以做网站吗谷歌seo搜索引擎
  • 菏泽网站建设兼职辽阳市城市建设档案馆网站
  • 金坛网站建设价格公司网站域名解析谁来做
  • 什么网站可以做pie chart做生意的网站