一、注释
显式注释
<!---->即显式注释。此注释内容会发送到客户端
隐式注释
java注释,不在客户端显示
comm.jsp
jsp可使用三种注释:1、html注释,内容会被发送到客户端 2、java 注释3、jsp注释
二、jsp语法简介
1、声明语句
<%!%>表示声明全局变量、类、方法。全局变量实例化一次。在此处声明类和方法,实际使用中很少,但是声明全局变量常见
2、表达式
<%=输出值%>***没有;类似于out.println();
使用是尽量不用out.println()输出尽量使用<%=%>输出,达到html与java代码的分离
3、脚本代码
<%int i =0;%>***单行
<%out.println("Hello World!!");%>
在其中声明的是局部变量
××demo01.jsp
××打印9×9表格printTable01.jsp,printTable02.jsp
1)使用out.println()
HTML代码和java代码过于紧密
2)使用<%=%>打印
程序中包含过多的Scriptlet,开发中强烈建议使用表达式输出代替out.println输出
××接受客户参数的演示
(resparam.jsp,resparam.html)
使用request.getParameter("参数名称")接受参数,返回String
getParameter()定义
public String getParameter(String)
××用户输入表格行数列数,服务器根据输入内容,进行表格打印(printTable03.jsp)
String变int
int intParam=Integer.parseInt(str)
本例中可能出现数值错误,可以用try...catch(Exception e) {}抓到错误,注意在try中变量需要初始化
错误500,服务器端程序错误。
4、关于form提交方式的讨论
get:提交内容被显示
地址栏中的长度只有4~5k,如果传递大数据,则无法使用
post:提交内容不被显示
没有长度要求,使用post方式比较常见
三、page指令
1、设定页面MIME类型
页面中出现乱码的原因:没有为jsp页面制定编码。
加入指令头
<%@ page contentType="text/html; charset=gb2312"%>
2、导入包
<%@ page import=""%>
<%@ page import="name1,name2,..."%>
注意:dt.jar;tools.jar检查环境变量有没有设置好
3、jsp出错处理,指定出错页
4、session管理
5、缓冲设置
四、include指令
实现一个网站,整个web站点都需要菜单,页眉,页脚等,使用include包含此类代码
包含语句
1、<%@ include file=" "%>可以包含任意文件*.txt,*.html,*.jsp,将所以内容包含进去
注意:include语句可以包含任意语句,但是只能有一组<html>等标签,在开发中被包含的文件,只写显示部分的html代码,主题代码不显示。包含时不区分文件名称后缀,只包含内容
2、<jsp:include page="uri">
<jsp:include page="uri" flush="true"/>或
<jsp:include page="url" flush="true">
<jsp:param name=参数名称 value=值>
</jsp:include>
建议使用包含语句2,标签指令形式。所有标签指令(<jsp:param name=xx value=xx/>)有完结。
jsp:include语句可以向被包含页面中传递参数,如果传递参数,则被包含页面必须是jsp页面(动态的)
jsp中接收语句参数的方法request.getParameter().
被包含页面是jsp,自动进行动态处理
被包含页面是非动态文件,则直接包含内容
3、两者区别
@include只是把页面内容静态包含,如果被包含页面有jsp代码,则执行此代码,而不管被包含的页面文件后缀如果。执行时,先把所有内容包含进来处理完再把内容发送给客户端
jsp:include如果被包含文件是静态的,则直接包含内容,但是不处理,如果被包含页面是动态的,则先执行,再把结果包含被显示。执行时,静态资源与@include相同,资源 为动态,则各自处理资源,再包含进去
注意先包含后处理和先处理再包含的区别
五、跳转语句
<jsp:forward page="uri"/>或
<jsp:forward page="uri">
<jsp:param name=" " value=" "/>
</jsp:farword>
forword语句属于无条件跳转语句
标签指令形式代码,必须在scriptlet代码之外
可以使用表达式输出传递参数
使用此语句,页面地址没有变化,用户请求是没有任何改变的,是服务器端跳转