检查用户名是否存在的servlet代码怎么写_Servlet详解!!!

1 掌握 请求转发

2 掌握 请求重定向

3 掌握cookie

1. 请求转发介绍

(1) 为什么需要请求转发?

5b92502a63f5094e388ba4660fe03ce8.png

以此请求的处理需要多个Servlet的联动操作,第一个Servlet需要用到其他Servlet

已经声明的逻辑处理代码

(2) 请求转发的本质是什么?

其实就是在一个Servlet中调用其他的Servlet

2. 请求转发的特点和request作为数据载体进行数据流转

(1) 请简要说明请求转发的特点

1. 降低Servlet之间的冗余

2. 以此请求转发内的Servlet共享此次请求的request和response对象

3. 浏览器地址栏信息不改变,还是一次请求

(2) 使用request对象作为请求转发的数据的载体的方法是什么?(存储和获取)

Req.setAttribute() 将request作为请求转发的数据的载体

Req.getAttribute()

3. 请求转发之request对象总结

(1) 总结说明request作用域的特点

一次请求转发内的servlet

作用

Request对象可作为数据流转的载体

(2) 总结说明请求转发的特点

4. 降低Servlet之间的冗余

5. 以此请求转发内的Servlet共享此次请求的request和response对象

6. 浏览器地址栏信息不改变,还是一次请求,使用了多个servlet

7. 会导致数据重复提交(通过刷新动作再次调用a重复流程)

4. 重定向的作用和特点

(1) 总结说明重定向的特点

10f862810f5b2cdaf48c9f1fc86bfce6.png

重定向:

作用:

保护第一次的请求,避免因为用刷新动作频繁的触发A的执行

特点:

两次请求,地址栏信息改变

5. cookie的介绍和特点和作用

dc17b17673fd45ff04aa60e72e500fdc.png

(1) 简要说明为什么需要cookie

不同的请求使用相同的请求数据,但是请求只要结束,数据就被销毁了,其他请求需要将公共数据重新书写发送

(2) cookie的特点是什么

浏览器端的数据存储技术

那些数据需要被存储是在服务器端被声明,以响应的方式告诉浏览器进行存储

不适合大量数据的存储

6. cookie的代码实现

(1) 怎么获取Cookie对象。

获得所有的cookie对象

Cookie[] cookies=req.getCookies();

(2) 书写代码获取请求中的键名为a的cookie信息的值

Cookie[] cookies=req.getCookies();

String b=null;

for (Cookie cookie : cookies) {

System.out.println();

if ((cookie.getName()).equals("a")) {

b=cookie.getValue();

}

}

7. cookie的有效期和有效路径设置

(1) 声明一段代码,设置Cookie的有效期为三天

Cookie cookie = new Cookie(name,value);

Cookie.setMaxAge(3600*24*3)

Resp.addCookie(cookie)

(2) 创建一个Cookie信息并设置其访问路径为/虚拟项目名/a

Cookie cookie = new Cookie(name,value);

Cookie.setPath(‘/虚拟项目名/a’)

8. session的介绍和基本使用流程

5b92502a63f5094e388ba4660fe03ce8.png

(1) 根据视频,说出你对session的理解及其作用

(2) 根据视频,如何保证不同请求获取到同一个session对象

根据cookie技术,存储一个编号,不同的请求根据不同的编号获取不同的session对象

9. session机制代码实现

(1) 请简述req.getSession()的作用

获取session对象

(2) 获取session对象的id的方法是什么?

Session.getId()

10. session的特点和流程总结

(1) 简述session使用流程

流程:

* 1. 浏览器发送请求到ServletA ,在ServletA中使用req.getSession()获取Session对象,如果此次请求中没有SessionID

* 则会创建一个新的Session对象,如果有SessionID则将其对应的Session对象返回(前提是该session对象没有到期且session对象没有被销毁)

* 对象到期销毁了,就算有sessionID也会创建一个新的Session

* 2. 校检session是否失效,存储数据到session对象中或者获取session中的数据或者删除session中的数据

(2) 简述session的特点

特点:

* session解决了同一用户不同请求的数据共享问题

* session的作用域:浏览器不关闭,session不失效,则同一用户的任意请求获取的都是同一个session

* 一次会话(浏览器从启动到关闭)

(3) 简述session的作用域

浏览器开启到关闭

cookie 和session 的区别:1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。cookie 和session 的联系:session是通过cookie来工作的session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。在购物网站中通常将用户加入购物车的商品联通session_id记录到数据库中,当用户再次访问是,通过sessionid就可以查找到用户上次加入购物车的商品。因为sessionid是唯一的,记录到数据库中就可以根据这个查找了。

问题二:

sessionid和request对象都存储在内存的缓存数据库中,存活的周期不同

11. session的有效期设置和强制销毁

(1) session的默认有效期?怎么设置session的有效期

(2) 程序中session都有一个默认的过期时间,其中tomcat中的默认时间为30分钟,根据需要我们可以去手动设置session的过期时间,以下是设置session的过期时间的三个方法:1.在tomcat-->conf-->conf/web.xml中的<session-config>中设置:<session-config><session-timeout>30</session-timeout></session-config>2.在项目的web.xml中定义:<session-config> <session-timeout>20</session-timeout> </session-config>注:20则设置过期时间为20分钟 测试通过3.在程序中定义:session.setMaxInactiveInterval(30*60);设置单位为秒,设置为-1永不过期

(3) 怎么强制销毁session?

session.removeAttribute()适用于清空指定的属性

session.invalidate()是清除当前session的所有相关信息

12. session之优化登录案例

数据处理

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// 设置请求编码格式

req.setCharacterEncoding("utf-8");

// 设置响应编码格式

resp.setContentType("text/html;charset=utf-8");

// 获取请求数据

String uname=req.getParameter("uname");

String pwd=req.getParameter("pwd");

// 处理请求数据

if (uname.equals("唐爸爸")&&pwd.equals("123")) {

//

resp.getWriter().write("登陆成功");

}else {

// 创建session对象

HttpSession session=req.getSession();

session.setAttribute("error", "用户名或密码错误");

// 重定向

resp.sendRedirect("session");

}

// 响应处理结果

}

登陆页面:

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// 设置请求编码格式

req.setCharacterEncoding("utf-8");

// 设置响应编码格式

resp.setContentType("text/html;charset=utf-8");

// 获取请求数据

// 处理请求数据

// 获取session对象

HttpSession session=req.getSession();

// 响应处理结果

String flag=(String) ((session.getAttribute("error")==null?"":session.getAttribute("error")));

// 销毁session(如果不销毁,会导致session得到的值会一直存在)

session.invalidate();

resp.getWriter().write("<html>");

resp.getWriter().write("<body>");

resp.getWriter().write("<form action='session01' method='get'>");

resp.getWriter().write("<font color='red'>"+flag+"</font>");

resp.getWriter().write("用户名:<input type='text' name='uname'/>");

resp.getWriter().write("密码:<input type='password' name='pwd'/>");

resp.getWriter().write("<input type='submit' value='提交'/>");

resp.getWriter().write("</form>");

resp.getWriter().write("</body>");

resp.getWriter().write("</html>");

}

13. 简述ServletContext对象的作用(application)

(1) 简述ServletContext对象的作用

为了解决不同用户之间的共享数据问题(session只有在同一个用户之间有效)

(2) 获取ServletContext对象的三种方式是?

获取servletcontext对象(三种方式)

ServletContext context1=this.getServletContext();

ServletContext context2=this.getServletConfig().getServletContext();

ServletContext context3=req.getSession().getServletContext();

14. ServletContext对象存储和获取共享数据

存储用户共享数据

* sc.setAttribute(String name,Object value)

* 获取用户共享数据

* sc.getAttribute(String name);

* 删除共享数据

* sc.removeAttribute(String name)

15. ServletContext特点&获取web配置文件全局属性&获取资源流对象和绝对路径

(1) 简述ServletContext对象的作用和特点。

作用:

* 解决了不同用户之间的数据共享问题

特点

* 服务器创建

* 所有用户共享

(2) web.xml中的全局属性数据的配置方式是;

* 获取web.xml中的全局配置属性,作用:将部分动作和源文件进行解耦.我们只需要在xml配置文件中进行相关配置就会改变代码的执行效果

* sc.getInitParameter(String name) 注意:返回的是string类型的对象

* 特点

* 服务器创建

* 所有用户共享

* 生命周期

* 服务器开启到服务器关闭

16. ServletContext对象实现网页访问计数次数

(1) 完成课上的代码

17. ServletConfig对象学习

(1) 说说ServletConfig对象的作用

主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习人工智能必须攻克三道门槛:数学基础、英语水平与编程技术

来源&#xff1a;搜狐广义的说&#xff0c;人工智能包含诸多不同方法&#xff0c;其主旨是让程序像一个智能体一样解决问题。机器学习是实现人工智能的一种方法&#xff0c;它不完全依靠预先设计&#xff0c;而是从数据中进行总结&#xff0c;达到模拟记忆、推理的作用。包括诸…

【智能驾驶】自动驾驶深度感知技术对车和行人的检测

来源&#xff1a;小马智行第二场技术沙龙今天我主要想分享自动驾驶感知技术在探索的过程中&#xff0c;采用的传统方法和深度学习方法。传统方法不代表多传统&#xff0c;深度学习也不代表多深度。它们有各自的优点&#xff0c;也都能解决各自的问题&#xff0c;最终希望将其结…

matlab读取其他位置,将文件的数据读取到matlab中,进行编辑,然后将其保存到其他位置...

将文件的数据读取到matlab中&#xff0c;进行编辑&#xff0c;然后将其保存到其他位置 我有一个名为EXP1_SQ1_Template.txt的文件。这是一个简单的文本文件&#xff0c;包含以下8行&#xff1a;LOAD BOX 1 SUBJ M1_299633_D295158_JUN191910_Aut_ERROR2 EXPT St(m)_Se(n)_Rat1 …

中国信通院《新型智慧城市发展研究报告》

来源&#xff1a;云头条本报告结合新时期我国新型智慧城市的建设重点&#xff0c;围绕顶层设计、体制机制、智能基础设施、智能运行中枢、智慧生活、智慧生产、智慧治理、智慧生态、技术创新与标准体系和安全保障体系等十大核心要素&#xff0c;深入分析研究了我国新型智慧城市…

oracle 内存分析工具,IDE 中的分析工具

IDE 中的分析工具Oracle Solaris Studio IDE 提供的交互式图形分析工具可用于检查在 IDE 内部运行的项目的性能。分析工具使用 Oracle Solaris Studio 实用程序和操作系统实用程序来收集数据。可通过 "Profile Project"(分析项目)按钮使用分析工具。Monitor Project(…

关于直播,所有的技术细节都在这里了(2)《转载》

本文转载置顶&#xff1a;http://blog.ucloud.cn/archives/694 感谢作者无私的奉献精神&#xff01; 上篇《 关于直播&#xff0c;所有的技术细节都在这里了(1)《转载》 》我们讲述了如何让直播内容以“最短”路径从主播到观众上&#xff0c;传输层面获得最低延迟&#xff0c;在…

光刻机的工作原理及关键技术

来源&#xff1a;传感器技术光刻机的工作原理&#xff1a;利用光刻机发出的光通过具有图形的光罩对涂有光刻胶的薄片曝光&#xff0c;光刻胶见光后会发生性质变化&#xff0c;从而使光罩上得图形复印到薄片上&#xff0c;从而使薄片具有电子线路图的作用。这就是光刻的作用&…

sarscape 将dem文件转化成stl_SARscape与SARProz软件中的重要缩写

1.SARscapeSARscape 由 sarmap 公司研发&#xff0c;是国际知名的雷达图像处理软件。 该软件架构于专业的ENVI 遥感图像处理软件之上&#xff0c;提供完整的 SAR 数据处理功能&#xff0c;全面支持四种模式的数据&#xff1a;雷达强度图像处理、雷达干涉测量(InSAR/DInSAR)、极…

很全的路由器默认初始密码集合.txt_UpSet——集合关系可视化神器

学习更多生信小技巧&#xff0c;点上方蓝字关注我们分析背景01提到集合的可视化&#xff0c;大家第一时间想到的是用Venn图来展示&#xff0c;在前期的推文中&#xff0c;小编也给大家分享了venn图的绘制方法。然而&#xff0c;值得一提的是&#xff0c;小编分享的方法是基于R语…

自动驾驶的摩尔定律:无人驾驶的最终实现时间或在2035年丨厚势汽车

来源&#xff1a;厚势汽车 无人驾驶的真正落地时间的预测&#xff0c;近两年从非常乐观迅速转向谨慎甚至悲观。真正的无人驾驶到底还需要多久&#xff0c;无人驾驶初创公司 May Mobility 的 CEO Edwin Olson&#xff0c;针对这个问题&#xff0c;结合已有的数据做了一个推理。他…

电脑屏保海底世界_世界上最后一个深海实验室,隐藏了人类未来的秘密

如果世界末日来了&#xff0c;人类站在荒废的土地上&#xff0c;仓皇奔往未来的逃生门&#xff0c;我们应该往哪去&#xff1f;有人说&#xff0c;是太空。有人说&#xff0c;是海洋。现在有一个地方&#xff0c;正把两者结合起来——Aquarius Reef Base 深海实验室。这个处于海…

Android——检查网络是否已经链接

新建一个项目testNet 添加一个button layout.xml&#xff1a; <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layou…

moment 时间戳_【通知】2020 CATTI 考试准考证打印时间

2020年CATTI考试时间为11月14、15日&#xff0c;11月起将陆续开始打印准考证。建议尽早打印&#xff0c;可以多打印几份备用。各省市准考证打印时间一切信息以考试报名系统为准。重庆&#xff1a;11月6日至13日湖北&#xff1a;11月9日9:00至11月15日13:30四川&#xff1a;11月…

PANS:智力以外的特质,会影响长期成就

来源&#xff1a;中国生物技术网美国宾夕法尼亚大学的亚裔心理学家Angela Duckworth经常会被人问道&#xff1a;是什么因素预示着成功&#xff1f;鉴于Duckworth在“Grit&#xff08;坚毅&#xff09;”研究领域所做的开拓性工作&#xff0c;这是一个可以理解的现象。坚毅这一性…

截取字符串的函数_常用的Excel函数

1.条件判断&#xff1a;IF函数应用数据目的&#xff1a;判断成绩所属的等级方法&#xff1a;在目标单元格中输入公式&#xff1a;IF(C2>90,"优秀",IF(C2>80,"良好",IF(C2>60,"及格","不及格")))&#xff0c;双击小加号填充语…

爱思助手安卓能用吗_专业的苹果越狱工具:爱思助手!

本文由绿盒下载站原创(www.42xz.com)欢迎关注微信公众号“绿盒下载站”爱思助手是一款专业的苹果刷机助手&#xff0c;里面包含了苹果软件、热门游戏、苹果铃声、高清壁纸等多功能&#xff0c;能帮用户轻松管理文件、照片、视频等&#xff0c;爱思助手除了能支持一切苹果手机版…

《麻省理工科技评论》发布2019年全球十大突破性技术!

来源&#xff1a;钱塘大数据《麻省理工科技评论》每年都会评选出当年的“十大突破性技术”&#xff0c;这份在全球科技领域举足轻重的榜单&#xff0c;曾精准预测了脑机接口、智能手表、癌症基因疗法、深度学习等诸多热门技术的崛起。正如比尔盖茨所说&#xff0c;看过这些突破…

给排水规范大全2020_住宅电气、给排水、消防安装工程的质量通病分析

“住宅项目机电安装工程”质量通病分析&#xff0c;从电气工程、给排水工程、消防工程3方面案例分析&#xff0c;各中案例非常值得各施工企业学习。01.电气工程施工质量通病02.给排水工程施工质量通病03.消防工程施工质量通病上述所列质量通病并不是全部&#xff0c;质量通病是…

从ACT-R探讨认知智能

来源&#xff1a; 人机与认知实验室【ACT—R模型最大的不足在于缺乏意向性与形式化的有机结合&#xff0c;这也是AI的瓶颈之一】哈耶克在默知识的基础上发展出了一整套体系&#xff0c;他说&#xff1a;“因为默知识不可表达&#xff0c;所以不可记录&#xff0c;所以不可集中&…

如何看创建媒体日期_汽车各零部件也有身份证,教你们如何看这些部件的出生日期...

大家在逛超市选商品时不知道有没有看产品生产日期的习惯呢?反正小编无论买什么食物&#xff0c;只能是吃进肚子里的都去有意无意的看一下生产日期&#xff0c;这些产品的生产日期也一般都是非常直观的印在外包装上。而汽车由成千上万个零部件组成&#xff0c;每个零部件都来自…