HTML 样式化:CSS
XML 样式化:XSLT + XSL-FO
XSLT 负责转换XML文档为其他文档(主要是HTML、XML)
XML-FO 作用类似于CSS
HTML 样式化:CSS
XML 样式化:XSLT + XSL-FO
XSLT 负责转换XML文档为其他文档(主要是HTML、XML)
XML-FO 作用类似于CSS
<jsp:useBean id="product" class="com.javaBean.ProductBean"/>
<jsp:setProperty property="price" value="23.5" name="product"/>
<jsp:setProperty property="num" value="2" name="product"/>
<jsp:getProperty property="totalPrice" name="product"/>
对比
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" import="com.javabean.ProductBean"%>
<%
Object obj=pageContext.getAttribute("product");
ProductBean product=null;
if(obj==null){
product=new ProductBean();
pageContext.setAttribute("product",product,pageContext、PAGE_SCOPE);
}else{
product=(ProductBean)obj;
}
product.setPrice(23.5f);
product.setNum(2);
%>
<%=product.getTotalPrice()%>
可以看到,使用 JSP 动作指令对 JavaBean 的访问可以做到完全不涉及 Java 代码。
这种方式大大降低了对页面设计人员的编程要求、增强页面的可维护性。因此在实际开发中,推荐采用动作指令访问 JavaBean 的方式。
1.forward跳转:
a.服务器端跳转,地址栏不改变;
b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);
c.request设置的属性在跳转后的页面仍可以使用;
d.使用<jsp:param name="参数名" value="参数值" />传递参数。
2.response跳转:
a.客户端跳转,地址栏改变;
b.所有代码执行完毕后跳转;
c.跳转后的页面不能使用上一个页面的request属性;
d.使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。
<jsp:useBean.../>:
只有在不存在同样(id, scope)的Bean时才创建新的对象实例;
否则,尝试获得现有Bean的引用,可视为声明。
就是不用框架,只用 runtime 提供的 API 的意思
首先,JSPX 是完成符合 XML 格式的 JSP。
进一步,JSPX 强制分离了 JS 和 XML 代码;而 JSP 在 XML/HTML中 嵌入 Java 逻辑,这不利于测试。
JSPX 有利于及早纠正错误。
多数情况下,JSPX 语法更简单。
但涉及动态内容、复杂表达式或执行逻辑时,JSP 显然更胜一筹。
默认已将Tomcat集成到IDEA中。
确保“执行前”没有表项
题:求正整数m, n的最大公约数
解:
不妨设 m > n,令 m % n = r。(r 为自然数)。
若 r = 0,则 n 即为所求,gcd(m,n) = n;
否则,有: r = m - kn(k 为正整数),则有: