范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Servlet总结十HttpServlet

  为了使前后端的请求方式相同,我们需要在后端获取请求方式,然后进行判断前端发送的请求是否为规定的请求方式,如果不是规定的请求方式,就会报错;
  为了实现上述功能,此功能的代码需要在每一个Servlet类中都需要编写,怎么能封装一下,以后在每一个具体的Servlet类中不写这样的代码了,但是还是能够达到同样的效果?
  1、自定义的HttpServlet类,解决判断前后端请求方式是否一致的问题public class HttpServlet extends GenericServlet {     /**      *  此方法为原始service()方法,方法内将ServletRequest、ServletResponse强转为带有http的接口      *  然后调用重载的service(HttpServletRequest, HttpServletResponse)方法      *  所以此方法我们无需进行重写      */     @Override     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {         HttpServletRequest request = (HttpServletRequest) req;         HttpServletResponse response = (HttpServletResponse) res;         service(request,response);     }      /**      * 此方法获取请求方式后进行判断,      * 如果是GET请求就执行doGet()      * 如果是POST请求就执行doPost()      * 此方法没有理由重写,只需要将业务代码写在doGet()或doPost()方法中即可      */     public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {         String method = request.getMethod();         if("POST".equals(method)) {             doPost(request, response);         } else if("GET".equals(method)) {             doGet(request, response);         }     }      /**      * 我们需要什么请求时,子类继承此父类就应当重写对应的doGet()或者doPost()方法之一      * 在doGet()或者doPost()方法内写业务代码,即将原来的service()内的业务代码写到doXXX()中      */     public void doPost(HttpServletRequest request, HttpServletResponse response)          throws IOException {         response.setContentType("text/html;charset=UTF-8");         response.getWriter().print("应当发送GET请求");         throw new RuntimeException("应当发送GET请求");     }      public void doGet(HttpServletRequest request, HttpServletResponse response)          throws IOException {         response.setContentType("text/html;charset=UTF-8");         response.getWriter().print("应当发送POST请求");         throw new RuntimeException("应当发送POST请求");     } }
  当有了HttpServlet类之后,写一个login类(Servlet)来继承HttpServlet类试试 public class login extends cn.test.HttpServlet {     @Override     public void doPost(HttpServletRequest request, HttpServletResponse response)          throws IOException {         response.setContentType("text/html;charset=UTF-8");         response.getWriter().print("登陆成功!");     } }
  当Tomcat服务器启动并且通过浏览器访问此Servlet对应的页面时,Tomcat会执行login类,假设login类需要的是POST请求,所以我们将继承自父类的doPost()重写为我们需要的业务代码,执行顺序为:假设前端发送的是POST请求
  1、service(ServletRequest, ServletResponse)   将两个参数强转为带有Http的接口,之后执行
  2、service(HttpServletRequest, HttpServletResponse)  获取请求方式POST并通过判断执行重写的doPost()方法 doPost(HttpServletRequest, HttpServletResponse)   执行业务代码 假设前端发送的是GET请求
  1、service(ServletRequest, ServletResponse)   将两个参数强转为带有Http的接口,之后执行
  2、service(HttpServletRequest, HttpServletResponse)  获取请求方式GET并通过判断执行未被重写的doGet()方法
  3、doGet()   报错,将错误信息输出到控制台和前端页面
  所以,我们的Servlet继承HttpServlet后,后端需要的是什么请求,那么我们就重写对应的doPost()/doGet()方法,方法内是我们的业务代码,并不需要重写service()方法
  官方的HttpServlet
  实际上SUN公司为我们提供了一个类来解决判断前后端请求方式是否一致的类 javax.servlet.http.HttpServlet
  此类和我们自定义的HttpServlet类的使用方法和原理类似,所以总结如下的使用方法和注意 我们的Servlet继承HttpServlet后,后端需要的是什么请求,那么我们就重写对应的 doPost()  / doGet()  方法 doPost()  / doGet()  方法内就是我们的业务代码, doXXX()  可以看作 main()  方法 代码不在 service()  内编写了,不需要重写 service()  方法 HttpServlet中重载的两个 service()  方法并不需要也没有理由去重写这两个方法 当浏览器发送的请求方式和后台处理方式不同时,会出现一个错误,代号:405

吃鸡游戏更新80M,宠物系统抢先体验!有盔仔谁还稀罕芝顿?务实不浮夸!我是你们的情报小能手,微笑十倍镜。吃鸡手游和平精英近期的新军需非常多,但大都是以机甲风格为主!这类军需对小姐姐玩家非常不友好,对于她们而言最期待的只有首款宠物了!众所周孤岛惊魂6斗鸡游戏引麻烦育碧第二次遭受PETA谴责前不久发售的孤岛惊魂六啊,遇到了一些麻烦,善待动物组织peta要求育碧移除孤岛惊魂六中的斗鸡小游戏。在斗鸡小游戏中,玩家可以在各种不同品种的斗鸡中进行选择,是游戏中的格斗小游戏。很秋季大促有什么值得买?只有这四款值得期待,其他游戏看看得了有话不妨直说,有理请你来辩!兄弟们,我是莽夫。最近一段时间Steam的促销吸引了不少的新朋友,实在不知道自己要买什么好玩的游戏了,也有一些老朋友反应自己已经有了好多的游戏,满屏都是12月游戏推荐真是绝了,我头都挠秃了12月了,又该写本月游戏推荐了!正想着,我看了一眼本月的游戏发售列表那叫一个空空荡荡,比我钱包还空。不过在这荒芜新作的一个月中,也仍然有几款看上去还不错的游戏可以关注,一起来看看吧街霸对决流水春丽技能首曝千山流水百裂制空12月3日,街霸对决即将开启流水春丽限时招募活动,沙加特限时返场活动也将同步上线!活动时间12月3日050012月10日0500活动期间,大家参与招募即有机会获得全新的林属性格斗家Epic喜加二黎明杀机whileTruelearn()免费领取IT之家12月2日消息,Epic新一周的喜加二游戏已推出,生存恐怖游戏黎明杀机和益智编程游戏whileTruelearn()免费领取。黎明杀机黎明杀机是一款多人(4vs1)的恐怖游新英雄暃爆料!飞檐走壁,无视名刀!超越镜澜强度爆炸兄弟们,峡谷的天塌了!王者荣耀史上最离谱的英雄暃在体验服上线了!让我们一起来看看吧。新英雄暃介绍首先暃是没有蓝条的,血条下面的是能量条,使用技能消耗能量。暃的2技能是上墙,可以在墙金铲铲之战王者局最毒瘤阵容,秘术狐狸简单无脑Hello,大家好,我是猫呦,今天给你们分享一下最近猫呦玩的阵容,最近常玩阵容换形游侠,狮子狗,狐狸,斗枪,男枪。通常我都是在这几套阵容选择来玩,看前期的装备跟来牌来决定玩哪套阵容云顶之弈如何喂养一只神级塔姆?约德尔人竟成最好的养料不得不说,云顶之弈S6赛季,确实很好玩,因为有着高达150多种海克斯科技的加入,让云顶之弈再度充满了未知的可能性。当然了,还有很多的棋子也是非常的有意思,比如说可近战可远程的杰斯,冷门赌乌鸦,基本0同行简单上分!云顶金铲铲阵容推荐大家好我是小瑞,在版本更新之后,当前版本黑魔法阵容玩法层出不穷,加上当前版本游戏节奏加快,各种23费赌狗玩法都出来了。所以今天小瑞给大家带来一套0同行的阵容帝国赌乌鸦阵容组成崔斯特排位黑科技EZ全新出装容错率拉满!季前赛伊泽瑞尔新思路导语在目前的韩服排位中,维克托和卡萨丁依靠着新装备破碎王后之冕在新赛季中胜率一路飙升。而在近日越来越多的伊泽瑞尔玩家将这件装备也融入了自己的出装之中,搭配着新版的致命节奏,伊泽瑞尔
我的世界你学会了吗?隐藏富豪都这样藏东西老玩家快删掉众所周知,在我的世界里踏踏实实的收集资源是一件非常费力的事情。尤其在有很要好的小伙伴的前提下,已经有人收集了我们顺便先借点也不是什么问题。然而对方可能也是这个想法,所以不光要自己藏永劫无间开启预售联动阴阳师网易云游戏多重豪礼倾情送6月9日,多人动作竞技游戏永劫无间正式开启国内预售,并宣布了与阴阳师的联动,只要参与预购就能获得大量福利。网易云游戏平台为了让各位玩家也能体验到这款武侠大作的魅力,也第一时间开启了摩尔庄园预下载开启,网易云游戏无需下载轻松创建角色在儿童节这一天,承载了我们回忆的摩尔庄园手游6月1日即将公测,随着游戏的手机版上线,我们又可以在摩尔庄园里畅玩,享受快乐的休闲时光了。在游玩时,如果由于手机配置不够影响游戏体验,可我的世界劳动节限定砖块屋,真搬砖建筑在五一假期首先祝各行各业的劳动者们工作顺利,万事胜意!美好的世界需要大家一起来建造劳动永远最光荣今天带来的这款建筑与节日主题映衬简单易建造非常适合送给朋友作为节日礼物给劳动者们送上用这招玩光遇海洋节!无需配置内存轻松多开助你获海量奖励今天,光遇开启海洋节,通过活动大家可以获取大量蜡烛和各种道具。在游玩时,如果有些小伙伴担心手机配置达不到要求,无法获得最完美的游戏体验,小编这里有一个办法可以轻松解决这类问题。使用不用再问光遇国际服在哪下载啦!看这里就对了最近总有小伙伴问我怎么玩光遇国际服,由于国际服下载繁琐,且游玩需要门槛。在这里,我推荐大家使用网易云游戏,轻松解决这些问题。想要游玩光遇国际服的玩家,最简单的办法就是使用网易云游戏光遇国际服游玩教程,轻轻一点就能开玩光遇国际服相比国服,可以抢先体验游戏更新内容,不过由于国际服下载复杂,在游玩时也存在语言不通问题,让很多想要体验一下的小伙伴非常纠结。使用网易云游戏游玩光遇国际服就可以无需下载,随怎么玩明日方舟最爽?这招不用下载无需配置随时挂机明日方舟新一轮常规卡池轮换已经上线了,这次卡池一共有5位干员参与概率提升,其中三位为五星干员,两位是六星,如果其中有你想要的干员,可以考虑趁着这次UP入手。在获取到想要的角色后游玩原神1。6可莉来了!无需配置轻松畅玩全特效新地图原神1。6版本已经上线,不但有新限时地图,还有UP池与大家见面,大家赶紧去新版本中畅玩吧。在游玩时,如果有小伙伴受限于手机配置,无法享受最高画质带来的完美游戏体验,可以使用网易云游光遇集结季如何快速毕业?11翼大神教你一招搞定光遇集结季即将在4月28日上线国服,相信各位光之子们已经期待已久了。在这个最新季节中,除了会有大量新鲜内容,还有光之子们期待已久的新故事。在游玩时,很多小伙伴可能会担心由于手机配置摩尔庄园怎么快速升级?摸鱼必备的浏览器畅玩你一定要会今天,我们期待已久的摩尔庄园手游终于上线了,这款休闲类型的养成游戏给很多玩家带来过美好的童年记忆,今天手游的上线,相信会帮很多玩家找回童年乐趣。不过由于游戏画面相较于之前有了大幅度