jsp知识点汇总
2010-07-29 12:23
260 查看
jsp=html+java片段+jsp标签+javascript(css)->比较综合
jsp功能强大时因为可以与javabean结合使用(jsp做前台,javabean做后台)
jsp基本语法:
1.Jsp声明语句
它以<%!开始,以%>结束,其语法格式为:<%!声明语句%>。使用声明语句声明的变量为全局变量。用户共享此变量。
2.Jsp Scriptlets
它以<%开始,以%>结束,其语法格式为:<%Java代码%>。
3.Jsp表达式
它以<%=开始,以%>结束,其语法格式为:<%=Java代码%>。Jsp表达式中的代码会首先执行,然后转换成字符串并显示到网页。
4.Jsp注释
分为两类:一类为可以在客户端显示的注释(Html注释),一类为不能在客户端显示的注释(Jsp注释)。
Html注释使用<!--开始,以-->结束。能从查看源代码中看到。
Jsp注释使用<%--开始,以--%>结束。
jsp的脚本元素:
1.scriplet <%java代码%>
2.表达式 <%=java表达式%> <%=rs.getString(1)%>
3.declaration表达式
<%!变量声明%>
<%!函数声明%>
jsp常用的动作元素:
1.<jsp:useBean>//创建一个javabean实例
2.<jsp:setProperty>//给一个javabean实例设置初始化
3.<jsp:param> //给一个jsp设置参数,常常与<jsp:include>结合使用
<jsp:include file="info.jsp">
<jsp:param name="parameter1" value="parameterValue"/>
<jsp:param name="parameter2" value="parameterValue"/>
</jsp:include>
4.<jsp:getProperty>//取得一个javaBean实例的成员变量
5.<jsp:include>//引入其他文件
6.<jsp:plugin>//使用插件
7.<jsp:forward>//转发
8.<jsp:fallback>//
jsp的9大内置对象
1.out //向客户端输出数据,字节流
out.println("");
2.request //接收客户端的http请求
getParameter(String name);//name 表示表单的参数名
getParameterValues(String name);//使用得到是string[]
setAttribute(String name,Object obj);//设置名称是name的obj,值为obj
getAttribute(String name);//返回由name指定的属性值,如果不存在就返回null
getCookie();
3.response//封装jsp的产生的回应
addCookie(Cookie cookie);
sendRedirect("/welcome.jsp");
4.session //用于保存用户的信息,跟踪用户的行为
setAttribute(String name,Object obj);
getAttribute(String name);
5.application //多个用户共享该对象,可以做计数器
6.pageContext//代表jsp上下文
7.exception//代表运行时的一个异常
getMessage();
8.page//代表jsp这个实例本身
9.config //代表jsp对应得servlet的配置,可以得到web.xml中的参数
jsp页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。
转译阶段:JSP页面转换成Servlet类。
请求阶段:Servlet类执行,将响应结果发送到客户端。
运行过程详细介绍:
1.用户访问响应的JSP页面,如http://localhost:8080/Testjsp/HelloWorld.jsp
2.服务器找到相应的JSP页面。
3.服务器将JSP转译成Servlet的源代码(转译后的文件放在:Apache Software Foundation/Tomcat 6.0/work/Catalina/localhost/自己定义的文件夹/org/apache/jsp/)。
4.服务器将Servlet源代码编译为class文件。
5.服务器将class文件加载到内存并执行。
6.服务器将class文件执行后生成HTML代码发送给客户机,客户机浏览器根据响应的HTML代码进行显示。
jsp与servlet的关系:
1.jsp和servlet是对应关系。
2.jsp是以servlet为基础的。
1.如何接受jsp页提交的数据,并处理
2.jsp中如何使用java片段
3.jsp中如何使用javascript完成对数据合法性的校验.(在<head></head>中添加javascript代码)
例子:一个简单的计算器
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>我的计算器</h1>
<hr>
<head>
<!-- 在jsp中添加js代码,防止用户提交空 -->
<script language="javascript">
<!--
//建立一个函数,用于校验接受的数据是否合法
function checkNum(){
//判断num1是不是空
if(form1.num1.value==""){
window.alert("num1,不能为空!!!");
//返回false阻止发生
return false;
}
//判断num1,是不是一个数
if(Math.round(form1.num1.value)!=form1.num1.value){
window.alert("num1,不是一个数!!!");
return false;
}
//判断num2是不是空
if(form1.num2.value==""){
window.alert("num2,不能为空!!!");
//返回false阻止发生
return false;
}
//判断num1,是不是一个数
if(Math.round(form1.num2.value)!=form1.num2.value){
window.alert("num2,不是一个数!!!");
return false;
}
}
-->
</script>
</head>
<body>
<%
//接受第一个数
String s_num1=request.getParameter("num1");
//接收第二个数
String s_num2=request.getParameter("num2");
//接受运算符号
String flag=request.getParameter("flag");
int num1=0;
int num2=0;
int result=0;
//String->int
//为了防止异常的发生,此处要处理
if(s_num1!=null&&s_num2!=null&&flag!=null){
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
//计算
if(flag.equals("+")){
//加
result=num1+num2;
}else if(flag.equals("-")){
//减
result=num1-num2;
}else if(flag.equals("*")){
//乘
result=num1*num2;
}else{
//除
result=num1/num2;
}
}
%>
<form name="form1" action="jsq.jsp">
<!--
value用来让数据保留在方框中
maxlength="6"代表可以输入的数据的最大长度
size为输入框大小
-->
请输入第一个数:<input type="text" size="6" maxlength="6" name="num1" value="<%=num1%>"><br>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br>
请输入第二个数:<input type="text" size="6" maxlength="6" name="num2" value="<%=num2%>"><br>
<!-- onclick时调用函数checkNum() -->
<input type="submit" value="计算" onclick="return checkNum();">
</form><br>
<hr>
计算结果是<%=result%>
</body>
</html>
jsp功能强大时因为可以与javabean结合使用(jsp做前台,javabean做后台)
jsp基本语法:
1.Jsp声明语句
它以<%!开始,以%>结束,其语法格式为:<%!声明语句%>。使用声明语句声明的变量为全局变量。用户共享此变量。
2.Jsp Scriptlets
它以<%开始,以%>结束,其语法格式为:<%Java代码%>。
3.Jsp表达式
它以<%=开始,以%>结束,其语法格式为:<%=Java代码%>。Jsp表达式中的代码会首先执行,然后转换成字符串并显示到网页。
4.Jsp注释
分为两类:一类为可以在客户端显示的注释(Html注释),一类为不能在客户端显示的注释(Jsp注释)。
Html注释使用<!--开始,以-->结束。能从查看源代码中看到。
Jsp注释使用<%--开始,以--%>结束。
jsp的脚本元素:
1.scriplet <%java代码%>
2.表达式 <%=java表达式%> <%=rs.getString(1)%>
3.declaration表达式
<%!变量声明%>
<%!函数声明%>
jsp常用的动作元素:
1.<jsp:useBean>//创建一个javabean实例
2.<jsp:setProperty>//给一个javabean实例设置初始化
3.<jsp:param> //给一个jsp设置参数,常常与<jsp:include>结合使用
<jsp:include file="info.jsp">
<jsp:param name="parameter1" value="parameterValue"/>
<jsp:param name="parameter2" value="parameterValue"/>
</jsp:include>
4.<jsp:getProperty>//取得一个javaBean实例的成员变量
5.<jsp:include>//引入其他文件
6.<jsp:plugin>//使用插件
7.<jsp:forward>//转发
8.<jsp:fallback>//
jsp的9大内置对象
1.out //向客户端输出数据,字节流
out.println("");
2.request //接收客户端的http请求
getParameter(String name);//name 表示表单的参数名
getParameterValues(String name);//使用得到是string[]
setAttribute(String name,Object obj);//设置名称是name的obj,值为obj
getAttribute(String name);//返回由name指定的属性值,如果不存在就返回null
getCookie();
3.response//封装jsp的产生的回应
addCookie(Cookie cookie);
sendRedirect("/welcome.jsp");
4.session //用于保存用户的信息,跟踪用户的行为
setAttribute(String name,Object obj);
getAttribute(String name);
5.application //多个用户共享该对象,可以做计数器
6.pageContext//代表jsp上下文
7.exception//代表运行时的一个异常
getMessage();
8.page//代表jsp这个实例本身
9.config //代表jsp对应得servlet的配置,可以得到web.xml中的参数
jsp页面的执行分成两个阶段,一个是转译阶段,一个是请求阶段。
转译阶段:JSP页面转换成Servlet类。
请求阶段:Servlet类执行,将响应结果发送到客户端。
运行过程详细介绍:
1.用户访问响应的JSP页面,如http://localhost:8080/Testjsp/HelloWorld.jsp
2.服务器找到相应的JSP页面。
3.服务器将JSP转译成Servlet的源代码(转译后的文件放在:Apache Software Foundation/Tomcat 6.0/work/Catalina/localhost/自己定义的文件夹/org/apache/jsp/)。
4.服务器将Servlet源代码编译为class文件。
5.服务器将class文件加载到内存并执行。
6.服务器将class文件执行后生成HTML代码发送给客户机,客户机浏览器根据响应的HTML代码进行显示。
jsp与servlet的关系:
1.jsp和servlet是对应关系。
2.jsp是以servlet为基础的。
1.如何接受jsp页提交的数据,并处理
2.jsp中如何使用java片段
3.jsp中如何使用javascript完成对数据合法性的校验.(在<head></head>中添加javascript代码)
例子:一个简单的计算器
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<h1>我的计算器</h1>
<hr>
<head>
<!-- 在jsp中添加js代码,防止用户提交空 -->
<script language="javascript">
<!--
//建立一个函数,用于校验接受的数据是否合法
function checkNum(){
//判断num1是不是空
if(form1.num1.value==""){
window.alert("num1,不能为空!!!");
//返回false阻止发生
return false;
}
//判断num1,是不是一个数
if(Math.round(form1.num1.value)!=form1.num1.value){
window.alert("num1,不是一个数!!!");
return false;
}
//判断num2是不是空
if(form1.num2.value==""){
window.alert("num2,不能为空!!!");
//返回false阻止发生
return false;
}
//判断num1,是不是一个数
if(Math.round(form1.num2.value)!=form1.num2.value){
window.alert("num2,不是一个数!!!");
return false;
}
}
-->
</script>
</head>
<body>
<%
//接受第一个数
String s_num1=request.getParameter("num1");
//接收第二个数
String s_num2=request.getParameter("num2");
//接受运算符号
String flag=request.getParameter("flag");
int num1=0;
int num2=0;
int result=0;
//String->int
//为了防止异常的发生,此处要处理
if(s_num1!=null&&s_num2!=null&&flag!=null){
num1=Integer.parseInt(s_num1);
num2=Integer.parseInt(s_num2);
//计算
if(flag.equals("+")){
//加
result=num1+num2;
}else if(flag.equals("-")){
//减
result=num1-num2;
}else if(flag.equals("*")){
//乘
result=num1*num2;
}else{
//除
result=num1/num2;
}
}
%>
<form name="form1" action="jsq.jsp">
<!--
value用来让数据保留在方框中
maxlength="6"代表可以输入的数据的最大长度
size为输入框大小
-->
请输入第一个数:<input type="text" size="6" maxlength="6" name="num1" value="<%=num1%>"><br>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br>
请输入第二个数:<input type="text" size="6" maxlength="6" name="num2" value="<%=num2%>"><br>
<!-- onclick时调用函数checkNum() -->
<input type="submit" value="计算" onclick="return checkNum();">
</form><br>
<hr>
计算结果是<%=result%>
</body>
</html>