并成新的JSP 页面后,再由JSP引擎转译为java文件。即程序还没运行之前,就把文件包含进来。 <%@ include file=”文件名字” %>
Chap2/testInclude.jsp
Chap2/data.jsp
9
<%@ include file="user.jsp?user=mike" %>
切记: 不能按照上面方法传参数,因为是编译期间的指令,程序还没执行。 所以通常include指令用于包含非动态的文件。 6、动作(action)---运行期间执行的命令 Include 动作 该标签的作用是当前JSP页面动态包含一个文件,即将当前JSP页面、被包含的文件 各自独立转译和编译为字节码文件。当前JSP页面执行到该标签处时,才加载执行被包含文 件的字节码。 格式:
或
value=”变量值” />
param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子 标记来使用。 当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到 include动作标记要加载的文件中去, 被加载的JSP文件可以使用Tomcat服务器提供 的request内置对象获取include动作标记的param子标记中name属性所提供的值. Chap2/includeAction.html
Compute.jsp
10
Chap2/Multiple.jsp
11
作业三:homeworkInclueAction.html
forword 动作 指令作用:从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。 格式: 或 param子标记 Chap2/testForward.jsp
12
运行时,url地址栏:localhost:8080/JspDemo/chap2/testForward.jsp?n=john,则可输 出newname变量的值,否则为null url地址栏: localhost:8080/JspDemo/chap2/testForward.jsp?city=liaoning 也可以输出 city变量的值,因为testForward.jsp和Forward1.jsp两个页面使用的是同一个request
response.sendRedirect实例
13
输入: localhost:8080/JspDemo/chap2/testRedirect.jsp?name=mike&;no=123&;newname=rose&;city 显示:null null null null forward动作和response.sendRedirect的区别: 使用同一个request response.sendRedirect使用不同request 当输入localhost:8080/JspDemo/chap2/testForward.jsp时,地址栏显示不变 当输入localhost:8080/JspDemo/chap2/testRedirect.jsp时,地址栏显示 forward动作和response.sendRedirect的区别
14
第三章、 JSP内置对象 Request对象 Response对象 Session对象 Application对象 1、 request对象
功能:主要功能是服务器端通过request对象获得客户端的信息。 当客户访问服务器页面时,会提交一个HTTP请求。request对象就是对 HTTP请求包的封装。因此,使用request对象的方法,可以获取客户端和服务 器端信息。如客户端主机名、IP地址、传递参数名、参数值、服务器主机名和 IP地址等等。 常用方法:getParameter、getParameterValues、setCharacterEncoding (1) getParameter方法实例
15
当action请求的页面,如果是当前页面,可以用双引号""代替当前页面,双 引号中不能含有空格。
16
按上述代码执行程序会出现表单发送的数据如果是中文则会出现乱码。 解决方法: 第一种 String name=request.getParameter("uname"); byte b[]=name.getBytes("iso-8859-1");//name在 iso-8859-1编码下
的字节数组表示
name=new String(b,"utf-8");//将 name按 “utf-8”编码 解析 成字符串 上述代码可简写成: String name = new String(request.getParameter("uname").getBytes("ISO8859-1" ),"utf-8") ; 第二种 request.setCharacterEncoding("utf-8"); String name=request.getParameter("uname"); ****特别注意****: 如果 jsp 则上述两种方法中的 -8 ... . .文件采用的字符编码都为 ...........GBK(GB2312), .