l JSP (JavaServer Page)工作在服务器上,用来生成动态页面的技术
l Servlet―――特殊Java类,需要有Servlet容器才能够运行,也是工作在服务器上的,Servlet一个重大的弱点就是处理显示的时候非常不方便,所以Sun推出了JSP
l 在服务器上部署JSP和Servlet,我们可以选择的服务器非常多,tomcat(简单、开源)、weblogic(强大、商业级)、jboss、jrun、resin、websphere、java application server
l Tomcat 5.x 支持JSP 2.0 和 Servlet 2.4
l HTML(HyperText Markup Language)作静态网页的,浏览器相当于就是HTML的解释器
l 在客户端能看到的东西全都是静态的内容(HtML、Javascript、CSS),JSP和Servlet在客户端都是无法查看的
l 支持JSP的扩展标签:
(1)注释标签
<!-- -->客户端能够看到的注释
<%-- -->服务端的注释,客户端无法查看
(2)指令标签
<%@page|include|taglib %>
<%@page import = “java.sql.*,java.util.*”%>
<%@page pageEncoding = “GBK”%>
<%@page contextType = “text/html;charset=GBK”>
<%@page errorPage = “error.html”%>
<%@page isELIgnored = “false”%>
<%@include file = “...”%> --- <jsp:include page=”...”>
<%@taglib uri=”...” prefix=”jack”%>
<%@taglib uri=”...” prefix=”my”%>
<jack:A/> <my:A/>
(3)声明标签
<%!
声明Java的方法、类、全局量
%>
(4)Scriptlet标签(相当于构造器,里面不能再写构造器了)
<%
String s = new String(“Hello, world”);
%>
<h1> .. </h1>
<%
// java code
%>
(5)表达式标签
<%= %>相当于一个输出语句 --> 表达式语言 ${ }
(6)动作标签
<jsp:***>JSP动作
<jsp:useBean id = “..” class = “java.util.Date” scope=”page|request|session|application”/>
<jsp:setProperty name = “...” property = “*” value = “...”/>
<jsp:getProperty name = “...” property = “...”/>
写猜数字、购物车
<jsp:forward page = “...”/>
<jsp:plugin type=”applet”.../>
<jsp:root><jsp:element>
l JSP的内建(隐式)对象(对应以下类)
out(JspWriter)
request(HttpServletRequest)
response(HttpServletResponse)
page(Object)
session(HttpSession)
application(ServletContext)
config(ServletConfig)
exception(Exception)
pageContext(PageContext)
l 如果要在命令行启动tomcat,需要配置环境变量
CATALINA_HOME:Tomcat安装的位置
JAVA_HOME:JDK安装的位置
PATH:Tomcat的bin目录startup/shutdown
l 可以用netstat –na命令查看哪些端口已经被占用
l config内建对象和application内建对象都可以读web.xml中设置的参数,前者是ServletConfig类的对象,读的是Tomcat安装路径下/conf/web.xml;后者是ServletContext类的对象,读的是当前Web应用程序/WEB-INF/web.xml,如果想在JavaBean中使用这两个内建(隐式|隐含|内嵌)对象,通过方法从JSP页面中传递过去。
l Cookie分为两种,基于窗口的Cookie和持久的Cookie,前者只存在于内存中,不写入文件,只能被当前窗口及其子窗口访问,后者可以被当前域的页面访问。
l Session是依赖于Cookie存在的,它保存在一个基于窗口的cookie中,如果浏览器禁用cookie就必须使用URL重写来拿到前一个页面的session,实现会话跟踪,具体的操作:response.encodeURL(“carts.jsp”); à http://******/carts.jsp;jsessionid=****
l