b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

Java Web开发之解析JSP

电脑杂谈  发布时间:2019-08-30 00:04:33  来源:网络整理

jsp 应用开发详解_jsp网站开发详解_jsp 应用开发详解

格式:<%!...%> 比如:

[html]view plaincopy在CODE上查看代码片派生到我的代码片

<%!publicStringgetTime(){returnnewSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(newDate());}%>

6、动作

使用JavaBean:<jsp:useBean scope="page"/>

获取属性:<jsp:getProperty property="Bean的属性名称" />

设置属性:<jsp:setProperty property="Bean的属性名称" value="为属性指定的显式值"/>

页面包含:<jsp:include page="test.jsp"/>

页面跳转:<jsp:forward page="test.jsp"/>

...

7、注释

分两种注释:

a、<!--客户端可以发现的注释-->

jsp 应用开发详解_jsp 应用开发详解_jsp网站开发详解

b、<%--客户端看不到的注释%>

基本上上面的这7个元素,稍微复杂一点的jsp页面就会包含。这里非常提及一下,include指令和include动作的差别,两者都可以在主页面中采用别的页面,达到嵌入页面的目的。主要差别在于include指令会制约主jsp页面的构造,对主页面定义的变量会有妨碍,本质上是跟主页面编译为一个新的页面,因此页面执行效率更高。而include动作是将新的页面嵌入到主页面当中,在执行时会先读取主jsp页面jsp 应用开发详解,再读取include动作嵌入的页面,执行效率比include指令低一点,但是这是更灵活的选用。实际开发中,使用include动作更多一点。

二、JSP隐式对象

隐式对象的意思就是指不需要显式new一个类的对象的对象,可以在JSP页面直接使用。主要有四类:

1、输入输出对象:request、response、out

request.getParameter("name");

request.getParameterValues("name");

response.setContentType("text/html;charset=gbk");

response.sendRedirect("url");

out.println("...");

2、作用域对象:pageContext、request、session、appplication

pageContext.getAttribute("name");

pageContext.setAttribute("name","value");

jsp网站开发详解_jsp 应用开发详解_jsp 应用开发详解

request.getAttribute("name","value");

request.setAttribute("name","value");

session.getAttribute("name");

session.setAttribute("name","value");

application.getAttribute("name");

application.setAttribute("name","value");

作用域对象的生命周期:pageContext(页面)<request(请求)<session(会话)<application(应用)。

3、Servlet对象:page、config

((HttpJspPage)page).getServletInfo();

config.getInitParameter("name");

4、错误对象:exception

exception.printStackTrace(out);

三、EL表达式(表达式语言)

jsp网站开发详解_jsp 应用开发详解_jsp 应用开发详解

虽然无法借助表达式在JSP页面内嵌Java代码实现结果输出,但是这并不是最好的开发模式。从开发视角来讲,前台JSP页面需要不出现Java代码(Java代码需要在后台发生)。为了缓解这个难题,推出了JSP表达式语言。

语法:${...} 。

举个简单点的举例:

[html]view plaincopy在CODE上查看代码片派生到我的代码片

<jsp:useBeanid="bean"class="com.JspPractise.bean.City"scope="page"/><jsp:setPropertyproperty="name"name="bean"value="测试EL"/>${bean.name}or${bean["name"]}

通过jsp的useBean动作使用了某个JavaBean,再借助setProperty动作给name属性数组,最后通过${bean.name}或者${bean["name"]}输出:测试EL。

再例如form表单提交:

我们可以使用<%=request.getParameter("name") %>输出结果,但是更好的方法是通过${param.name}来输出。由于该作用域为page,所以也可以通过${pageScope.bean.name}EL隐式对象输出。从作用域从小到大排序其他也有requestScope、sessionScope、applicationScope等诸多EL隐式对象(区别于JSP隐式对象)。

此外,EL表达式还有运算功能,比如:

[html]view plaincopy在CODE上查看代码片派生到我的代码片

${10+1.0}<!--11.0-->${90E2-120}<!--8880.0-->${23.8*7}<!--166.6-->${1/0}<!--Infinity-->${10div5}<!--2.0-->${10%4}<!--2-->${10mod4}<!--2-->${10*10eq100}<!--true-->${'c'gt'b'}<!--true-->${9le8}<!--false-->

四、JSTL(Java标准标签库)

JSTL也是JSP页面中使用的技术,这套标签库修改的目的就是在JSP页面中应对一些判定(条件标签:if)、循环(迭代标签:foreach)、操作(SQL标签库:update、param、query等)操作的之后,总不可避免的要嵌入Java代码,而使用这种标签则让JSP页面代码“清爽”了许多。除了前面的这种标签之外,还有一些通用标签,比如:set、remove、out等。

jsp网站开发详解_jsp 应用开发详解_jsp 应用开发详解

使用JSTL,首先要使用taglib指令jsp 应用开发详解,导入JSTL。

[html]view plaincopy在CODE上查看代码片派生到我的代码片

<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>

导入以后就可以在JSP页面中使用JSTL了。

下面用JSTL将里面的输出“上午/下午”的嵌入Java代码的举例,改用JSTL实现。

[html]view plaincopy在CODE上查看代码片派生到我的代码片

<c:setvar="cc"value="<%=Calendar.getInstance().get(Calendar.AM_PM)%>"/><c:setvar="pm"value="<%=Calendar.PM%>"/><c:setvar="am"value="<%=Calendar.AM%>"/><c:iftest="${cc==am}"><c:outvalue="上午"></c:out></c:if><c:iftest="${cc==pm}"><c:outvalue="下午"></c:out></c:if>

除了value里面的代码是Java代码之外(这里为了简单演示没有将Java代码保存到后台代码中去),再也看不到Java的身影了,取而代之的是JSTL。

再说说foreach标签怎么使用。

[html]view plaincopy在CODE上查看代码片派生到我的代码片

<%String[]colors=newString[]{"red","green","yellow","black","silver"};pageContext.setAttribute("colors",colors);%><c:forEachvar="color"items="${pageScope.colors}"><c:iftest="${color=='yellow'}"><c:outvalue="${color}"/></c:if></c:forEach>

将一个String数组存放到了pageContext(JSP作用域对象)当中,然后借助JSTL结合EL表达式pageScope(EL作用域对象)取出并循环输出。

JSTL还提供了SQL标签库,由于我们开发通常就会在后台封装这部分代码,所以基本上用不着,这里也就不再演示。

本篇博客主要解读了JSP开发过程中的好多基础性的细节知识,熟练把握以下常识能够够进行Java Web开发了。当然随着项目体量的越来越大,单纯的JSP开发也不能否胜任,需要采用开发框架。著名的struts、hibernate、spring等框架我会在今后再介绍。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-121027-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...