Java Web程序设计课件_第1页
Java Web程序设计课件_第2页
Java Web程序设计课件_第3页
Java Web程序设计课件_第4页
Java Web程序设计课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

项目五JSP技术5.1

JSP基础JSP文件同时包含HTML代码与Java代码。其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。JSP文件可通过Web服务器的Web容器编译成一个Servlet,用来处理对应的请‍求。5.1.1

JSP文件5.1

JSP基础5.1.2

JSP特点JSP是基于Java语言的,使用JSP开发的Web应用是跨平台的,可以运行在不同的系统(如Windows、Linux等)中。在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离。开发人员可以使用HTML设计界面,使用JSP标签和脚本动态生成页面上的内容。JSP中可以使用JavaBean编写业务组件,也就是可以使用一个JavaBean封装业务处理代码或者作为数据存储模型。预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译,编译好的代码将被保存。01020304跨平台界面与应用程序的开发分离组件重用预编译5.1

JSP基础5.1.3编写JSP文件设置后的“CreateJSP/JSPXpage”对话框在IDEA中,创建一个名称为DemoJsp的Web项目,然后右击项目中的Web文件夹,在弹出的快捷菜单中选择“new”→“JSP/JSPX”,弹出“CreateJSP/JSPXpage”对话框。设置后的“CreateJSP/JSPXpage”对话框如图所示。输入文件名,选择文件种类后,单击“OK”按‍钮。单击“OK”按钮后,创建好的helloword.jsp文件如图所‍示。创建好的helloword.jsp文件在helloworld.jsp的<body>标签内添加文字内容“我的第一个JSP页面”并保存,在IDEA中启动Tomcat服务器,使用浏览器访问“http://localhost:8080/helloworld.jsp”,浏览器的显示结果如图所‍示。浏览器的显示结果5.1

JSP基础5.1.4

JSP运行原理客户端发出请求,请求访问JSP文‍件。JSP容器先将JSP文件转换成一个Java源文件(JavaServlet源程序),在转换过程中,如果发现JSP文件中存在语法错误,则中断转换过程,并向服务器端和客户端返回出错信‍息。如果转换成功,JSP容器将生成的Java源文件编译成相应的字节码文件(扩展名为.class)。Servlet容器加载编译后得到的Servlet,创建一个该的实例,并执行Servlet的jspInit()方法完成初始化。JSP容器执行jspService()方法处理客户端的请求。如果JSP文件被修改了,则服务器将根据修改的情况决定是否对该文件进行重新编译。虽然JSP的效率很高,但在第一次调用的时候,由于需要转换和编译,会产生一些轻微的延迟。当请求处理完成后,JSP容器接收响应对象,并将HTML格式的响应信息发送回客户‍端。5.2

JSP基本语法5.2.1

JSP页面的基本构成下面通过一个具体的案例,介绍JSP页面的基本构成。在DemoJsp项目的Web目录中创建DemoJsp01.jsp,其具体代码如‍下。<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@pageimport="java.util.Date"%><%@pageimport="java.text.SimpleDateFormat"%><html><head><title>JSP页面显示系统时间</title></head><body><%Datedate=newDate();SimpleDateFormatdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Stringtoday=df.format(date);%>

当前时间:<%=today%></body></html>案例

JSP页面的基本构成(资源位置:项目5\源文件\DemoJsp01.jsp)系统时间5.2

JSP基本语法5.2.2

JSP脚本元素1.JSPScriptletsJSPScriptlets是嵌入在JSP页面中的Java代码或脚本代码片段。代码片段将在页面请求处理期间被执行。Java代码可以定义变量等;而脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和访问会话等。JSPScriptlets的语法格式:<%Java代码%>下面通过一个具体的案例,介绍JSPScriptlets的使用。在jspDemo项目的Web目录中创建DemoJsp02.jsp,其具体代码如‍下。案例

JSPScriptlets的使用(资源位置:项目5\源文件\DemoJsp02.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>JSPScriptlets</title></head><body><%inta=1,b=2;//定义两个变量a、bout.println(a+b);%></body></html>JSPScriptlets对应的结果5.2

JSP基本语法5.2.1

JSP页面的基本构成2.JSP声明标识如果想在JSP脚本元素中定义方法,可以使用JSP声明标识。JSP声明标识以“<%!”开始,以“%>”结束。通过JSP声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用它定义整个JSP页面需要引用的变量或方‍法。JSP声明标识的语法格式如下所‍示。<%!定义变量或方法%>下面通过一个具体的案例,介绍JSP声明标识的使用。在jspDemo项目的Web目录中创建DemoJsp03.jsp,其具体代码如‍下。案例

JSP声明标识的使用(资源位置:项目5\源文件\DemoJsp03.jsp)5.2

JSP基本语法<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>JSP声明标识</title></head><%!publicintprint(){//定义print()方法inta=1,b=2;//定义两个变量a、breturna+b;}%><body><%out.println(print());//调用print()方法,输出其返回值%></body></html>JSP声明标识对应的结果需要注意的是,“<%!”“%>”里面定义的变量是成员变量,相当于类的属性;方法相当于成员方法,也相当于类里面的方法。但是在“<%!”“%>”里面是不可以进行输出的,只能在里面进行方法和属性的定‍义。5.2

JSP基本语法5.2.1

JSP页面的基本构成3.JSP表达式JSP表达式用于在页面中输出信息,它以“<%=”开始,以“%>”结束,其基本的语法格式:<%=expression%><%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>JSPScriptlets</title></head><%!inta=1,b=2;//定义两个变量a、b%><body><%=a+b%><br/></body></html>下面通过一个具体的案例,介绍JSP表达式的使用。在DemoJsp项目的Web目录中创建DemoJsp04.jsp,其具体代码如‍下。案例

JSP表达式的使用(资源位置:项目5\源文件\DemoJsp04.jsp)JSP表达式对应的结果5.2

JSP基本语法5.2.3

JSP注释01单行注释在JSP页面中可以嵌入代码片段,在代码片段中也可以加入注释。代码片段中的注释与Java代码中的注释相同,其中单行注释以“//”开头,后面接注释内容,其语法格式如下://注释内容02多行注释多行注释以“/*”开始,以“*/”结束。在两个标识中间的内容为注释内容,并且注释内容可以换行,其语法格式如下:/*

注释内容1

注释内容2...*/5.2

JSP基本语法5.2.3

JSP注释03提示文档注释提示文档注释在生成文档时被javadoc文档工具读取,它是对代码结构和功能的描述。其语法格式:/**

提示信息1

提示信息2...*/04隐藏注释JSP提供了隐藏注释。隐藏注释不仅在浏览器页面中不显示,在查看源代码时也看不到,有着较高的安全‍性。隐藏注释的语法格式如下:<%--注释内容--%>5.3

JSP隐式对象5.3.1

JSP隐式对象概述表JSP中的9个隐式对象名称类型描述outjavax.servlet.jsp.JspWriter用于向客户端输出内容requestjavax.servlet.http.HttpServletRequest用于获取客户端的请求信息responsejavax.servlet.http.HttpServletResponse用于向客户端发送响应信息configjavax.servlet.ServletConfig获取Servlet配置信息sessionjavax.servlet.http.HttpSession用来保存客户端的信息applicationjavax.servlet.ServletContext所有客户端的共享信息pagejava.lang.Object指当前页面转换并编译后的Servlet类的实例pageContextjavax.servlet.jsp.PageContextJSP的页面容器exceptionjava.lang.Throwable表示JSP页面所发生的异常,在错误页面中才起作用5.3

JSP隐式对象5.3.2

out对象out对象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象的作用非常相似,都是用来向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于带缓存功能的PrintWriter对‍象。下面通过一个具体的案例,介绍out对象的使用。在jspDemo项目的Web目录中创建DemoJsp05.jsp,其具体代码如‍下。<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>out对象</title></head><body><%out.println("第一行<br/>");response.getWriter().println("第二行<br/>");%></body></html>案例

out对象的使用(资源位置:项目5\源文件\DemoJsp05.jsp)out对象使用结果5.3

JSP隐式对象5.3.3

pageContext对象表pageContext对象提供的获取其他隐式对象的方法方法名功能描述JspWritergetOut()用于获取out隐式对象ObjectgetPage()用于获取page隐式对象ServletRequestgetRequest()用于获取request隐式对象ServletResponsegetResponse()用于获取response隐式对象HttpSessiongetSession()用于获取session隐式对象ExceptiongetException()用于获取exception隐式对象ServletConfiggetServletConfig()用于获取config隐式对象ServletContextgetServletContext()用于获取application隐式对象5.3

JSP隐式对象5.3

pageContext操作属性的相关方法方法名功能描述voidsetAttribute(Stringname,Objectvalue,intscope)用于设置pageContext对象的属性ObjectgetAttribute(Stringname,intscope)用于获取pageContext对象的属性voidremoveAttribute(Stringname,intscope)用于删除指定范围内名称为name的属性voidremoveAttribute(Stringname)用于删除所有范围内名称为name的属性ObjectfindAttribute(Stringname)用于从4个域对象中查找名称为name的属性pageContext对象的作用范围有4个值可取,具体如‍下。(1)pageContext.PAGE_SCOPE:表示页面范‍围。(2)pageContext.REQUEST_SCOPE:表示请求范‍围。(3)pageContext.SESSION_SCOPE:表示会话范‍围。(4)pageContext.APPLICATION_SCOPE:表示Web应用程序范‍围。5.3

JSP隐式对象下面通过一个具体的案例,介绍pageContext对象的使用。在jspDemo项目的Web目录中创建DemoJsp06.jsp,其具体代码如‍下。案例

pageContext对象的使用(资源位置:项目5\源文件\DemoJsp06.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>pageContext对象</title></head><body><%HttpServletRequestreq=(HttpServletRequest)pageContext.getRequest();//获取request对象pageContext.setAttribute("str","Java代码",pageContext.PAGE_SCOPE);//设置页面范围属性req.setAttribute("str","JavaWeb代码");//设置请求范围属性Stringstr1=(String)pageContext.getAttribute("str",pageContext.PAGE_SCOPE);//获得的页面范围属性Stringstr2=(String)pageContext.getAttribute("str",pageContext.REQUEST_SCOPE);//获得的请求范围属性%><%="page范围:"+str1%><br/><%="request范围:"+str2%><br/></body></html>pageContext对象使用结果5.3

JSP隐式对象5.3.4

exception对象在JSP页面中,经常需要处理一些异常信息,这可以通过exception对象实现。exception对象是java.lang.Throwable类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误页面才可以使用,即包含<%@pageisErrorPage="true"%>的页面。exception对象的语法格式如下:<!--显示异常信息--><%=exception.getMessage()%><br/>5.4

JSP动作元素5.4.1

<jsp:include>动作在JSP页面中,<jsp:include>动作元素用于向当前页面引入其他的文件,被引入的文件可以是动态文件,也可以是静态文件。<jsp:include>动作元素的语法格式如下所‍示。<jsp:includepage="URL"flush="true|false"/>在jspDemo项目的Web目录中创建DemoJspInclude07.jsp,其具体代码如‍下。案例

DemoJspInclude07.jsp(资源位置:项目5\源文件\DemoJspInclude07.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>DemoJspInclude07</title></head><body><%Thread.sleep(1000);%>DemoJspInclude07.jsp内的中文<br/></body></html>5.4

JSP动作元素5.4.1

<jsp:include>动作在jspDemo项目的Web目录中创建DemoJsp07.jsp,其具体代码如‍下。案例

DemoJsp07.jsp(资源位置:项目5\源文件\DemoJsp07.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>jsp:includepage</title></head><body>DemoJsp.jsp内的中文<br/><jsp:includepage="DemoJspInclude07.jsp"flush="true"/></body></html>DemoJsp07.jsp页面的显示结果5.4

JSP动作元素5.4.2

<jsp:forward>动作<jsp:forward>动作元素可以将当前请求转发到其他Web资源(HTML页面、JSP页面和Servlet等),执行请求转发之后,将不再执行当前页面的后续代码,而是完全由目标资源处理请求并返回响应。<jsp:forward>的具体语法格式如下所示。

<jsp:forwardpage="relativeURL"/>下面通过一个案例演示<jsp:forward>动作元素的使‍用。案例

DemoJspForward08.jsp(资源位置:项目5\源文件\DemoJspForward08.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>welcomepage</title></head><body>你好,欢迎进入首页,当前访问时间是:<%out.print(newjava.util.Date());%></body></html>5.4

JSP动作元素在jspDemo项目的Web目录中创建DemoJsp08.jsp,其具体代码如‍下。案例

DemoJsp08.jsp(资源位置:项目5\源文件\DemoJsp08.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><%@pageimport="java.util.Date"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>welcomepage</title></head><body><jsp:forwardpage="DemoJspForward08.jsp"/></body></html>请求转发后的结果【商业实例】仿公司OA管理系统,实现JSP用户登录页面任务一创建JSP页面在jspDemo项目的Web目录中创建login.jsp。(代码位置:项目5\扩展训练\商业实例业\商业实例\login.jsp)<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>登录</title><styletype="text/css">.form-control{width:300px;}.wForm{background-image:url("bg.jpg");/*替换为自己的图片的路径*/background-size:cover;width:100%;/*设置宽度(可选)*/height:100%;/*设置高度(可选)*/}</style><linkrel="stylesheet"href="bootstrap.min.css"><scripttype="text/javascript"src="jquery.min.js"></script></head>【商业实例】仿公司OA管理系统,实现JSP用户登录页面<body><divclass="wForm"><!--面包屑导航--><navaria-label="breadcrumb"><olclass="breadcrumb"><liclass="breadcrumb-item"><ahref="#">注册</a></li><liclass="breadcrumb-itemactive"aria-current="page">登录</li><liclass="breadcrumb-item"><ahref="#">首页</a></li><liclass="breadcrumb-item"><ahref="#">简介</a></li><liclass="breadcrumb-item"><ahref="#">商务</a></li><liclass="breadcrumb-item"><ahref="#">关于我们</a></li></ol></nav><h1>XXX公司OA登录页面</h1><!--表单--><formaction="/LoginServlet"method="POST"><divclass="form-group"><labelfor="User">用户名</label><inputtype="text"class="form-control"id="User"name="User"style="width:20%;"><labelfor="Password">密码</label><inputtype="password"class="form-control"id="Password"

name="Password"style="width:20%;"></div><buttontype="submit"class="btnbtn-primary">登录</button></form></div></body></html>【商业实例】仿公司OA管理系统,实现JSP用户登录页面任务二

使用Servlet技术实现登录页面前后端交互数据在jspDemo项目的src目录中创建LoginServlet类(项目5\扩展训练\商业实例\LoginServlet.java)具体代码如下:importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.UnsupportedEncodingException;@WebServlet(name="LoginServlet",urlPatterns="/LoginServlet")publicclassLoginServletextendsHttpServlet{publicvoiddoPost(HttpServletReques

温馨提示

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

评论

0/150

提交评论