ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:1.12MB ,
资源ID:8847457      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8847457.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(servlet 学习笔记.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

servlet 学习笔记.docx

1、servlet 学习笔记Serverlet学习笔记1. servlet相关概念J2EE体系:表示层、业务逻辑层、数据层 什么是servlet?Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet的作用 读取请求的显式数据、隐式数据 生成相应的结果 发送显式数据(HTML)和隐式数据(状态代码和报头)发送到客户端 Servlet容器(servlet引擎)Servlet不能独立运行,它必须被部署到Servlet容器中,由容

2、器来实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内包容和管理Servlet。 Servlet的体系结构 在J2EE中跟Servlet相关的一个包是javax.servlet,其中最基本的Servlet被声明为一个接口javax.servlet.Servlet,这是Servlet最高层次的一个抽象 在javax.servlet中,实现了一个类 javax.servlet.GenericServlet,这个类实现了Servlet接口 而这个类是构建其他和协议相关的Servlet子类型的通用的父类(如HttpServlet)2. servlet开发、部署、运行 开发

3、(继承HttpServlet类、重写HttpServlet类的方法doGet)public class HelloWorldServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException response.setContentType(text/html);-设置响应的格式 PrintWriter out = response.getWriter();-获取输出流 out.println(); out.printl

4、n(); out.println(Hello World ); out.println(); out.println(); out.println(Hello, World ); out.println(); out.println(); out.close();-关闭输出流 部署(在web.xml进行注册)web-app version=2.5 xmlns= xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation= ServletTest01 com.jy.ServletTest01 ServletTest0

5、1 /servlet/ServletTest01-浏览器URL输入的地址 index.jsp 运行在浏览器中输入http:/localhost:端口号/工程名/url-pattern3. servlet的生命周期4. servlet生命周期涉及的方法 Servlet 服务器(容器)负责管理Servlet的生命周期 三个阶段涉及的方法Init()service() doPost(),doGet()destroy() init()方法服务器构造Servlet实例后调用执行 Servlet 初始化创建或加载 Servlet 在处理请求时使用的对象可以覆盖 init()方法,添加其他初始化内容 ser

6、vice()方法service()方法一般不去覆盖它; service()方法用于分析用户的请求,根据用户的请求类型;调用不同的处理方法; 如:doPost(),doGet()等通常我们重写的是doPost()或doGet方法 destroy()方法卸载 Servlet 时,调用 destroy ( ) 方法释放获得的资源服务器在完成所有服务调用之后,或者在经过服务器特定的秒数之后调用 destroy() 方法 其他方法 getServletConfig() 获取Servlet配置对象 getServletContext() 获取Servlet上下文即Servlet环境 getServletI

7、nfo() 获取Servlet描述信息5. ServletConfig对象getServletName() 该方法返回一个servlet实例的名称,该名称由服务器管理员提供。getServletContext() 返回一个ServletContext对象的引用。getInitParameter() 返回一个由参数String name决定的初始化变量的值.getInitParameterNames() 返回一个存储所有初始化变量的枚举函数。6. 读取servlet的配置参数7. 请求处理 Get和Post请求HTTP 只有POST和GET 两种命令模式Get方式提交数据是在浏览器中输入参数,例

8、如:http:/localhost:端口号/工程名/Project/Servletname?username=admin(类似表单) ,通过request.getparameter(“username”); 表单以POST方式提交,即POST请求; servlet调用doPost()处理;调用doPost()时系统会传入两个参数,HttpServletRequest对象封装请求中数据(HTTP头部)及客户端信息(如:客户机的IP地址等)HttpServletResponse 客户端响应(如输出显示数据) 表单以GET方式提交,即GET请求;处理方式方法和doPost完全相同;8. 中文乱码问题

9、出现乱码的情况有两种情况:提交给服务器时有乱码、服务器响应给客户端时有乱码解决乱码的问题: 提交表单时有中文 Get提交Tomcat-conf-server.xml设置URIEncoding=GBK” Post提交获取数据前设置request编码: request.setCharacterEncoding(“GBK”);或者或对获取到的数据转编码:new String (suser.getBytes(“ISO-8859-1”),”GBK”); 响应至客户端时有中文response.setCharacterEncoding(“GBK);或者response.setContentType(text

10、/html; charset=GBK);9. Request/response对象使用 RequestRequest 对象用于接收客户端浏览器提交的数据。获取post请求提交的数据方法: String request.getParameter(“表单元素名”); /获取用户在表单输入的数据(如:用户名,密码等); String request.getParameterValues(“表单元素名”);request.getScheme(); ResponseResponse 对象的功能则是将服务器端的数据发送到客户端浏览器.Responsed的相关方法:setContentType(arg0)是

11、设置JSP页面的显示方式,如text/html,text/html; charset=gb2312等setCharacterEncoding(arg0)设置页面的编码方式:比如gb2312, gbk, big5, 还有UTF-8等addCookie(Cookie)往客户端添加一个CookiesendRedirect(String)重定向请求response.setHeader(name,contect); 设置html头head。10. servletContext对象使用(HttpServlet.servletContext())ServletContext,从Servlet的角度来看,可以

12、理解为它所属Web应用程序,ServletContext是一个接口,Servlet容器的提供商必须要实现这个接口.在web.xml 文件中设置全局参数的初始值,如下:-上下文参数 page-参数名 10-参数值在ServletContext接口中,有两个方法可以用来获得初始化参数(初始化参数存放在web.xml中): getInitParameter getInitParameterNames返回一个存储所有初始化变量的枚举函数。ServletContext context= this.servletContext()? 在ServletContext中,设置和管理ServletContext

13、的属性: setAttribute getAttribute getAttributeNames removeAttributecontext为ServletContext context.setAttribute(username, admin); System.out.println(context.getAttribute(username);该Attribute属性存在是位置?11. servletConfig对象使用一个由servlet容器使用的servlet配置对象,用于在servlet初始化时向它传递信息。在web.xml 文件中设置ServletConfig初始化参数,如下:

14、ServletTest01 com.jy.ServletTest01 -设置初始化参数 pagesize-参数名称 100-参数值 getServletName()返回一个servlet实例的名称,该名称由服务器管理员提供。getServletContext() 返回一个ServletContext对象的引用。getInitParameter()返回一个由参数String name决定的初始化变量的值getInitParameterNames()返回一个存储所有初始化变量的枚举函数。特别注意getInitParameterNames()用法:Enumerationnames = servlet

15、Config.getInitParameterNames()while(names.hasMoreElements() String name = names.nextElement(); System.out.println(参数名=+name); System.out.println(参数值=+servletConfig.getInitParameter(name); 12. Servlet相关类13. WEB组件间的相连关系(重定向、请求转发、包含)组件有两种:JSP和servlet 重定向HttpServletResponse: sendRedirect(String url);1.h

16、tml action=”url-pattern”-RedirectServlet.java respone.sendredirect(URL) -URL注意重定向时候URL的格式:response.sendRedirect(request.getContextPath()+/index.jsp); 请求转发RequestDispatcher: forword(HttpServletRequest, HttpServletResponse);1.html- RequestDispatch_01.java (转发)- RequestDispatch_02.java (处理)注意:获取转发器的方法r

17、equest.getRequestDispatch(“转发到其他组件的路径”)路径的格式如下 包含包含是指一个web组件将另一个web组件的结果插入到包含语句处; 实现组件内容合并。两个web组件间共享request。RequestDispatcher: include(HttpServletRequest, HttpServletResponse); 重定向和请求转发的比对14. 三大作用域 Request(HttpServletRequest) 客服端发送一个请求到服务端时产生,服务端处理完这个请求时结束。相关的方法:public void setAttribute(String var,

18、 Object obj);var 作用域变量名; obj 作用域变量对应的值;public Object getAttribute(String var);var 作用域变量名;Public void removeAttribute(String var);var 作用域变量名; Session(HttpSession) session产生后在session的有效期内有效,每个客服端独享自己一个session对象。Session相关方法:get/set/removeAttribute() /操作属性的方法getCreateTime() /毫秒,以1970-01-01为起点获取Session创建

19、时间;getLastAccessedTime(); /(单位:毫秒) 获取最后一次访问的时间;setMaxInactiveInterval(-1); /(单位:秒) 设置超时时间;getMaxInactiveInterval(); /(单位:秒) 获取超时时间;isNew(); /判断是否是新创建的;invalidate(); /注销Session 让Session对象与用户断开;getServletContext(); /获取上下文对象; Applicationv (ServletContext) application用来存储和获取当前应用内的变量; 对所有客服端共享; web应用加载时启

20、动时候产生web应用关闭时消亡。Servlet容器环境信息构成了一个ServletContext。Application相关方法:Set/get/removeAttribute(); /操作作用域的变量;getRequestDispatcher(String) /获取转发器;getRealPath(String) /获取绝对路径; 获得request: 直接就request.set(); 获得session:HttpSession session = request.getSession(); 获得application:ServletContext servletContext = this

21、.getServletContext();15. Cookie的应用 Cookie的概念及用途概念Cookie是驻留在客户端的一个文本文件;用途:在客户端保留客户信息。 Cookie的相关操作通过HttpServletRequest对象获取客户端的Cookie信息 : getCookies()通过HttpServletResponse对象往客户端添加Cookie信息 : addCookie(Cookie)Cookie类相关方法: set/getName() set/getValue() set/getMaxAge() 失效时间 set/getPath() 适用的路径 set/getDomain

22、() 适用的域名 写入cookie(早servlet中进行操作)public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException Cookie cookie1=new Cookie(login_name,admin); cookie1.setMaxAge(60*60*24*360);/设置cookie的超时时间usernamecookie.setPath(/);/设置该工程底下都可以访问到该cookie Cookie cookie2=ne

23、w Cookie(login_pwd,123456); cookie2.setMaxAge(60*60*24*360); Cookie cookie3=new Cookie(“login_sex”,.URLEncoder.encode(“男”,“gb2312”); /中文要转编码. cookie3.setMaxAge(60*60*24*360); response.addCookie(cookie1); response.addCookie(cookie2); response.addCookie(cookie3); 读取cookiepublic void doGet(HttpServletR

24、equest request, HttpServletResponse response)throws ServletException, IOException Cookie cookies = request.getCookies(); response.setContentType(text/html); PrintWriter out = response.getWriter(); out.println(); out.println( get cookies); out.println( ); for (int i = 0; i cookies.length; i+) out.pri

25、ntln(cookiesi.getName() + = ); out.println(cookiesi.getValue(); / 如果值为中文,解码 / out.println(.URLDecoder.decode(cookiesi.getValue(),”GBK”); out.println(); out.println( ); out.println(); out.flush(); out.close();16. 过滤器 过滤器的概念Servlet过滤器是实现了javax.servlet.Filter接口的服务器端程序。主要用来完成一些通用的操作。比如编码的过滤,判断用户的登陆状态等一些

26、业务逻辑判断等等。 过滤器的原理在web.xml文件配置好要拦截客户的请求,此时可以对其进行(request、response)统一编码,同时可以进行逻辑判断,如用户是否已经登录、有没有权限访问该页面。Web应用程序只初始化一次,之后就可以进行拦截。 过滤链EncodingFilter负责设置编码,SecurityFilter负责控制权限。 过滤器接口构成所有的过滤器类都必须实现javax.servlet.Filter接口。这个接口含有所有过滤器必须实现的方法: init(FilterConfig) doFilter(ServletRequest,ServletResponse,FilterChain) destroy() Servlet过滤器创建步骤:a) 实现javax.servlet.Filter 接口类b) 实现init()方法,c) 实现doFilter()方法,实现过滤器响应d) 调用FilerChain接口对象的doFilter方法,向后续的过滤器传递请求响应e) 在web.xml中配置Filter断点的使用:F6 继续运行 F8做响应配置初始化编码值注意:创建过滤器时要实现接口javax.servlet.Filter-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1