JSP所有知识点详细整理百科全书MLDN.docx
- 文档编号:10526797
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:50
- 大小:33.57KB
JSP所有知识点详细整理百科全书MLDN.docx
《JSP所有知识点详细整理百科全书MLDN.docx》由会员分享,可在线阅读,更多相关《JSP所有知识点详细整理百科全书MLDN.docx(50页珍藏版)》请在冰豆网上搜索。
JSP所有知识点详细整理百科全书MLDN
JSP
JSP基础语法
1.注释及Scriptlet
1、注释
(1)显示注释:
客户端可以看见
--注释内容-->
(2)隐式注释:
客户端无法看见
格式一:
//单行注释
格式二:
/**/单行或多行注释
格式三:
<%--注释内容--%>JSP注释
2、JSP程序执行时要有WEB容器的支持,必须启动Tomcat之后通过浏览器访问Tomcat,并执行程序。
3、Scriptlet:
(脚本小程序)所有嵌入在HTML代码中的Java程序都必须使用Scriptlet标记出来。
4、JSP中的三种Scritplet代码:
(1)<%%>:
定义局部变量、语句。
(2)<%!
%>:
定义全局变量、方法、类。
(多用于定义全局变量)
(3)<%=%>:
输出一个变量或一个具体内容。
例:
<%
Stringinfo="www.MLDNJAVA.cn";//局部变量
inttemp=30;
%>
info=<%=info%>
temp=<%=temp%>
name=<%="LiXingHua"%>
5、out.println输出的问题是HTML代码和Java代码混合在一起;并且生成的代码没有缩进。
实际开发中应该使用表达式输出方式。
6、例子:
通过交互性在页面中输出一个表格
(1)print_table.htm
(2)print_table.jsp
<%
introws=0;
intcols=0;
try{//异常处理
rows=Integer.parseInt(request.getParameter("row"));
cols=Integer.parseInt(request.getParameter("col"));
}catch(Exceptione){}
%>
<%
for(intx=0;x %> <% for(inty=0;y %> <% } %>
<%
}
%>
7、scriptlet标签(使用较少)
scriptlet> Java的scriptlet代码
scriptlet>
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="text/html;charset=GBK"%>
通过设置MIME类型还可将页面作为word文件输出:
<%@pagelanguage="java"contentType="application/msword;charset=GBK"%>
自己指定文件名称:
<%
response.setHeader("Content-Disposition","attachement;filename=mldn.doc");
%>
4、设置文件编码
<%@pagelanguage="java"contentType="text/html"pageEncoding="GBK"%>
如果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文件来集中处理服务器跳转问题:
配置完成后,服务器需要重新启动。
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',2500);
Mysql数据库连接时需要额外的驱动程序,要将驱动程序拷贝到TOMCAT安装目录中的lib文件夹中去,服务器需要重新启动。
Lit_emp.jsp
<%@pagecontentType="text/html"pageEncoding="GBK"%>
<%@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();
%>
<%
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);
%>
<%
}
%>
<%
}catch(Exceptione){
System.out.println(e);
}finally{
rs.close();
pstmt.close();
conn.close();//如果直接关闭连接也可以
}
%>
3.包指令
1、包含操作可以将一些重复的代码包含进来继续使用。
2、静态包含:
<%@includefile="要包含的文件路径"%>
静态包含就是将内容进行了直接的替换。
静态包含操作
<%@includefile="info.htm"%>
<%@includefile="info.jsp"%>
<%@includefile="info.inc"%>
3、动态包含:
动态包含语句可以自动区分被包含的页面是静态还是动态
(1)不传递参数
includepage="{要包含的文件路径|<%=表达式%>}"flush="true|false"/> (2)传递参数 includepage="{要包含的文件路径|<%=表达式%>}"flush="true|false"/> paramname="参数名称"value="参数内容"/> ...可以向被包含页面中传递多个参数 include> includepage="info.htm"/> includepage="info.jsp"/> includepage="info.inc"/> 4、以<>形式出现的JSP代码称为标签指令,所有的标签指令必须完结。 receive_param.jsp <%@pagecontentType="text/html"pageEncoding="GBK"%> <%=request.getParameter("name")%> <%=request.getParameter("info")%> 此时,接收的是从标签中传递过来的参数,可以根据自己需要传递任意多个参数。 include_deomo03.jsp <%@pagecontentType="text/html"pageEncoding="GBK"%>动态包含操作
参数一:
参数二:
动态包含操作
<%
Stringusername="LiXingHua";//变量
%>
includepage="receive_param.jsp"> paramname="name"value="<%=username%>"/>//通过表达式传递变量 paramname="info"value=""/> include> 5、选择哪种包含: include.jsp <% intx=10; %> (1)静态包含(定义一个与包含文件中相同的变量) <%@pagecontentType="text/html"pageEncoding="GBK"%>include.jsp--<%=x%>
<%
intx=100;//变量重复
%>
include_demo04.jsp--<%=x%>
<%@includefile="include.jsp"%>
程序运行时出现500的HTTP状态码,属于服务器错误,x被重复定义了。
静态包含采用先包含后处理的形式。
(2)动态包含
<%@pagecontentType="text/html"pageEncoding="GBK"%>
<%
intx=100;//变量重复
%>
include_demo04.jsp--<%=x%>
includepage="include.jsp"/> 程序运行没有错误,动态包含如果包含的是动态页面,采用先处理后包含的形式 4.跳转指令 1、语法: (1)不传递参数 forwardpage="要包含的文件路径|<%=表达式%>"/> (2)传递参数 forwardpage="要包含的文件路径|<%=表达式%>"/> paramname="参数名称"value="参数内容"/> ...可以向被包含页面中传递多个参数 forward> 2、例子: forward_demo02.jsp为跳转后的页面 <%@pagecontentType="text/html"pageEncoding="GBK"%> <%=request.getParameter("name")%>这是跳转之后的页面
参数一:
参数二:
<%=request.getParameter("info")%>
forward_demo01.jsp发生跳转的页面
<%
Stringusername="LiXingHua";
%>
forwardpage="forward_demo02.jsp"> paramname="name"value="<%=username%>"/> paramname="info"value=""/> forward> 3、跳转操作属于服务器端跳转,跳转之后的页面路径不改变。 5.实例操作--用户登录实现 1、用户登录的操作保存在数据表中,用户输入用户名和密码进行验证,正确,登录成功,否则,登录失败。 2、数据库创建脚本.sql /*===================使用MLDN数据库=======================*/ USEmldn; /*===================删除user数据表=======================*/ DROPTABLEIFEXISTSuser; /*===================创建user数据表=======================*/ CREATETABLEuser( useridVARCHAR(30)PRIMARYKEY, nameVARCHAR(30)NOTNULL, passwordVARCHAR(32)NOTNULL ); /*=======================插入测试数据=======================*/ INSERTINTOuser(userid,name,password)VALUES('admin','administrator','admin'); 3、需要的JSP页面 No. 页面名称 描述 1 login.jsp 提供用户登录表单,可以输入用户id和密码 2 login_check.jsp 登录检查页,根据表单提交过来的id和密码进行数据库验证,成功则跳转到登录成功页,否则跳转到登录失败页 3 login_success.jsp 登录成功页,显示欢迎信息 4 login_failure.jsp 登录失败页,显示用户输入错误,并提供重新登录的超链接 (1)login.jsp <%@pagecontentType="text/html"pageEncoding="GBK"%>
登陆操作
用户登陆
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 所有 知识点 详细 整理 百科全书 MLDN
copyright@ 2008-2022 冰点文档网站版权所有
经营许可证编号:鄂ICP备2022015515号-1