您的位置:首页 > Web前端 > JavaScript

jsp学习笔记1——jsp概述

2010-11-23 04:21 459 查看
jsp第一讲
JAVA EE必备基础:java servlet jsp
ssh——>struts+hibernate+spring(ssh)

(一)java EE核心十三种技术介绍
1.JAVA数据库连接
(1)JDBC-ODBC桥
(2)JDBC-native驱动桥
(3)JDBC-network桥
(4)纯java驱动
2.java命名和目录接口(JNDI)
3.企业javaBeans(EJB)
4.JavaServer Pages(JSPs)
5.JavaServlets
6.Java IDL/CORBA
7.Java 事务体系(JTA)/Java事务服务(JTS)
8.JavaMail和JavaBeans激活框架(JavaBeans Activation Framework,JAF)
9.Java信使服务(JMS)
10.扩展标记语言(Extensible Markup language,XML)
···

(二)java EE程序员修炼成精的法门
《卖油翁——欧阳修》——>"我亦无他,唯手熟尔"

(三)jsp版本的用户管理系统演示
开发工具:myeclipse
开发流程:model1——>mv——>mvc

(四)jsp概述(基本语法)
1.出现原因:servlet做界面不好(jsp作为servlet的补充)
2.jsp=html+java片段+jsp标签+javascript(css)
3.强大功能——>jsp结合javaBean(jsp做前台,javaBean做后台)
4.mvc开发模式——>javaBean+jsp+servlet

5.基本语法
(1)指令元素——用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包等
a page指令
<%@page contentType="text/html;charset=gbk"%>
b include指令
<%@include file="filename"%>
c taglib指令
这个指令允许在jsp页面运行自定义的标签
(2)脚本元素——可以理解为java片段(script)
a script <%java代码%>
b 表达式 <%=java表达式%> <%=rs.getString(1)%>
c declaration声明
1.<%声明变量%> 如:<%!int count=10%>
2.<%!函数声明%>
<%! int jisuan(int num){
int result=0;
for(int i=0;i<num;i++){
result=result=i;
}
}
%>
(3)动作元素——用xml语法写
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>
<myTag:yourTag num1="123">

(4)jsp的九大内置对象(核心)
1.out //想客户端输出数据,字节流 out.println("");
2.request //接受客户端的http请求<-->servlet的HttpServletRequest
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 //代表对应的servlet的配置可以得到web.xml中的参数

(五)jsp的运行原理
1.jsp与servlet是对应关系
2.jsp是以servlet为基础的
3.访问jsp过程:
如果是第一次访问jsp文件,其被服务器翻译成一个对应的java文件(servlet,放在tomcat/work/Catalina下),然后,再被编译成class文件并加载到内存中。
如果是以后访问jsp,那就直接调用内存中的jsp实例,所以,第一次访问jsp慢,后面访问jsp的速度变快
例子:
<!--page:声明我是一个jsp文件,并且支持中文-->
<%@page contentType="text/html;charset=gbk"%>
<html>
<body>
<h1>jsp1</h1>
<%
int a=1;
int b=1;
int c=a+b;
out.println("hello,world,世界"+c);//java片段
%>
</body>
</html>
最要紧的是jsp不用reload,刷新即可

(六)jsp版的计算器
1.界面:myCal.jsp(计算器界面)

<!--这是计算器的界面-->
<!--如何控制num2不能为空,同时不能是字符串;如何将myCal.jsp和myResult.jsp合二为一-->
<!-- 思考题:-->
<%@page contentType="text/html;charset=gbk" %>
<html>
<head>
<!-- 在jsp中添加js代码,防止用户空提交 -->
<mce:script language="javascript"><!--

//写一个函数验证用户是不是空提交
function checkNum(){
//判断num1是不是空的
if(form1.num1.value==""){
window.alert("num1不能为空");
return false;//使表单放弃提交
}
//判断num1是不是一个数字
if(Math.round(form1.num1.value)!=form1.num1.value){
window.alert("num1不是一个数字");
return false;
}
}

// --></mce:script>
</head>
<body>
<h1>我的计算器</h1>
<hr>
<form name="form1" action="myResult.jsp">
请输入第一个数:<input type="text" name="num1"><br>
<select name="flag">
<option value=+>+</option>
<option value=->-</option>
<option value=*>*</option>
<option value=/>/</option>
</select><br>
请输入第二个数:<input type="text" name="num2"><br>
<input type="submit" value="计算" onclick="return checkNum();">
</form>

<hr>
</body>
</html>

2.计算:myResult.jsp(接收数据并显示结果)

<!--得到数据并计算,还要显示出来-->
<%@page contentType="text/html;charset=gbk"%>
<html>
<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;
//java中String--->int
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;
}

//输出结果
out.println("结果是:"+result);

%>
</body>
</html>

3.知识点:
(1)如何接收jsp页面提交的数据,并处理
(2)jsp中如何使用java片段
(3)jsp中如何使用javascript完成对数据合法性的校验
4.总结
(1)若报错,请找root cause的***_jsp.java

(2)jsp原理图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: