1.JDK配置问题
JAVA_HOME,CLASSPATH,PATH.
只有这三个java环境变量。
JAVA_HOME指向的是JDK的安装路径,如C:\j2sdk1.4.2_09,在这路径下你应该能够找到bin、lib等目录。
JAVA_HOME:D:\JDK
PATH环境变量,目的是为了指向JDK的bin目录,这里面放的是各种编译执行命令
path:F:\oracle\product\10.2.0\db_1\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files\MySQL\MySQL Server 6.0\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin;
CLASSPATH最重要,编译类的时候寻找jre包
classpath:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2Tomcat 配置
E:\apache-tomcat-6.0.20\conf文件中的
tomcat-users.xml中
<user username="admin" password="1234" roles="admin,manager"/>
server.xml中
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3.Jsp的特点:
A.程序逻辑和显示分离,从而使开发人员分工更加明确,页面设计师可以修改内容二不影响逻辑,程序开发者可以修改逻辑而不影像内容
B.可重用组件 ,大多数jsp以来于可重用的,跨平台的组件(JavaBeans EnterpriseJavaBean)来执行应用程序的复杂处理,基于组件的开发提高了应用程序的开发效率。
C.使用标签简化页面开发
D.具有java的特点,jsp是基于java的,故具有简装的存储管理,安全性,跨平台特性,一次编写,处处运行。
4.jsp运行机制:
Jsp页面执行分成两个阶段:一个是转译阶段,一个是请求阶段
转译阶段:jsp页面转换成servlet类
请求阶段:servlet类执行,将响应结果发送至客户端
Jsp执行流程:
执行流程解释:
A、客户机访问相应的jsp页面
B、服务器找到相应的jsp页面
C、服务器将jsp转译为servlet的源代码
D、服务器将servlet源代码编译为class文件
E、服务器将class文件加载到内存并执行
F、服务器将class文件执行后生成HTML代码发送到客户机,客户机浏览器根据反馈的HTML代码进行显示
如果该jsp页面是第一次执行,会经过以上两个阶段,如果是第二次执行,则只会执行请求阶段,这就是第二次执行jsp页面时比第一次快的原因。
5.jsp脚本元素(三种)
A、Jsp声明语句<%! 全局变量在此声明%>
B、jsp Scriptlets:jsp里面的内嵌java代码段 <% java代码%>//包含方法、变量、表达式等
C、jsp表达式 <%=java代码 %>
6.注释区分
HTML代码注释是可以显示在客户端的:<!--注释 -->
Jsp代码注释是不能显示在客户端的:<%-- 注释--%>
7.JSP指令元素:page指令、include指令、taglib指令
include指令元素格式:<%@ include file="被包含文件的路径"%>
taglib指令元素:用来声明此jsp文件使用了自定义标签,同时引用所指定的标签库并设置标签库的前缀,语法格式:
<%@ taglib uri ="标签库的uri" prefix ="标签库前缀"%>
8.jsp基本动作元素:<jsp:include>、<jsp:forward>、<jsp:param>、<jsp:plugin>、<jsp:params>、<jsp:fallback>
<jsp:include>:当包含静态文件时,只是单纯的加到jsp页面,不做任何处理:当包含文件为动态文件时,会先进行处理,然后将处理结果显示到jsp页面
<jsp:forward>:用来转移用户的请求,使得用户请求的页面跳转到指定页面,这种跳转为服务器端跳转,所以用户的地址栏不会发生任何变化。
<jsp:forward>跳转执行流程:jsp会先执行<jsp:forward>动作元素之前的代码,只有执行到<jsp:forward>动作元素时才进行跳转,跳转完成后将执行被跳转的jsp文件,
<jsp:forward>动作元素后面的代码将不会被执行
语法格式:<jsp:forward page="跳转文件的URL地址" />
<jsp:param>:主要是结合<jsp:include>和<jsp:forward>向被包含或转发的文件中传递参数,两个重要的属性是name和value。以下是例子:
paraminclude.jsp文件(传递一个参数)
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head>包含jsp文件并传递参数</head> <body> 使用include动作元素包含一个jsp文件,并传递参数<br> <jsp:include page="contentDemo.jsp"> <jsp:param name="age" value="19"> </jsp:include> </body> </html>
contentDemo.jsp文件
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <h2>被包含页</h2> <body> <p>接收到的参数:</p><br> <% String strAge = request.getParameter("age"); %> <%="age参数值为:"+strAge%> </body> </html>
传递多个参数的例子:
paraminclude2.jsp文件(传递多个参数)
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head>包含jsp文件并传递参数</head> <body> 使用include动作元素包含一个jsp文件,并传递参数<br> <jsp:include page="contentDemo.jsp"> <jsp:param name="age" value="20"> <jsp:param name="name" value="许助云"> <jsp:param name="sex" value="男"> </jsp:include> </body> </html>
contentDemo2.jsp文件
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <h2>被包含页</h2> <body> <p>接收到的参数:</p><br> <% String strAge = request.getParameter("age"); String strName = request.getParameter("name"); String strSex = request.getParameter("sex"); %> <%="age参数值为:"+strAge%> <%="name参数值为:"+strName%> <%="sex参数值为:"+strSex%> </body> </html>
<jsp:param,>和<jsp:forward>、<jsp:include>配合使用传参道理是一样的,此处不再一一赘述。
附加:
<jsp:include>和<%@ include%>的区别:
<%@ include%>指令元素只是将页面的内容静态地包含进来,如果被包含页面文件中有jsp代码,则会执行该代码,而不管该文件是否是动态文件。
<jsp:include>动作元素动态的包含文件,如果被包含的文件是静态的,则直接包含内容,不会进行处理。如果包含的文件是动态的,则先执行,再包含结果并进行显示。
9.jsp动作元素分类:
第一类是与存取javabean有关的,包括3个动作元素:
<jsp:useBean>、 <jsp:setProperty>、<jsp:getProperty>
第二类是jsp1.2就开始有的基本动作元素,包括6个动作元素
<jsp:include>,<jsp:forward>,<jsp:param>,<jsp:plugin>,<jsp:params>,<jsp:fallback>
第三类是jsp2.0新增的动作元素,主要与jsp document有关,包括6个动作元素
<jsp:root>,<jsp:declaration>,<jsp:scriptlet>,<jsp:expression>,<jsp:text>,<jsp:output>
第四类也是jsp2.0新增的动作元素,主要用来动态的生成XML元素标签的值,包括3个动作元素
<jsp:attribute> <jsp:body> <jsp:element>
第五类也是jsp2.0新增的动作元素,主要用在Tag File中,包括2个动作元素,
<jsp:invoke> <jsp:doBody>