韩顺平 j2ee视频实战教程jsp第1讲 课件 笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java ee ; j2ee视频教程- jsp第1讲
作者: 韩顺平
(一)jsp第1讲
1 java EE核心十三种技术介绍
2 java EE程序员修炼成精的法门(卖油翁的故事)
3 jsp版本的用户管理系统演示
4 jsp的概述(基本语法)
5 jsp的运行原理(还是hello.jsp)
6 jsp版的计算器
6.1 jsp中如何使用js(javascript)和css技术..
(二)java EE核心十三种技术介绍
Java ee是一个开发的平台,它包括的技术很多,主要包括十三种技术.
在开发时选择地进行使用,并不是要把所有的技术就去找工作。

只会几种技术就可以从事javaee的开发,正好比如说中国的十八般武艺,最好是什么都会~
基础是java servlet jsp !!!
基础要像大象一样扎实!不要想水中芦苇,没有跟!
(三)java EE程序员修炼成精
十三种技术规范:
1、Jdbc
2、java命名与目录接口(jndi)很少用了
3、企业java Bean (Enterprise Java Bean EJB 3.0 以前的版本也要回!因为之前的开发用之前的版本,现在要维护!)
4、jsp(本课程讲)
5、servlet (之前讲过了)
6、corba(很少用,但日本人喜欢用!)
7、java的事物体系(JTA)/java事务服务(JTS)现在很少用
8、javaMail(要回)和javaBeans激活架构(JAF )
9、java信使服务(JMS)短信那边用
10扩展标记语言(XML很重要!相当有用)
11、Struts + hibernate + Spring (SSH)很重要!
卖油翁的故事:我亦无他唯手熟尔!
原文:
陈康肃公尧咨善射,当世无双,公亦以此自矜。

尝射于家圃,有卖油翁释担而立,睨之,久而不去。

见其发矢十中八九,但微颔之。

康肃问曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“无他,但手熟尔。

”康肃忿然曰:“尔安敢轻吾射!”翁曰:“以我酌油知之。

”乃取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自钱孔入,而钱不湿。

因曰:“我亦无他,惟手熟尔。

”康肃笑而遣之。

此与庄生所谓解牛斫轮者何异?
熟能生巧!
(四)jsp版本的用户管理系统演示
学ASP比学JSP容易,因为ASP入门容易~
只是用jsp技术。

在学习jsp技术过程中,为了让大家能够迅速的入门,我们将servlet版本的用户管理系统---------- > 改为jsp版本的用户管理系统,在这个系统中,我们只使用jsp技术来完成(model1模式【什么事模式呢~:
鲁智深(打架乱打)
林冲(打架有套路,所以要学习套路,套路就是模式,)以前编程没有套路就乱打,我们不能乱打要有套路。

MVC :模型(Model),视图(View)和控制Controller)】开发)。

并且在后面可以通过jsp版的用户管理系统的改写,可以非常自然的过渡到mv设计模式,更进一步过渡到mvc设计模式。

开发工具将使用:eclipse+myeclispe
(五)jsp的概述(1)
为什么会出现jsp技术?
Servlet出现得早,servlet很轻大,但是servlet又一个致命的缺点:用servlet做界面十分吃力。

html代码是嵌入到println中打出来的。

Sun推出了jsp。

jsp做界面比servlet好做多了~
Jsp出现不是对servlet的否定而是对servlet的补充,jsp做界面好多了~
Servlet是jsp技术的基础jsp是在servlet的基础上发展出来的。

jsp就是servlet但是servlet 的基础上改进的。

jsp 程序员在开发过程中,发现servlet做界面非常不好-一个公式: jsp=html+java片段+jsp标签(语法)+javascript(css)->比较综合jsp功能的强大是因为可以与javabean结合使用(即:jsp作前台(界面),javabean作后台(逻辑层))
jsp+javabean的基础上再结合servlet,就会构成mvc的开发模式. Mv c模式是目前软件公司中相当通用的开发模式,这个我们在后面将作为一个重点给大家详细的讲解。

(六) jsp的概述(2)--jsp的基本语法
(1) 指令元素--用于从jsp发送一个信息到容器,比如设置全局变量,文字编码,引入包等
1.page指令<%@ page contentType="text/html;charset=gb2312"%>
2.include指令<%@ include file="filename"%>
3.taglib指令--这个指令允许在jsp页面使用自定义的标签<myTag:yourTag num1="123">
(七) jsp的概述(3)--jsp的基本语法
(2) 脚本元素--在一定程度上可以理解就是java的片段scriplet
1. scriplet <% java代码%>
2. 表达式<%=java表达式%> <%=rs.getString(1)%>
3. declaration 声明
<%! 变量声明%>比如:<%! int count=10%>
<%! 函数声明%>
<%! int jisuan(int num){
int result=0;
for(int i=0;i<num;i++){
result=result+i;
}
}
%>
(八)jsp的概述(4)--jsp的基本语法
(3)动作元素--动作元素是使用xml语法写的,是jsp规定的一系列标准动作,
在容器处理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的概述(5)--jsp的九大内置对象【是jsp的核心,必须掌握!】
(1) out //向客户端输出数据,字节流
out.println("");
(2) request serlvet中的HttpServletRequest //接受客户端的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运行原理示意图
url:统一资源定位
实例就是类对象。

jsp的运行原理
这个原理必须记住很重要的:::如果是第一次访问,jsp文件被服务器翻译成对应的java文件(servlet)然后在被编译成。

Class文件并加载到内存中。

所以第一次访问速度比较慢,但是第二次访问时速度就会很快了
(十一)jsp的运行原理
我们常说,jsp技术是基于servlet的,为什么这样讲,我们通过一个jsp的小案例来说明:
写一个hello.jsp ,该hello.jsp完成的任务非常简单:就是一个当访问该jsp文件的时候,在浏览器中显示hello,世界你好!该案例主要用于讲解jsp的运行原理
jsp与servlet的关系:Jsp和serlvet是对应关系Jsp是以servlet为基础的
见图(一个简单的示意图
(十二)jsp版的计算器(1)
前面写的hello.jsp,主要是为了说明jsp的运行原理,非常的简单。

现在我们一起来完成一个稍微综合的案例---jsp版本的计算器,从而加深对jsp的认识,为下一步学习做准备。

先用两个页面来完该计算器: interface.jsp(界面) result.jsp(计算)
知识点:
1. 如何接收jsp页面提交的数据,并处理
2. jsp中如何使用java片段
3. jsp中如何使用javascript完成对数据合法性的校验
(十三)jsp版的计算器(2)
先前用两个页面来完该计算器: interface.jsp(界面) result.jsp(计算)现在,我们将两个页面合并成一个jsp页面,也就是计算和显示结果在interface.jsp全部完成!
知识点: 1. 进一步理解jsp.
2. 进一步理解request,response对象
简单的示意图
Hello.jsp
<!--声明我是一个jsp文件,并且支持中文-->
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<body>
<h1>jsp1</h1>
<%
//\<\%\%\>中写的就是java片段
int a =0 ;
int b = 9 ;
int c =a + b;
out.println("hello jsp!!" + c);
%>
</body>
</html>
myCal.jsp文件
<!-- 这是我的计算器的界面-->
<!-- 思考:如何控制num2不能为空同时也不能为字母!! -->
<!-- 思考:如何将myCal.jsp和myResult.jsp合并到一个页面!! -->
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<h1>我的计算器!</h1>
<head>
<!-- 在jsp中添加js代码,防止用户空提交-->
<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;
}
if(form1.num2.value=="")
{
window.alert("num2 不能为空!");
return false;
}
//判断num2是否是一个数.
if(Math.round(form1.num2.value) !=form1.num2.value)
{
window.alert("num2 不是一个数!!");
return false;
}
}
-->
</script>
</head>
<body>
<form name="form1" action="myResult.jsp" method="post">
<hr>
请输入第一个数:<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="checkNum()"> </form>
<hr>
</body>
</html>
myResult.jsp
<!-- 得到数据并计算,还要显示! -->
<%@ page contentType="text/html;charset=gb2312" %>
<html>
<body>
<%
//接受第一个,类似于servlet中的HttpServletRequest
String num1= request.getParameter("num1");
//接受第二个
String num2= request.getParameter("num2");
//接受运算符
String oper =request.getParameter("flag");
//计算
int numi1=Integer.parseInt(num1);
int numi2=Integer.parseInt(num2);
int res=0;
if (oper.equals("+"))
{
res =numi1+numi2;
}
else if (oper.equals("-"))
{
res =numi1-numi2;
}
else if (oper.equals("*"))
{
res =numi1*numi2;
}
else if (oper.equals("/"))
{
res =numi1/numi2;
}
//输出结果
out.println("结果是:" + res);
%>
</body>
</html>。

相关文档
最新文档