




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Servlet学习笔记第一节、 Servlet的三种实现方式一、 实现javax.servlet.Servlet接口(2012年7月30日 09:32:33)实现javax.servlet.Servlet接口需要实现下面5个方法:1. public void init(ServletConfig parm1);该方法用于初始化Servlet(作用类似于构造函数);该函数只会被调用一次,当用户第一次访问该Servlet时被调用。2. public ServletConfig getServletConfig();该方法主要用于得到Servlet的配置信息。 3. public void service(ServletRequest req, ServletResponse res)/从res中得到PrintWriterPrintWriter pw = res.getWriter(); pw.println(“返回的信息”); 该方法用于处理业务逻辑,每当用户访问Servlet时,该方法都会被调用;参数req:用于获取客户端(浏览器)的信息;参数res:用于向客户端(浏览器)返回信息;返回信息通过PrintWriter返回:4. public String getServletInfo()5. /销毁Servlet实例,释放内存/下面3种方式会触发destory()函数被调用:/1.reload该Servlet(webApps) 2.关闭tomcat 3.关机public void destroy()在web.xml中添加如下代码来配置Servlet:hello com.mystudy.servlet .Hello!- 与上面的对应 -hello/zx二、 继承GenericServlet开发Servlet(2012年7月30日 11:31:10)只需要重写service()方法即可public void service(ServletRequest res, ServletResponse res)/从res中得到PrintWriterPrintWriter pw = res.getWriter(); pw.println(“返回的信息”); 三、 继承HttpServlet开发Servlet(目前主要采用这种方法)需要重写doGet()和doPost()方法1、 /处理get请求;/参数req:用于获取客户端(浏览器)的信息;/参数res:用于向客户端(浏览器)返回信息;public void doGet(HttpServletRequest req, HttpServletResponse res)/从res中得到PrintWriterPrintWriter pw = res.getWriter(); pw.println(“返回的信息”); 2、 /处理post请求/参数req:用于获取客户端(浏览器)的信息;/参数res:用于向客户端(浏览器)返回信息;public void doPost(HttpServletRequest req, HttpServletResponse res)/下面代码将doPost()和doGet()两种方法合二为一this.doGet(req, res);四、 Servlet的生命周期1、 装载servlet,有相应的容器(tomcat,jboss,weblogic)来完成;2、 创建一个Servlet实例;3、 调用servlet的init()方法,该方法只在第一次访问该servlet时被调用一次;4、 服务,调用servlet的service()方法,一般的业务逻辑在这里处理,该方法在访问该servlet时都会被调用;5、 销毁,调用servlet的destory()方法,销毁该servlet实例,该方法在以下情况下会被调用:a.reload该webApp b.tomcat重新启动 c.关机第二节、 同一用户的不同页面之间数据共享的四种方式(2012年7月31日 11:03:07)一、 Cookie(小甜饼)1、 什么是cookie?服务器在客户端保存的用户信息,比如用户名、密码等,就是cookie;这些信息的数据量并不大,服务端需要的时候可以到客户端去读取,一般保存在C:Documents and Settings目录下。2、 cookie可以用来做什么?A. 保存用户名和密码,在一定时间不用重新登录;B. 记录用户访问网站的喜好(比如有无背景音乐、网页的背景颜色等);C. 网站的个性化,比如定制网站的服务、内容;3、 对cookie的形象化理解可以把cookie理解成一张表,这张表有两列(一列是名字String,另一列是值String);行数理论上是没有限制的,每一行就代表一个cookie属性。名字(String)值(String)namezhangxian4、 如何使用cookie?A. 在服务端创建一个cookieCookie c = new Cookie(String name, String value);B. 将cookie添加到客户端response.addCookie(c);C. 从客户端读取cookie到服务器request.getCookies();5、 Cookie的注意事项A. 由于cookie是保存在客户端,所以安全性不高;B. Cookie信息的生命周期可以在创建时设置,从创建的那一刻起就开始计时,到时间后该cookie信息就无效了;二、 sendRedirect()跳转通过该方法将信息传送到下一个页面:如sendRedirect(“welcome?user=hehe”);1、welcome:代表要跳转的那个servlet的URL;2、 servlet名和变量名之间有?号;3、 如要传送两个以上的值,则要用&将不同变量隔开;4、 如果传送的是中文,则得到的是乱码,需要处理一下;该方法的优缺点:优点:传送信息的速度快;缺点:只能传送字符串,不能传送对象;三、 session技术1、 什么是Session?当用户通过浏览器访问某个网站时,服务器就会在服务器内存为该浏览器分配一块空间,这份空间被该浏览器独占;这份空间就是session。2、Session可以用来做什么?A、 网上商城的购物车B、 保存登录的用户信息C、 实现同一用户的不同页面间数据共享D、 防止用户非法进入某个页面3、对session的形象化理解可以把session理解成一张表,这张表有两列(一列是名字String,另一列是值Object);行数理论上是没有限制的,每一行就代表一个session属性。 名字(String)值(Object)namezhangxian4、如何使用sessionA、 得到sessionHttpSession hs = request.getSession(true);B、 向seesion中添加某个属性hs.setAttribute(String name, Object value);C、 从session中得到某个属性String name = hs.getAttribute(String name);D、 从session中删除某个属性hs.removeAttribute(String name);5、 session的注意事项A、 session中属性的默认存在时间是30min,你可以去修改它:修改web.xml文件或者在程序中修改;B、 上面所说的30min是用户发呆时间,而不是累计时间;C、 当某个浏览器访问网站时,服务器会分配给浏览器一个唯一的session id,并以此来区分不同的浏览器(客户端);D、 因为session的各个属性要占用服务器的内存,所以软件公司都是在迫不得已的情况下才使用session;6、 隐藏表单提交(form)这种方式最常见,也最简单,形式如下:第三节、 在Servlet中操作数据库在servlet中操作数据库与在普通Java文件中操作数据库是一样的。注意事项:在servlet中操作数据库需要将数据库jar包拷贝到tomcat服务器;具体有两种方法可以:1、 将.jar包拷贝到%omcat%/lib目录下;2、 或者拷贝到你得webapps下的WEB-INF/lib目录下;两种方式的区别:第一种方式所有的webapps都可以使用这些.jar包;第二种方式只有放jar包的那个webapps才可以使用。第四节、 分页技术一、 分页算法定义四个变量:pageSize、pageCount、rowCount、pageN pageSize:每页显示多少条记录;int pageNow:当前的页数;int pageCount:总共的页数;int rowCount:数据库中总共有多少条记录;pageSize是用户指定的,pageNow是用户选择的,rowCount是从表中查询得到的,pageCount是计算得到的,计算方法为:if(rowCount%pageSize=0)pageCount = rowCount/pageSize;elsepageCount = rowCount/pageSize + 1;查询每页的记录的sql语句:select top pageSize from 表名 where id not in (select top pageSize*(pageNow-1) from 表名);二、 测试效率最有效的方法就是把数据库中表的记录增加到100万条以上,通过分页时间来测试分页算法的效率。快速增加表记录的sql语句可用:insert into 表名(字段1,2.) select 字段1,2. from 表名;第五节、 程序框架模式一、model1模式model1模式就是界面和业务逻辑融合在一起,存在以下问题:1、 代码冗余太大;2、 整个程序框架没有清晰的层次关系,显得非常乱;3、 代码的可读性和可维护性太差;二、model2模式(MV模式)model2模式是将程序进行分层,分为界面层(View)和业务逻辑层(Model),并将常用的代码(比如操作数据库)封装成类。一个javabean是一张数据库表的映射,javabean的一个对象对应数据库表的一条记录,Javabean的本质就是数据。第六节、 不同用户之间的数据共享(ServletContext)(2012年8月6日 09:26:49)一、 ServletContext1、 什么是ServletContext?2、 对ServletContext的形象化理解可以把ServletContext理解成一张表,这张表有两列(一列是名字String,另一列是值Object);行数理论上是没有限制的,每一行就代表一个ServletContext属性。 名字(String)值(Object)namezhangxian3、 如何使用ServletContext?A. 得到ServletContext实例this.getServletContext();B. 添加、得到、删除属性setAttribute(Stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流安全员考试题库及答案解析
- 德州学院护理综合考察题库及答案解析
- 合同续延协议书
- 2025污水处理工程安装合同范本
- 2025劳动合同书幼儿园教师劳动合同
- 爱上租协议书
- 案外执行协议书
- tcp协议书提供什么服务
- 债券合作协议书
- 新型冠状病安全培训试题及答案解析
- 五上3-2《用水计量时间》课件
- 供应商黑名单管理办法
- 2023年java程序设计试题库
- 管理养老机构 养老机构的运营
- 建筑工程施工质量验收统一标准培训教程
- 氯溴甲烷安全技术说明书
- 特殊特性管理
- 水泥粉磨企业现场危险源辨识与风险评价表
- GB/T 9813-2000微型计算机通用规范
- 光电及光化学转化原理与应用电化学全册配套课件
- 安全教育7不要离家出走
评论
0/150
提交评论