动态页面与静态页面
程序是否在服务器端运行,是判断网页是不是动态页面的标志。
(通俗理解:每个客户看到的都是一个相同的页面,叫做静态页面,比如html页面, 如果页面加入了逻辑判断,对没个客户展示的内容有差异,也就是能够动态产生内容的,叫做动态页面)
常用的动态网页技术有:ASP PHP JSP
JSP
JSP全名为Java Server Pages,其根本是一个简化的Servlet设计
tomcat服务器对jsp结尾的文件的执行过程:
首先jsp存放在web服务器(webapps/当前项目名称)的,所以访问要通过访问tomcat等服务器
JSP会在访问的时候由tomcat生产一个对应的servlet源文件(在work/catalina/localhost/当前项目名称/org/apache/jsp),可以查看该文件结构。
非常类似之前的servlet,通过jspservice方法进行最后内容的输出,以前静态的内容做成字符串,动态内容进行解析。
然后编译该文件,生产class文件执行。
相应的jsp也有生命周期
脚本:
<%= %> ......显示变量或者表达式的值
<% %> ......执行普通java代码,可在内容中加入out.print()实现输出值到页面
<%! %> ......声明全局变量也就是生成servlet文件后 servlet的全局变量
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>求1到100的和</h1>
<%
int sum=0;
for(int i=1;i<=100;i++)
{
sum+=i;
}
System.out.print(sum);
%>
<%=sum %>
</body>
</html>
<%@ page language="java" import="java.util.List,java.util.ArrayList,product.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <center> <%Product p1=new Product("apple", 5); Product p2=new Product("iphone", 5000); Product p3=new Product("ticket", 1000); Product p4=new Product("gamemachine", 800); Product p5=new Product("candy", 18); List<Product> lst=new ArrayList<Product>(); lst.add(p1); lst.add(p2); lst.add(p3); lst.add(p4); lst.add(p5); %> <h1>商品列表</h1> 时间:<%=new java.util.Date().toLocaleString()%></br> <table> <tr><td>名称</td><td>价格</td></tr> <%for(Product p:lst){ %> <tr><td><%=p.getName() %></td><td><%=p.getPrice() %></td></tr> <%} %> </table> </center> </body> </html>
在body标签内打上<center></center>标签使其中的部分居中显示