JSP所有知识点详细整理百科全书MLDNWord文件下载.docx
《JSP所有知识点详细整理百科全书MLDNWord文件下载.docx》由会员分享,可在线阅读,更多相关《JSP所有知识点详细整理百科全书MLDNWord文件下载.docx(50页珍藏版)》请在冰点文库上搜索。
![JSP所有知识点详细整理百科全书MLDNWord文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/6186bdf4-f8c1-461e-bb5d-162d58e114d3/6186bdf4-f8c1-461e-bb5d-162d58e114d31.gif)
//局部变量
inttemp=30;
%>
h3>
info=<
%=info%>
/h3>
temp=<
%=temp%>
name=<
%="
LiXingHua"
5、out.println输出的问题是HTML代码和Java代码混合在一起;
并且生成的代码没有缩进。
实际开发中应该使用表达式输出方式。
6、例子:
通过交互性在页面中输出一个表格
(1)print_table.htm
html>
head>
title>
,MLDN高端Java培训<
/title>
/head>
body>
formaction="
print_table.jsp"
method="
post"
>
tableborder="
1"
width="
100%"
<
tr>
<
td>
请输入要显示表格的行数:
/td>
inputtype="
text"
name="
row"
/tr>
请输入要显示表格的列数:
col"
tdcolspan="
2"
<
submit"
value="
显示"
reset"
重置"
/table>
/form>
/body>
/html>
(2)print_table.jsp
introws=0;
intcols=0;
try{//异常处理
rows=Integer.parseInt(request.getParameter("
));
cols=Integer.parseInt(request.getParameter("
}catch(Exceptione){}
for(intx=0;
x<
rows;
x++){
for(inty=0;
y<
cols;
y++){
tdbgcolor="
#00CC33"
%=x*y%>
}
}
7、scriptlet标签(使用较少)
jsp:
scriptlet>
Java的scriptlet代码
/jsp:
2.Page指令
1、定义JSP页面的相关属性,包括设置MIME类型、定义需要导入的包、错误页的制定等。
2、语法:
%@page属性="
内容"
No.
指令属性
描述
1
contentType
定义JSP字符的编码和页面响应的MIME类型,如:
contentType="
text/html;
charset=GBK"
2
import
导入此JSP页面需要的操作包。
如:
import="
java.util"
3
pageEncoding
JSP页面的字符编码。
pageEncoding="
GBK"
3、设置MIME类型
%@pagelanguage="
java"
contentType="
通过设置MIME类型还可将页面作为word文件输出:
application/msword;
自己指定文件名称:
response.setHeader("
Content-Disposition"
"
attachement;
filename=mldn.doc"
);
4、设置文件编码
text/html"
pageEncoding="
如果JSP中pageEncoding存在,JSP的编码由pageEncoding决定,如果不存在则由charset决定,如果两者都不存在,则使用ISO8859-1编码。
如果一个JSP文件只需要按照text/html风格显示,则只需指定一个pageEncoding。
5、设置错误页
完成错误页操作需要满足一下两个条件:
(1)指定错误出现时的跳转页,通过errorPage属性指定
%@pageerrorPage="
error.jsp"
(2)错误处理页必须有明确的标识,通过isErrorPage属性指定
%@pageisErrorPage="
true"
正常情况下可以跳转,但有时候会出现无法跳转的情况,此时需要在要跳转到的页面中设置一个状态码。
response.setStatus(200);
服务器端跳转:
跳转后地址栏没有发生改变,但内容已经改变。
通过修改web.xml文件来集中处理服务器跳转问题:
error-page>
error-code>
500<
/error-code>
location>
/basic_page/error.jsp<
/location>
/error-page>
404<
exception-type>
java.lang.NullPointerException<
/exception-type>
配置完成后,服务器需要重新启动。
6、数据库的连接操作
动态web的特点:
可以进行数据库的连接。
Page指令中的import属性可以导入需要的包,page指令中只有import语句可以多次使用,其他属性只能设置一次。
通过JSP进行列表的输出:
(数据库创建脚本.sql)
/*=======================删除数据库=======================*/
DROPDATABASEIFEXISTSmldn;
/*=======================创建数据库=======================*/
CREATEDATABASEmldn;
/*=======================使用数据库=======================*/
USEmldn;
/*=======================删除数据表=======================*/
DROPTABLEIFEXISTSemp;
/*=======================创建数据表=======================*/
CREATETABLEemp(
empnoINT(4)PRIMARYKEY,
enameVARCHAR(10),
jobVARCHAR(9),
hiredateDATE,
salFLOAT(7,2)
/*=======================插入测试数据=======================*/
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(6060,'
李兴华'
'
经理'
2001-09-16'
2000.30);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(7369,'
董鸣楠'
销售'
2003-10-09'
1500.90);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(8964,'
李祺'
分析员'
2003-10-01'
3000);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(7698,'
张惠'
2005-03-12'
800);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(7782,'
杨军'
2005-01-12'
2500);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(7762,'
刘明'
2005-03-09'
1000);
INSERTINTOemp(empno,ename,job,hiredate,sal)VALUES(7839,'
王月'
2006-09-01'
Mysql数据库连接时需要额外的驱动程序,要将驱动程序拷贝到TOMCAT安装目录中的lib文件夹中去,服务器需要重新启动。
Lit_emp.jsp
%@pagecontentType="
%@pageimport="
java.sql.*"
publicstaticfinalStringDBDRIVER="
org.gjt.mm.mysql.Driver"
publicstaticfinalStringDBURL="
jdbc:
mysql:
//localhost:
3306/mldn"
publicstaticfinalStringDBUSER="
root"
publicstaticfinalStringDBPASS="
mysqladmin"
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
Stringsql="
SELECTempno,ename,job,sal,hiredateFROMemp"
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
center>
80%"
雇员编号<
雇员姓名<
雇员工作<
雇员工资<
雇佣日期<
while(rs.next()){
intempno=rs.getInt
(1);
Stringename=rs.getString
(2);
Stringjob=rs.getString(3);
floatsal=rs.getFloat(4);
java.util.Datedate=rs.getDate(5);
%=empno%>
%=ename%>
%=job%>
%=sal%>
%=date%>
/center>
}catch(Exceptione){
System.out.println(e);
}finally{
rs.close();
pstmt.close();
conn.close();
//如果直接关闭连接也可以
}
3.包指令
1、包含操作可以将一些重复的代码包含进来继续使用。
2、静态包含:
%@includefile="
要包含的文件路径"
静态包含就是将内容进行了直接的替换。
h1>
静态包含操作<
/h1>
%@includefile="
info.htm"
info.jsp"
info.inc"
3、动态包含:
动态包含语句可以自动区分被包含的页面是静态还是动态
(1)不传递参数
includepage="
{要包含的文件路径|<
%=表达式%>
}"
flush="
true|false"
/>
(2)传递参数
paramname="
参数名称"
value="
参数内容"
...可以向被包含页面中传递多个参数
include>
动态包含操作<
4、以<
形式出现的JSP代码称为标签指令,所有的标签指令必须完结。
receive_param.jsp
参数一:
%=request.getParameter("
name"
)%>
参数二:
info"
此时,接收的是从标签中传递过来的参数,可以根据自己需要传递任意多个参数。
include_deomo03.jsp
Stringusername="
//变量
receive_param.jsp"
paramname="
%=username%>
"
//通过表达式传递变量
5、选择哪种包含:
include.jsp
intx=10;
include.jsp--<
%=x%>
(1)静态包含(定义一个与包含文件中相同的变量)
intx=100;
//变量重复
include_demo04.jsp--<
%@includefile="
include.jsp"
程序运行时出现500的HTTP状态码,属于服务器错误,x被重复定义了。
静态包含采用先包含后处理的形式。
(2)动态包含
程序运行没有错误,动态包含如果包含的是动态页面,采用先处理后包含的形式
4.跳转指令
1、语法:
forwardpage="
要包含的文件路径|<
%=表达式%>
forward>
2、例子:
forward_demo02.jsp为跳转后的页面
这是跳转之后的页面<
h2>
/h2>
forward_demo01.jsp发生跳转的页面
Stringusername="
forwardpage="
forward_demo02.jsp"
3、跳转操作属于服务器端跳转,跳转之后的页面路径不改变。
5.实例操作--用户登录实现
1、用户登录的操作保存在数据表中,用户输入用户名和密码进行验证,正确,登录成功,否则,登录失败。
2、数据库创建脚本.sql
/*===================使用MLDN数据库=======================*/
/*===================删除user数据表=======================*/
DROPTABLEIFEXISTSuser;
/*===================创建user数据表=======================*/
CREATETABLEuser(
useridVARCHAR(30)PRIMARYKEY,
nameVARCHAR(30)NOTNULL,
passwordVARCHAR(32)NOTNULL
INSERTINTOuser(userid,name,password)VALUES('
admin'
administrator'
3、需要的JSP页面
页面名称
login.jsp
提供用户登录表单,可以输入用户id和密码
login_check.jsp
登录检查页,根据表单提交过来的id和密码进行数据库验证,成功则跳转到登录成功页,否则跳转到登录失败页
login_success.jsp
登录成功页,显示欢迎信息
4
login_failure.jsp
登录失败页,显示用户输入错误,并提供重新登录的超链接
(1)login.jsp
%@pagecontentType="
登陆操作<
hr>
login_check.jsp"
用户登陆
登陆ID:
id"
登陆密码:
password"