JSP概述
1)JSP是一种动态网页技术标准,它是在传统的页面HTML文件中插入Java程序段和JSP标记(tag),从而形成JSP文件(*.jsp),也称JSP页面。
2)JSP容器是一个支持JSP的Web服务器。目前Apache的Jakarta Tomcat服务器就是运行JSP/Servlet的Web服务器,它作为JSP Web应用的最佳选择之一。
JSP的工作原理
当一个JSP页面第一次被访问时的初始化过程:
a)首先会被JSP容器翻译为一个Java源文件,其实就是一个Servlet
b)并进行编译生成相应的字节码.class
c)然后像其他Servlet一样,由JSP/Servlet容器来处理
e)JSP/Servlet容器装载着这些类、接收来自客户端请求,并将处理结果返回客户端
注意:
a)如果以后再访问这个页面,只要页面没有发什么改变,JSP容器可以直接调用已经装载好的Servlet;
b)JSP页面有与之一一对应的Servlet。一般情况下,JSP注重页面表现,而Servlet注重业务逻辑。
JSP基本语法
JSP基本结构:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!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=ISO-8859-1"> <title>Insert title here</title> </head> <body> <% out.println("hello world"); %> </body> </html>
a)注释
1)HTML/XML注释 在源码中显示
<!-- 网页注释内容 -->
2)隐藏注释 源码中不显示
<%-- 网页注释内容 --%>
b)表达式 用来把Java数据直接插入到浏览器页面输出 <%= Java Expression %>
<%= "Hello World" %>
编译成Servlet后,就变成:
out.write(String.valueOf("Hello Word"));
相当于JSP页面:
out.printlin("Hello World");
c) Scriptlet 允许把任意的Java代码插入到其中 (<% Java Code %>)
<% int i; String color1="99ccff"; String color2="88cc33"; for(i=1;i<=count;i++){ String color=""; if(i%2==0)color=color1; else color=color2; out.println("<tr bgcolor="+color+"><td>---</td></tr>"); }%>
Scriptlet 与 普通静态网页融合
<% String usrname=request.getParameter("usr"); String passwrod=request.getParameter("pasw"); String type=request.getParameter("type"); String cout=request.getParameter("count"); int count=Integer.parseInt(cout); if(usrname.equals("adim")&&passwrod.equals("12345")) {%> <h2>欢迎您!</h2><%=usrname%> <%if(type.equals("1")) out.print("管理员"); else out.print("普通用户"); count+=1;%> <%}else{%> <% count+=1; %> <jsp:forward page="Login.jsp"></jsp:forward> <%}%>
上述例子则可以说明:Scriptlet中的代码将被用到Servlet内,而Scriptlet前面和后面的静态HTML将被转化成println语句输出。
这就意味着,Scriptlet内的Java语句并非一定是要完整的。
d)声明 定义插入SErvlet类的方法和成员变量 (<%! Java Code%>)
<%! private int accessCount=0; %>