javaweb基础系列之一

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执行流程:

javaweb基础系列之一_第1张图片

 

执行流程解释:

A、客户机访问相应的jsp页面

B、服务器找到相应的jsp页面

C、服务器将jsp转译为servlet的源代码

D、服务器将servlet源代码编译为class文件

E、服务器将class文件加载到内存并执行

F、服务器将class文件执行后生成HTML代码发送到客户机,客户机浏览器根据反馈的HTML代码进行显示

如果该jsp页面是第一次执行,会经过以上两个阶段,如果是第二次执行,则只会执行请求阶段,这就是第二次执行jsp页面时比第一次快的原因。

 

5.jsp脚本元素(三种)

 AJsp声明语句<%! 全局变量在此声明%>

 Bjsp Scriptletsjsp里面的内嵌java代码段  <% java代码%>//包含方法、变量、表达式等

 Cjsp表达式 <%=java代码 %>

6.注释区分

  HTML代码注释是可以显示在客户端的:<!--注释 -->

  Jsp代码注释是不能显示在客户端的:<%-- 注释--%>

7.JSP指令元素:page指令、include指令、taglib指令

Page指令属性
<%@ page language="java"%><%--指定服务器端脚本语言,默认java--%>
<%@ page Session="true"%><%--指定本页Session是否参与会话,默认true--%>
<%@ page buffer="20kb"%><%--指定客户端的输出流中的缓存的模式,取值none/8kb/nkb,默认>8kb--%>
<%@ page autoFlash="true"%><%--设置缓冲区填满时是否进行缓冲自动刷新,值为false时,运行时会出现缓存溢出异常报错,默认true--%>
<%@ page isThreadSafe="true"%><%--设置JSP是否支持多线层,值为false时限制每次只能有一个用户访问该页面,默认true--%>
<%@ page info="页面值"%><%--为JSP页面准备一个字符串,该字符串可由servlet.getServletInfo()方法获得,默认可忽略--%>
<%@ page isErrorPage="false"%><%--指定当前页面是否可以作为另一页面的错误处理网页,取值true/false,默认值false--%>
<%@ page errorPage="页面URL"%><%--指定当前网页的出错处理网页的URL,默认可忽略--%>
<%@ page contentType="text/html; charset=gb2312"%><%--指定JSP字符的编码和JSP页面响应的MIME类型,格式为"MIME类型;字符集类型,默认 值"text/html charset=ISO-8859-1"--%>
<%@ page extends="类名"%><%--使用自定义类指定要扩展的类,默认可忽略--%>
<%@ page import="类名"%>
<%--在程序中导入一个或多个类/包, 在同一页面,页面指令的属性只有import可以设置多次,JSP默 认import属性的值已有:"java.lang.*","java.servlet.*","java.servlet.jsp*","java.servlet.http.*"--%>

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>

 

 

你可能感兴趣的:(javaweb基础系列之一)