收藏 分享(赏)

Java_Web基础.pptx

上传人:sjmd695 文档编号:8646795 上传时间:2019-07-07 格式:PPTX 页数:107 大小:474.17KB
下载 相关 举报
Java_Web基础.pptx_第1页
第1页 / 共107页
Java_Web基础.pptx_第2页
第2页 / 共107页
Java_Web基础.pptx_第3页
第3页 / 共107页
Java_Web基础.pptx_第4页
第4页 / 共107页
Java_Web基础.pptx_第5页
第5页 / 共107页
点击查看更多>>
资源描述

1、Java Web基础,信息技术研究所 袁超,Web 应用程序特点,B-S结构应用程序 用户使用浏览器(Browser)访问Web应用程序,如:用户注册,通过浏览器填写用户信息 程序运行于Web服务器(Server),如:实现保存用户注册信息功能的程序代码由Web服务器完成。 动态网站的运行机制(以用户注册为例),2提交注册数据,Web服务器,浏览器,5 解释HTML文档,4返回HTML文档,3 执行注册应用程序,1 填写注册表单,执行结果 html文档,ASP网页编程技术 微软低端B-S结构、IIS(不跨平台)、解释型、简单(脚本与HTML混杂编码)、小型应用 ASP.NET网页编程技术 微软

2、高端B-S结构、基于.net framework运行(不跨平台)、支持面向对象 JavaWeb编程技术 Sun公司倡导,许多公司参与制订的Web软件开发规范,与ASP.NET属同层次的软件开发技术 跨平台,很容易在不同平台之间移置 开源,便于Java开发人员学习和运用,由于技术标准开源,很多大公司将自己的产品绑定到Java技术规范上,如Oralce、IBM、JBOSS等,主流Web技术介绍,Java Web主要技术介绍,Java web技术主要包括两种技术:JSP和Servlet JSP技术 JSP:Java Server Pages 与ASP类似,在传统的网页HTML文件中,加入Java程序

3、片段和JSP标记就构成了JSP网页,简单易学。 JSP是一种编译性程序,首次执行时编译,再次访问时直接执行,效率高。 Servlet技术 Servlet:小服务程序,是一种特殊的Java类,该类可以被Web服务器解释执行,并生成HTML文档。 优点: Servlet技术是JSP技术的基础,它比JSP的效率高、安全性更好。 缺点:它利用输出HTML语句来实现动态网页,不易实现面向表示的任务。 JSP与Servlet相结合 面向表示的任务采用JSP技术,对于面向处理的任务采用Servlet技术。,Java Web程序环境配置,Java Web开发运行环境 开发环境 直接开发:JDK+Web服务器+

4、记事本 工具开发:eclipse,NetBeans(JDK+Tomcat+可视化环境) 辅助工具:Dreamweaver 运行环境 JRE(Java运行环境)Web服务器 JDK安装与配置 Web服务器介绍 支持Java Web的Web服务器有很多 Apache Tomcat开源免费 GlassFish开源免费,JavaEE服务器 JBoss开源免费,JavaEE服务器Bea Weblogic IBM WebSphere Macromedia JRun,Tomcat的目录结构,Tomcat6的目录结构比Tomcat5有所精减 /bin:存放启动和停止Tomcat服务的脚本文件 /conf:存放

5、Tomcat服务器的各种配置文件,其中最重要的是server.xml /lib:存放Tomcat服务器所需的各种JAR文件 /logs:存入Tomcat的日志文件 /webapps:Web应用目录,将Web应用程序部署于此(每一个子文件夹对应一个Web应用) /work:Tomcat把由JSP生成的Servlet放于此目录下 配置Web服务器Tomcat 配置环境变量(不是必须的) Tomcat的启动文件会自动配置环境; 如果采用命令启动方式,自动配置会失效,此时需要手工配置环境变量,浏览器与Web服务器的动态交互,提交按钮,点此Button将把FORM内的数据传送到服务器,各种输入控件,接受

6、用户输入。,Method属性指定了数据传送方式,可以是GET或POST,GET方式将数据接在URL后面传送给服务器端程序,如:http:/url?name1=abc&name2=def POST方式将数据放在HTTP请求的请求头后面发送。,Servlet简介,Servlet是java语言的CGI实现,与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性。 Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分,Servlet技术的推出,扩展了Java语言在服务器端开发的功能,巩固了Java语言在服务器端

7、开发中的地位,而且现在使用非常广泛的JSP技术也是基于Servlet的原理,JSP+JavaBeans+Servlet成为实现MVC模式的一种有效的选择。 Servlet在本质上就是Java类,编写Servlet需要遵循Java的基本语法,但是与一般Java类所不同的是,Servlet是只能运行在服务器端的Java类,而且必需遵循特殊的规范,在运行的过程中有自己的生命周期,这些特性都是Servlet所独有的。另外Servlet是和HTTP协议是紧密联系的,所以使用Servlet几乎可以处理HTTP协议各个方面的内容,这也正是Servlet收到开发人员青睐的最大原因。,高效传统的CGI程序以进程

8、方式运行,而Servlet以线程方式运行。 方便Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表 单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。 功能强大 可以完成很多传统的CGI程序很难做到的事情。 可移植性好 Servlet API具有完善的标准。,Servlet简介,Servlet基本结构,public class SomeServlet extends HttpServlet / 必须继承自HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse r

9、esponse)throws ServletException, IOException / 使用“request”读取和请求有关的信息(比如Cookies)和表单数据 / 使用“response”指定HTTP应答状态代码和应答头(比如指定内容类型,设置Cookie)PrintWriter out = response.getWriter(); / 使用 “out“把应答内容发送到浏览器public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOEx

10、ception ,服务器只创建每个Servlet的单一实例,每个用户请求都会引发新的线程。 创建Servlet实例时,会调用init()方法,针对每个用户请求都会创建一个线程,该线程调用前面创建实例的service()方法,由service()方法依据接收到的HTTP请求的类型,调用相应的doXxx方法,比如doGet(),最后调用destroy()方法销毁。,Servlet生命周期,Servlet生命周期,Servlet工作原理,Web服务器,doGet()方法,doPost()方法,HTTP GET请求,HTTP POST请求,响应,响应,客户机,Servlet容器环境在HTTP通信和we

11、b服务器平台之间实现了一个抽象层。 Servlet容器负责把请求传递给Servlet,并把结果返回给客户。 在使用Servlet的过程中,并发访问的问题由Servlet容器处理,当多个用户请求同一个Servlet的时候,Servlet容器负责为每个用户启动一个线程,这些线程的运行和销毁由Servlet容器负责,而在传统的CGI程序中,是为每一个用户启动一个进程,因此Servlet的运行效率就要比CGI的高出很多。,doGet 和 doPost 方法的参数都是 HttpServletRequest 和 HttpServletResponse 对象。其中HttpServletRequest 对象代

12、表了客户端的请求,servlet 通过这个对象获得客户 端 的 请 求 数 据; HttpServletResponse对象代表了servlet对客户端请求的响应,sevlet用这个对象向客户端返回数据。,HttpServletRequest &HttpServletResponse, 通过HttpServletRequest对象获取客户请求数据: getParameter()方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) String str = request.getPara

13、meter(“name“); / 参数为FORM内某输入控件的名字 通过HttpServletResponse对象向客户端返回数据 protected void doGet(HttpServletRequest request, HttpServletResponse response) PrintWriter out = response.getWriter(); / 获取输出流对象out.println(“); / 通过输出流对象向客户端返回HTML文本,HttpServletRequest &HttpServletResponse,单个值的读取request.getParameter(“

14、Param1”); 多个值的读取request.getParameterValues(); 参数名的查找request.getParameterNames();request.getParameterMap(); 原始表单数据的读取以及对上载文件的分析request.getReader();request.getInputStream(); 多字符集输入的读取request.setCharacterEncoding(“utf-8”);,Servlet处理用户请求简介,普通设置方法 setHeader(String headerName, String headerValue) HttpServ

15、letResponse提供的方法 setDateHeader(String header, long milliseconds) setIntHeader(Stirng header, int headerValue) setContentType(String mimeType) setContentLength(int length),Servlet设置响应报头,servlet激活器,invokerorg.apache.catalina.servlets.InvokerServlet2在conf/web.xml下配置,servlet激活器, invoker /servlet/* ,缺省se

16、rvlet,某个servlet的映射路径仅仅是一个“/“ 在web.xml中找不到对应的servlet,将交给这个servlet处理访问静态的html文件或图片时,实际是这个缺省的Servlet处理的返回结果,当然它也可以对那些非法请求给出相应的处理结果,缺省servlet,defaultorg.apache.catalina.servlets.DefaultServletdefault/,HTTP无状态性,HTTP是Hyper Text Transfer Protocol的缩写,顾名思义,这个协议支持着超文本的传输。那么什么是超文本呢?说白了就是使用HTML编写的页面。通常,我们使用客户端浏

17、览器访问服务器的资源,最常见的URL也是以html为后缀的文件。因此,我们可以说超文本是网络上最主要的资源。 既然HTTP协议的目的在于支持超文本的传输,更加广义一些就是支持资源的传输,那么在客户端浏览器向HTTP服务器发送请求,继而HTTP服务器将相应的资源发回给客户端这样一个过程中,无论对于客户端还是服务器,都没有必要记录这个过程,因为每一次请求和响应都是相对独立的,就好像你在自动售货机前投下硬币购买商品一样,谁都不会也不需要记住这样一个交易过程。一般而言,一个URL对应着唯一的超文本,而HTTP服务器也绝对公平公正,不管你是 Michael,还是Jordon,它都会根据接收到的URL请求

18、返回相同的超文本。正是因为这样的唯一性,使得记录用户的行为状态变得毫无意义,所以,HTTP协议被设计为无状态的连接协议符合它本身的需求。 然而,随着时间的推移,人们发现静态的HTML着实无聊而乏味,增加动态生成的内容才会令Web应用程序变得更加有用。于是乎,HTML的语法在不断膨胀,其中最重要的是增加了表单(Form);客户端也增加了诸如脚本处理、DOM处理等功能;对于服务器,则相应的出现了CGI(Common Gateway Interface)以处理包含表单提交在内的动态请求。在这种客户端与服务器进行动态交互的Web应用程序出现之后,HTTP无状态的特性严重阻碍了这些应用程序的实现,毕竟交

19、互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。,HTTP是无状态协议,它没有提供内置方法来对一系列由相同用户发起的请求进行识别。客户程序每次读取Web页面,都打开到Web服务器的单独的连接,并且服务器也不自动维护客户的上下文信息。因此如果Web应用程序如果想要为来自同一个用户的请求保留状态或数据的话(比如购物车程序,用户会在不同网页间切换来选购商品,因此要求Web应用程序必须要能记住一个用户选购的所有商品),这一般可以通过以下几个方法实现: Cookie URL重写

20、 隐藏表单项目,会话跟踪,Cookie cookie是是一些由服务器发向浏览器并且还能由浏览器读回来的小段的文本信息。Web服务器将它发送到浏览器,之后在访问同一网站或域时,浏览器又将它原封不动的返回。一般用于记录用户名密码、根据用户的偏好定制站点、定向广告。 cookie的内容主要包括:名字,值,过期时间,路径和域。 -域可以指定某一个域比如。 -路径就是跟在域名后面的URL路径 ,比如/news。,解决HTTP无状态的方法,Cookie代码样例Cookie userCookie = new Cookie(“uesr”, “uid1234”); userCookie.setMaxAge(60

21、*60*24*265); /一年 response.addCookie(userCookie );,解决HTTP无状态的方法,URL重写 利用URL重写技术,每个可能被用户点击的URL都会被动态修改,为URL附加上一个标志本次会话的ID。采用这种方式时,客户程序在每个URL的尾部添加一些额外数据,用来表示当前的会话,服务器将这个标识符与它存储的用户相关数据关联起来。比如: http:/url/xxx?jsessionid=123,解决HTTP无状态的方法,隐藏的表单域 所谓隐藏表单项目指的是HTML表单上不在客户端上显示的项目,它们在提交表单时也被送到服务器端。我们可以利用这一机制来维护会话信

22、息。在提交表单时,要将指定的名称和值自动包括在GET和POST数据中,隐藏域可以用来存储有关会话的信息。缺点:仅当每个页面都是由表单提交而动态生成时,才能使用这种方法。,解决HTTP无状态的方法,HttpSession APIHttpSession API是一个基于Cookie和URL重写机制的高级会话状态跟踪接口:如果浏览器支持Cookie,则使用Cookie;如果浏览器不支持Cookie或者Cookie功能被关闭,则自动使用URL改写方法。Servlet开发者无需关心细节问题,也无需直接处理Cookie或附加到URL后面的信息,API自动为Servlet开发者提供一个可以方便地存储会话信息

23、的地方。 会话状态跟踪API在Servlet中使用会话信息是相当简单的,主要的操作包括:查看和当前请求关联的会话对象,必要的时候创建新的会话对象;查看与某个会话相关的信息;在会话对象中保存信息以及会话完成或中止时释放会话对象。,Servlet会话管理,常用api样例 HttpSession session = request.getSession(); session.setAttribute(“test”,”test”); String str = (String)session.getAttribute(“test”); session.removeAttribute(“test”);,会

24、话跟踪基础,在JSP的开发过程中,经常会遇到需要把相关内容存储为文件的情况,在JSP中是用输入输出流进行操作的,在Servlet中也可以使用输入输出流实现对文件的读写,同时,使用Servlet还可以很方便的实现文件的上传下载。,Servlet中的文件操作,Servlet读取文件,在这个例子中将要读取一个文本文件的内容,并且在页面上打印文件的内容。,FileRead.javapackage servlets;import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.I

25、OException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class FileRead extends HttpServlet public void doG

26、et(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletExceptionresponse.setContentType(“text/html“);response.setCharacterEncoding(“gb2312“);PrintWriter out = response.getWriter();/获得输出对象String fileName = “/text/content.txt“;String realPath = this.getServletContext.ge

27、tRealPath(fileName);/获取路径,在服务器上的绝对路径,比如D:tomcatwebappsservlet-1content.txt,I/O访问类,Servlet 访问类,Servlet写文件,Servlet写文件的处理方法和读取文件的处理方法非常类似,只是把文件输入流换成文件输出流,在下面这个示例程序中,将在指定位置生成文件。,File file = new File(realPath);if(file.exists()FileReader reader = new FileReader(file);BufferedReader bufferReader = new Buff

28、eredReader(reader);String line = null;while(line = bufferReader.readLine()!=null)out.print(“+line+“); elseout.print(“文件不存在!“);public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletExceptiondoGet(request, response); ,Servlet上传文件,文件的上传下载在Web开发中会经常遇到,使用基

29、本的IO输入输出流当然可以完成这项操作,但是出于对开发的效率和程序运行的效率方面的考虑,在实际的开发过程中一般采用第三方的组件来完成这个上传的功能。在实际开发过程中用的比较多的是commons-fileupload组件和jspSmartUpload组件,这两个组件都可以很好地完成文件上传的功能。,upLoad.jsp, commonfileupload上传文件示例 commonfileupload上传文件示例 文件:,FileUpload.java,package servlets;import java.io.File; /IMPORTpublic class FileUpload exte

30、nds HttpServlet public void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart) FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new Ser

31、vletFileUpload(factory);Iterator items;try items = upload.parseRequest(request).iterator();while (items.hasNext() FileItem item = (FileItem) items.next();if (!item.isFormField() /取出上传文件的文件名称,String name = item.getName(); String fileName = name.substring(name.lastIndexOf()+1,name.length();String path

32、 =this.getServletContext().getRealPath(“)+File.separatorChar+fileName;/上传文件File uploadedFile = new File(path);item.write(uploadedFile);/打印上传成功信息response.setContentType(“text/html“);response.setCharacterEncoding(“gb2312“);PrintWriter out = response.getWriter();out.print(“上传的文件为:“+name+“+“之前“+path+“);

33、out.print(“保存的地址为:“+path+“); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); ,Servlet下载文件,用Servlet下载文件的时候,并不需要第三方组件的帮助,只需要对服务器的响应对象response进行简单的设置即可),FileDownload.java,package servlets;import java.io.FileInputStream; import java.io.OutputStream;import javax.servlet.ServletO

34、utputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class FileDownload extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response) try String fname = “test.xls“; res

35、ponse.setCharacterEncoding(“UTF-8“); fname = .URLEncoder.encode(fname, “UTF-8“); response.setHeader(“Content-Disposition“, “attachment; filename=“+fname); response.setContentType(“application/msexcel“);/ 定义输出类型 catch (Exception e) System.out.println(e); ,servlet过滤器,Servlet过滤器是Servlet的一种特殊用法,主要用来完成一些

36、通用的操作。比如编码的过滤,判断用户的登陆状态等等。Servlet过滤器的适用场合: A认证过滤 B登录和审核过滤 C图像转换过滤 D数据压缩过滤 E加密过滤 F令牌过滤 G资源访问触发事件过滤 Servlet过滤器接口的构成: 所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。,过滤器的功能就是在服务器和客户中间增加了一个中间层,可以对两者之间的交互进行统一的处理,每一个从客户端提交的请求都需要通过过滤器的处理,然后再进行其他的操作。在实际开发中,过滤器器可以用来对用户进行统一的身份判断、IP访问限制,用户发送请求的字符编码转换、对请求和响应进行加密和解密、

37、记录用户登录日志等。当然过滤器的用途不仅仅这些,读者可以根据过滤器的实现原理,思考过滤器更多的用途。,过滤器的基本原理,在实际的应用中,可能会遇到这样的情况,需要对某些IP进行访问限制,不让非法的IP访问应用系统,这个时候就需要用到过滤器进行限制,当一个用户发出访问请求的时候,首先通过过滤器进行判断,如果用户的IP地址被限制,就禁止访问,只有合法的IP才可以继续访问。,IP访问filter,package filter;import java.io.IOException; import java.io.PrintWriter; public class IPFilter implements

38、 Filter protected FilterConfig filterConfig;protected String ip;public void init(FilterConfig filterConfig) throws ServletException this.filterConfig = filterConfig;this.ip = this.filterConfig.getInitParameter(“ip“);public void doFilter(ServletRequest request, ServletResponse response,FilterChain ch

39、ain) throws IOException, ServletException String remoteIP = request.getRemoteAddr();if(remoteIP.equals(ip)response.setCharacterEncoding(“gb2312“);PrintWriter out = response.getWriter();out.println(“你的IP地址被禁止访问。“);elsechain.doFilter(request,response);public void destroy() ,IPFilterfilter.IPFilterip12

40、7.0.0.1IPFilter/*/对所有的请求进行检查,在web.xml中添加如下配置内容:,开发一个过滤器的3个步骤: (1)编写过滤器的功能代码。 (2)把编译成功的过滤器功能代码类文件复制到当前应用项目的WEB-INFclasses目录下。 (3)在当前应用项目的web.xml文件中对过滤器进行配置。,转换字符编码filter,在Java语言中,默认的编码方式是ISO-8859-1,这种编码格式不支持中文的显示,我们可以用类似这样的方式来规定页面字符编码格式,但是如果要显示的内容是表单提交、或者是经过Servlet处理,这时候字符内容本身的编码格式就是ISO-8859-1,所以尽管页面

41、指定的字符编码方案为gb2312,在这种情况下中文内容仍然不能正常显示。,中文乱码问题,1. 首先将开发项目(如在Eclipse中创建的项目)的设置成UTF-8编码方式。这一点在开始一个新的项目的时候尤其重要,目前的项目基本上都使用UTF-8编码了。 2. 确保项目内的所有开发文件都是UTF-8编码的。这里的开发文件主要指:java,jsp,html,js,css,xml类型等开发涉及到的文件,当然图片文件就不用了,貌似没有UTF-8的图形文件。其中的java,js,css,xml类型文件,只要文件的编码方式为UTF-8就可以了。 3. 在项目应用中加一个编码过滤器。,Servlet监听器,类

42、似与Swing界面应用开发,Servlet也可以创建监听器,以对Servlet容器,或Servlet中以象的事件做出反应。Servlet监听器主要有以下几种: ServletRequestListener, ServletRequestAttributeListener, HttpSessionActivationListener, HttpSessionBindingListener, HttpSessionAttributeListener,HttpSessionListener, ServletContextListener等等。 这些监听器主要用来监听session,request,a

43、pplication这三个对象里存取数据的变化。,Servlet总结,Servlet程序是由Web服务器端的JVM执行的Java类。Java Servlet程序也可以看做是运行在服务器上的模块。 Servlet缺点:Java Servlet是利用输出HTML语句来实现动态网页的,如果用Java Servlet来开发整个网站,大量的用于控制显示输出的HTML语句和用于控制网页逻辑的程序语句混杂在一起,使整个代码杂乱不堪,难以阅读,不便于维护。,JSP(Java Server Page)是SUN公司开发的一种服务器端的脚本语言,自从1999年推出以来,逐步发展为开发Web应用一项重要技术。JSP可

44、以嵌套在HTML中,而且支持多个操作系统平台,一个用JSP开发的Web应用系统,不用做什么改动就可以在不同的操作系统中运行。 JSP采用的是动态代码与静态HTML页面相结合的方式,JSP的语法内容放入在以“%”开始,以“%”结束的特殊标记之内。 JSP页面文件通常以.jsp为扩展名。虽然从代码编写来看,JSP页面更象普通Web页面而不象Servlet,但实际上,JSP最终会被转换成正规的Servlet,静态HTML直接输出到和Servlet service方法关联的输出流。,JSP概述,JSP本质上就是把Java代码嵌套到HTML中,然后经过JSP容器的编译执行,可以根据这些动态代码的运行结果

45、生成对应的HTML代码,从而可以在客户端的浏览器中正常显示。在这个小节中将介绍JSP的运行原理、JSP的优点和其运行环境的搭建。,JSP简介,如果JSP页面是第一次被请求运行,服务器的JSP编译器会生成JSP页面对应的Java代码,并且编译成类文件。当服务器再次收到对这个JSP页面请求的时候,会判断这个JSP页面是否被修改过,如果被修改过就会重新生成Java代码并且重新编译,而且服务器中的垃圾回收方法会把没用的类文件删除。如果没有被修改,服务器就会直接调用以前已经编译过的类文件。,JSP运行原理,JSP执行过程,*.jsp,*.java,*.class,执行,jsp parser,JSDK,s

46、ervlet,servlet分析器,JSP执行过程,查找对应的JSP文件,是否存在,Y,N,是否是修改或创建,后第一次调用,Y,调用Jsp Parser将其,编译成Servlet程序,调用JSDK将对应的Servlet,程序编译成Servlet字节码,执行(若未载入则先载入),已有的对应的Java字节码,N,Client,Server,Y,在Web应用开发中,可供选择的动态页面语言技术有很多,例如PHP,ASP,JSP等,在这些动态页面语言中,JSP凭借其自身的优点成为开发人员最喜欢的语言之一。下面列出的几条就是开发人员钟爱JSP的重要原因。 (1)可以直接把JAVA 代码嵌入到HTML中,充

47、分利用JAVA语言的语法和类库。 (2)具有跨平台的优势 (3)JSP中可以使用JavaBean进行逻辑封装,实现逻辑功能代码的重用,提高系统的可重用性。 (4)JSP程序容易上手。 (5)在JAVA领域,有许多开源项目,能够提供丰富的JAVA类、组件,提高开发效率以及系统健壮性。,选择JSP的原因,.其他 HTML 语言其他 HTML 语言,JSP文件结构,JSP原始代码中包含了JSP元素和Template data两类 Template data指的是JSP引擎不处理的部分,即标记以外的部分,例如代码中的HTML的内容等 ,这些数据会直接传送到客户端的浏览器。JSP元素则是指将由JSP引擎

48、直接处理的部分,这一部分必须符合JSP语法,否则会导致编译错误。,JSP语法概述,脚本元素(Scripting Element)脚本元素用来在JSP中嵌入Java代码,它允许声明变量和方法,包含任意脚本代码和对表达式求值。这些Java代码将成为转换得到的Servlet的一部分。 指令(Directive)JSP指令是用作从JSP发送到JSP引擎上的一个信息。它们不向客户端产生任何输出,只是指示JSP引擎需要做什么,所有的指令都在整个JSP文件内有效。也就是说,一个指令影响整个JSP文件,并且只影响这个JSP文件。在标签中指令由标记。 动作(Action)动作用来引入现有的组件或者控制JSP引擎

49、的行为。,JSP语法概述,注释 或 这种注释发送到客户端,但不直接显示,在源代码中可以查到。这种注释不发送到客户端。,JSP基础注释,声明语法:样例: berhely ,JSP基础声明,表达式语法:样例: berhely a=b=c=,JSP基础表达式,脚本段语法:样例: berhely,JSP基础脚本段,include 指令include指令的作用是向当前页中插入一个静态文件的内容。语法: 样例:The current date and time are 当JSP引擎把JSP文件转译成java文件时,会把当前JSP和被包含的JSP页面合并成一个新的JSP页面。当被包含的文件的内容发生变化时,则必须要重新将JSP页面转译成java文件才能看到更新后的内容。,JSP基础Include指令,page 指令page指令用于定义JSP文件中的全局属性。语法:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报