JSPServlet总结.docx_第1页
JSPServlet总结.docx_第2页
JSPServlet总结.docx_第3页
JSPServlet总结.docx_第4页
JSPServlet总结.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 动态网页开发基础(1) 什么是动态网站动态网页是指在服务器运行的,根据某种条件变化,返回不同的内容。(2) 动态的网页的优势 交互性:即网页会根据用户的要求和选择而动态改变和显示内容。 自动更新:即无须改变页面代码,便会自动生成新的页面内容可以节省工作量。 随机性:即当不同的时间、不同的人访问同一网址时会产生不同的页面结果。问答:动态网页是静态网页的代替品吗?解答:静态网页和动态网页各有特点,网站采用动态网页还是静态网页主要取决于网站的功能需求和网站的多少。C/S(Client/Server,客户端/服务器)架构的系统,其分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器相互通信。B/S(Browser/Server,浏览器/服务器)B/S架构的web应用程序不在受安装客户端的限制。B/S维护和升级方式简单C/S 一般面向相对固定的用户群,页面友好。B/S架构的工作流程(1) 浏览器接受用户的输入(2) 浏览器向服务器端发送请求(3) 数据处理:服务器端通常使用服务器端脚本语言(如JSP等)进行数据库访问查询数据、解释HTML文件,呈现结果界面。(4) 发送响应:服务器向浏览器发送响应消息(一般是动态生成HTML页面),并由浏览器解释HTML文件,呈现结果界面。什么是URLURL(Uniform Resource Locator)的意思是统一资源定位符,是用于完整地描述Internet上网的其他资源的地址的一种标示方法。URl的组成(1) 协议(2) 服务器域名或IP地址(3) 端口号Tomcat目录结构/bin 存放各种平台下用于启动和停止Tomacat的脚本文件。/conf 存放Tomcat服务器的各种配置文件/lib 存放Tomcat服务器所需的各种JAR文件/logs 存放Tomcat日志文件/temp Tomcat运行时用于存放临时文件/webapps web应用的发布目录/work Tomcat把由于JSP生成Servet存放次目录下Web应用的目录结构/ Web应用的跟目录,该目录下的所有文件对客户端都可以访问,包括JSP,HTML./WEB-INF 存放应用程序使用的各种资源,该目录及其子目录对客户端都是不可以访问的其中包括web.xml(部署表述符)/WEB-INF/classes 存放应用所有的class文件/WEB-INF/lib 存放Web应用的JAR文件每个Java Web应用都有一个核心文件即web.xml。Jspd 执行过程Web容器会通过三个阶段实现处理(1) 翻译处理:当web容器接收到jsp请求时,首先会对jsp文件进行翻译,将编写好的jsp文件通过jsp容器jsp容器转换可识别的Java源代码。(2) 编译阶段:经过翻译后的jsp文件相当于编写好的Java源文件,此时仅有Java源文件是不够的,必须要将Java源文件编译成可执行节码文件所以Web容器处理jsp请求的第二阶段就是编译(3) 执行阶段:经过翻译的编译阶段,生成看可执行的二进制节码文件,此时进入执行阶段。当执行结束后,得到处理请求的结果,把生成的结果页面返回到浏览器客户端显示。Jsp 中的注释(1) HTML注释方法:使用格式(2) Jsp注释标记:使用格式(3) Jsp脚本注释:使用格式三种注释方法,对应代码片段:(可以被客户端看到源代码)(客户端不可以看到源代码)%/使用预定格式将日期转换为字符串%Jsp指令元素Jsp指令元素的作用是通过设置指令中的属性,在jsp运行时,控制jsp页面的某些特征。Jsp指令代码片段:Page指令是针对当前页面进行设置的一种指令,通常位于jsp页面顶端。Page只对当前页面有效,一个页面中可以包含多个page指令。Page指令元素Language 指定jsp页面使用的脚本语言,默认JavaImport 通过该属性引用脚本语言中使用到的类文件ContentType 设置页面的字符编码Jsp脚本元素(1) 小脚本可以包含任意的Java片段,小脚本可以执行复杂的操作和业务。将编写的java代码插入到中。(2) 表达式是对数据显示的,其语法(3) 声明变量:Java脚本定义成员变量和方法。声明语法第二章Jsp数据交互(一)Jsp 内置对象outOut对象用于向浏览器输出数据,常用的方法有print(),该方法用于在页面中显示字符串信息,语法如下:Jsp内置对象requestRequest对象是浏览器向服务器发送请求信息。request对象常用方法String getParaemter(String name); 根据页面表单组件名称获取页面提交数据的数据。StringgetParamenValues(String name); 获取一组同名称命名的表单数据。voidsetCharcterEncoding(“utf-8”); 指定每个请求的编码getRequestDispatcher(); 该对象的forward()方法用于转发请求。以get方法提交表单数据中有中文字符编码转换语法。String name=request.getParameter(“name”);Name=new String(name.getBytes(“ISO-8859-1”),”utf-8”);还可以通过在Tomcat中设置字符集方式解决找到tomcat目录confserver.xml文件;在元素中添加URIEncoding属性将它的值设置为“utf-8”;Jsp内置对象responseresponse对象用于响应客户请求并向客户端输出信息。response对象的常用方法void addCookie(Cookie cookie) 在客户端添加cookievoid setContentType(String Type) 设置HTTP响应的contentType类型voidsetCharacterEncoding(“utf-8”) 设置指定的字符编码类型voidsendRedirect(String location); 将请求重新定位一个新的URL转发和重定向区别转发:Web服务器内部将一个request请求的处理权交给另一个资源属于同一个访问请求和响应过程所以rquest对象信息不会丢失。是通过RequestDispatcher对象的forward方法将提交信息进行多个页面传递。重定向:Web向浏览器返回一个响应,浏览器接受此响应后再发送一个新的http请求到服务器,这属于两次不同的请求,则上一次请求的request信息将丢失。Jsp内置对象session什么是会话?就Web开发来说,一个会话就是用户通过浏览器与服务器之间进行的一次通话。它可以包含浏览器与服务器之间的多次请求、响应过程。session机制是一种服务器端的机制,在服务器端使用类似于散列表表的结构来保存信息。session对象的常用方法voidsetAttribute(String key,Object value) 以key/value的形式将对象保存到session中。ObjectgetAttribute(String key);通过key获取session中保存的对象。Voidinvalidate()设置session对象session对象失效StringgetId()获取seesionVoidsetMaxInactiveInterval(int interval)设定的非活动时间IntgetMaxInactiveInterval()获取session的有效非活动时间,以秒为单位VoidremoveAttribute(String key)从session中删除指定的名称(key)所对应的对象。include指令表示,在jsp编译时插入一个包文本或代码文件,语法:。第三章Jsp数据交互(二)Jsp 内置对象applicationapplication对象类似于系统的“全局变量”用于同一个服务器内的所有用户之间的数据共享。对于整个Web服务器,application对象有且只有一个实例。application对象的常用方法void setAttribute(String key,Object)以key/value的形式将对象存储到application中。ObjectgetAttribute(String key)通过key获取application中存储的对象。StringgetRealPath(Stringpath)返回相对路径的真实路径。Jsp的常用内置对象out对象用于向客户端输出数据request对象主要用于处理客户端请求信息response对象用于响应客户端请求并向客户端输出信息session对象用于记录会话状态appliction对象类似于系统的全局变量,用于实现Web应用中的资源共享。Jsp的其他内置对象 PageContext:提供了在jsp运行时访问和其相关的环境信息能力。通过pageContext对象可以访问和当前jsp页面相关联的所有作用域,以及一些页面属性。 PageContext对象常用的方法。u SercletRequest.getRequest(): 获得request对象u ServletReponse.getResponse(); 获得response对象u HttpSession getSession(); 获得session对象u JspWriter.getOut(); 获得out对象u Void setAttribute(); 保存属性u Object getAttrubute; 获得属性u Voidinclude();请求指定的资源,并将目标资源的响应结果包含在调用页面的响应中。 Page:表示当前页面。类似于Java中this。 Config:用于存放jsp编译后的初始数据。 Exception:表示jsp页面运行时产生的异常和错误信息,该对象只有在错误页面(page指令中设定isErrorPage为true的页面)中才能使用。Page作用域Page的作用域在一个页面范围内有效,在page作用域内可以使用pageContext对象的setAttribute()和getAttribute()方法来访问具有这种范围类型对象。request作用域request作用域在一个服务器内请求范围内有效,request对象的setAttribute()与getAttribute()方法进行存取。在request作用域内对象在页面转发调用RequestDispatcher的forward()方法转向页面。RequestDispatcher对象的lnclude()方法与pageContext对象的include()方法实现相同的效果。session作用域在一次会话范围内有效。只要将数据绑定到session中则该数据可以被本次会话的其他资源所访问。application作用域application在整个应用服务器内有效。Application对象具有setAttribute()和getAttribute()方法。CookieCookie是最常用的跟踪用户回话的方式。Cookie的应用判定用户是否已经登录网站。Cookie的作用表现。 对特定对象的追踪。 统计网页;浏览次数 在cookie有效期内记录用户登录信息 实现各种个性化服务。在jsp中使用cookie创建cooKieCookie cookie=new Cookie(String name ,String value)写入Cookie使用response的常用方法addCookie()方法。Cookie对象的常用方法VoidsetMaxAge(int expiry);设置cookies的有效期,以秒为单位。VoidsetValue(StringValue);在cookie创建后,为cookie赋予新的值。StringgetName();获取cookie的名称StringgetValue();获取cookie的值。IntgetMaxAge();获取cookie的有效时间,以秒为单位。Cookie和session对比 Session是在服务器保存信息,cookie是在客户端保存用户信息。 Session中保存的值是Object类型,cookie保存的值是String类型。 Session随会话的结束而将其保存的数据销毁,cookie可以常期保存。 Cookie通常用于保存不重要的用户信息,重要信息使用session保存。javaBean实际上是一个Java类,这个类可以重用,功能上可以分为两类。封装数据封装业务JavaBean要满足的要求 JavaBean是一个公有的类,并提供无参的公有构造方法。 属性私有。 具有公有的访问属性getter和setter方法。第五章 使用分层实现业务处理什么是连接池连接池的作用:数据库连接池负责分配、管理和释放数据库的连接,它允许应用程序重复使用一个现有的数据库连接,而不再是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接,以避免由于没有释放数据库连接而引起的数据库遗漏。连接池是如何管理连接的?解答:对于连接的管理可使用空闲池,即把已经创建但尚未分配出去的连接放到一个空闲池中;每当用户请求一个连接时,系统首先检查空闲池内有没有空闲连接。如果没有就分配一个连接给用户;如果没有则检查当前连接池是否达到连接池允许的最大连接数。如果没有达到,就新建一个连接。如果已经达到,就等待一定的时间。如果等待时间超过预定的时间,则返回空值。系统对已经分配出去正在使用连接制作计数,当使用完后再反还给空闲池。DataSource接口getConnection()方法ConnectiongetConnection();建立DataSource对象所表示的数据源连接。Conrext.xml配置文件DataSource对象的Resource属性name指定Resource的jndl名字auth指定管理Resource的Manager,它有两个可选值:Container和Application.Container表示由容器创建Resource,Application表示由Web应用创建个管理Resource。type指定的Resource所属的Java类名。maxActive指定的数据库连接池处于活动状态的数据库连接最大数目。maxWait指定数据库连接池中数据库连接处于空闲状态的最长是啊金(以毫秒为单位),超出时间将会抛出异常。username指定的数据库用户名。password指定数据库密码。driverClassName连接数据jdbc驱动程序。url指定数据库的url。Web.Xml配置文件news DataSourcenamejavax.sql.DataSoureceContainerresource-ref元素属性description对所引用资源res-ref-name指定所引用资源的jndl名字,与元素中的name属性对应。res-type指定所引用资源类名,与Resource元素中的type属性对应。Res-auth指定所引用资源的Manager,与元素中的auth属性对应。三层架构 表示层:使用户能够直接访问,用于数据和接受用户输入得到数据,为用户提供一种交互式界面。在web程序中,表示层一般以jsp、html文件为主。 业务逻辑层:其主要功能提供对业务逻辑处理的封装。 数据访问层:该层是实现对数据的保存和读取操作。 分层原则1. 上层依赖其下层,依赖关系不跨层。2. 下一层不能调用上一层。3. 下一层不依赖上一层。三层架构开发的特点:1. 下层不知上层的存在。2. 每一层仅知它下一层的存在,而不知另外的下层。三层开发的优点:1. 职责划分清晰。2. 无损替换。3. 复用代码。4. 降低了系统内部的依赖程度。第六章 jsp开发业务应用分页的步骤1. 确定每页显示的数据数量2. 计算显示的页数。3. 编写sql示例Stringsql=”selecttop”+pagesize+”列名from表名”where列名 notin(“selecttop”+(当前页码-1)*每页显示的数据量列名from表名)Commons-FileUpload组件实现文件上传Commons-FileUpload组件几个特点 使用简单 能够全程控制上传内容 能够对上传文件的大小、类型进行控制。ServletFileUpload类的常用方法 方法名称 方法描述public void setSizeMax(long sizeMax) 设置请求信息实体内容的最大允许的字节数public List parseRequest(HttpServletRequest req) 解析form表单中的每个字符的数据,返回一个FileItem对象的集合public static final boolean isMultipartContent (HttpServletRequest req) 判断请求信息中的内容 是否是“multipart/form-data”类型public void setHeaderEncoding(String encoding) 设置转换时所使用的字符集编码 FileItem接口的常用方法 方法名称 方法描述public boolean isFormField() 判断FileItem对象封装的数据类型(普通表单字段返回true,文件表单字段返回false)public String getName() 获得文件上传字段中的文件名(普通表单字段返回null)public String getFieldName() 返回表单字段元素的name属性值public void write() 将FileItem对象中保存的主体内容保存到指定的文件中public String getString() 将FileItem对象中保存的主体内容以一个字符串返回。其重载方法public String getString(String encoding)中的参数用指定的字符集编码方式public long getSize() 返回单个上传文件的字节数 FileItemFactory接口与实现类 方法名称 方法描述public void setSizeThreshold(int sizeThreshold) 设置内存缓冲区的大小public void setRepositoryPath(String path) 设置临时文件存放的目录 环境准备在项目中引入commons-fileupload-1.2.2.jar和commons-io-2.4.jar文件 设置表单的enctype属性 上传文件时form标签的method属性必须取值为“post”,不能取值为“get” 控制上传文件的类型List filType=Arrays.asList(gif,bmp,jpg);String ext=fileName.substring(fileName.lastIndexOf(.)+1);if(!filType.contains(ext) /判断文件类型是否在允许范围内 out.print(上传失败,文件类型只能是gif、bmp、jpg);else /上传文件 控制上传文件的大小 ServletFileUpload upload = new ServletFileUpload(factory);/设置单个文件的最大限制upload.setSizeMax(1024*30); try /省略上传代码 catch(FileUploadBase.SizeLimitExceededException ex) out.print(“上传失败,文件太大,单个文件的最大限制是:+ upload.getSizeMax()+bytes!);第七章 Servlet基础 Servlet概述 定义了所有Servlet需要实现的方法 Servlet接口的常用方法 方法名称功能描述public void init(ServletConfig config) 由 servlet 容器调用,用于完成Servlet对象在处理客户请求前的初始化工作public void service(ServletRequest req, ServletResponse res) 由 servlet 容器调用,用来处理客户端的请求public void destroy() 由 servlet 容器调用,释放Servlet对象所使用的资源public ServletConfig getServletConfig() 返回ServletConfig 对象,该对象包含此 servlet 的初始化和启动参数。返回的 ServletConfig 对象是传递给 init() 方法的对象public String getServletInfo() 返回有关 servlet 的信息,比如作者、版本和版权。返回的字符串是纯文本,而不是任何种类的标记(比如 HTML、XML,等等) ServeltConfig概述 在Servlet初始化过程中获取配置信息 一个Servlet只有一个ServletConfig对象 ServletConfig的常用方法 方法名称功能描述public String getInitParameter(String name) 获取web.xml中设置的以name命名的初始化参数值public ServletContext getServletContext() 返回Servlet的上下文对象引用GenericServlet抽象类概述 提供了Servlet与ServletConfig接口的默认实现方法 GenericServlet的常用方法 方法名称功能描述public void init(ServletConfig config) 调用Servlet接口中的init()方法。此方法还有一无参的重载方法,其功能与此方法相同 public String getInitParameter(Stringname) 返回名称为name的初始化参数的值public ServletContext getServletContext() 返回ServletContext对象的引用HttpServlet抽象类概述 继承于GenericServlet 处理HTTP协议的请求和响应 HttpServlet的常用方法 方法名称功能描述public void service(ServletRequest req, ServletResponse res) 调用GenericServlet类中service()方法的实现 public void service(HttpServletRequest req, HttpServletResponseres) 接收HTTP 请求,并将它们分发给此类中定义的 doXXX 方法 public void doXXX(HttpServletRequest req,HttpServletResponse res) 根据请求方式的不同,分别调用相应的处理方法,例如doGet()、doPost()等 ServletRequest接口概述 获取客户端的请求数据 ServletRequest的常用方法 方法名称功能描述public Object getAttribute(String name) 获取名称为name的属性值public void setAttribute(Stringname, Objectobject) 在请求中保存名称为name的属性public void removeAttribute(Stringname) 清除请求中名字为name的属性HttpServletRequest接口概述 除了继承ServletRequest接口中的方法,还增加了一些用于读取请求信息的方法 HttpServletRequest的常用方法 方法名称功能描述public String getContextPath() 返回请求URI中表示请求上下文的路径,上下文路径是请求URI的开始部分public Cookie getCookies() 返回客户端在此次请求中发送的所有cookie对象public HttpSession getSession() 返回和此次请求相关联的session,如果没有给客户端分配session,则创建一个新的session public String getMethod() 返回此次请求所使用的HTTP方法的名字,如GET、POST ServletResponse接口概述 向客户端发送响应数据 ServletResponse接口的常用方法 方法名称功能描述public PrintWriter getWriter() 返回PrintWrite对象,用于向客户端发送文本 public String getCharacterEncoding() 返回在响应中发送的正文所使用的字符编码 public void setCharacterEncoding() 设置发送到客户端的响应的字符编码 public void setContentType(String type) 设置发送到客户端的响应的内容类型,此时响应的状态属于尚未提交 HttpServletResponse接口概述 除了继承ServletResponse接口中的方法,还增加了新的方法 HttpServletResponse的常用方法 方法名称功能描述public void addCookie(Cookie cookie) 增加一个cookie到响应中,这个方法可多次调用,设置多个cookie public void addHeader(String name,String value) 将一个名称为name,值为value的响应报头添加到响应中public void sendRedirect(String location) 发送一个临时的重定向响应到客户端,以便客户端访问新的URL public void encodeURL(String url) 使用session ID对用于重定向的URL进行编码生命周期的各个阶段:实例化 Servlet 容器创建 Servlet 的实例 初始化 该容器调用 init() 方法 请求处理 如果请求 Servlet,则容器调用 service() 方法服务终止 销毁实例之前调用 destroy() 方法 Servlet初始化参数配置: HelloServlet org.jbit.servlet.HelloServlet initParam Hello Servlet HelloServlet /HelloServlet ServletContext接口概述 获取Servlet上下文 ServletContext的常用方法 方法名称功能描述public String getInitParameter(String name) 获取名称为name的系统范围内的初始化参数值,系统范围内的初始化参数可以在部署描述符中使用元素定义public void setAttribute(String name, Object object) 设置名称为name的属性public Object getAttribute(String name) 获取名称为name的属性public String getRealPath(Stringpath) 返回参数所代表目录的真实路径public void log(String message) 记录一般日志信息 配置Servlet上下文 contextParam Hello Servlet Servle上下文参数配置 contextParam Hello Servlet 第八章 JSTL和EL JavaBean在JSP中的局限 在JSP页面中嵌入大量的Java代码 获取JavaBean属性必须要实例化 强制类型转化什么是ELExpression Language(表达式语言) EL的功能 替代JSP页面中的复杂代码 EL的特点 自动转换类型 EL得到某个数据时可以自动转换类型 使用简单 EL表达式语法$ EL exprission 使用变量名获取值 获取对象的属性值 获取集合 使用变量名获取值 $变量名 姓名: $requstScope.username 变量属性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论