jsp入门教程(推荐)
更新时间:2023-11-05 21:45:01 阅读量: 教育文库 文档下载
- jsp基础入门教程推荐度:
- 相关推荐
序言
序言
作者说
1. 想用jsp做网站的朋友看过来
亲爱的朋友,你们好吗?如果你想用jsp做网站,小程序,或者其他什么东西,那么你算是找对地方了。我们这份教程正好是介绍这些的。 考虑到朋友们的基础不同,我们在每章之前都加上几条问题,如果你觉得这些问题驾轻就熟,就可以直接跳到下一章了,如果感觉很模糊,甚至不了解,那么一定要仔细阅读。 现在就开始吧,希望大家旅途愉快。
2. 预备知识
为了学好jsp,我们至少需要下面这些东西。
1. 会用电脑,会用浏览器,知道怎么用浏览器看网页,然后在网页上乱点。
很遗憾,这些东西不属于我们的教授范围,如果连这些都搞不定,还是另请高明吧。
2. HTML呀,一点儿点儿的CSS,一点儿点儿的javascript。
这些呢,有一些是美工的工作,有一些是程序员的工作。在使用jsp的时候一定会接触到这些东西,这样我们就必须在介绍jsp的时候顺便提几句,但不会深究,够用就好咯。
如果希望在这些技术上深造,就需要去找专门介绍它们的书了,不过即使不去看,我们也会尽量保证解释清楚本文中涉及到的部分。
3. jsp必须用到java,你必须会安装java的编程环境,你还需要自己搭建一个服务器,这样才能运行你写的jsp。
这些对与没接触过java的朋友就太难了,所以我们会以图文并茂的方式,手把手教没用过java的朋友配置起整个开发环境来。已经掌握java的朋友可以直接跳过。
4. 正式开始jsp之前,我们还需要了解jsp赖以生存的协议http。 只有明白http以及浏览器,服务器之间的关系才有可能正确理解jsp,才不会在以后的开发过程中发生混淆。这部分虽然是纯理论部分,但是十分重要,在不确定自己能掌握之前,请详细阅读。 5. 我们要掌握jsp的基本运用知识,知道怎么用和为什么这样用,慢慢的通过一些由浅入深的例子来掌握它们,
6. 随着学习的深入,我们将要把视线从单纯的jsp展开到整个java开发社区,用一些开源工具包来实现更多的功能。甚至,我们会背叛jsp,制作完全不使用jsp的网站。
这些额外的讨论只是为了扩展我们的视野,开拓我们的思路,并不会把抛弃jsp当作主题。
有了这些,已经足够完成我们的学习计划,现在我们终于可以开始了。
3. java环境配置
如果你满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章:第 1 章 开始编写jsp。
1. 没用过java,没配置过java环境的朋友。
2. 用过java,但没有使用过类似tomcat服务器的朋友。 按照我们的直接感官认识,如果我们要写jsp,就需要一个支持jsp的程序来运行它,我们在这里选用的是tomcat,而tomcat需要安装java开发环境。反过来就是我们准备的顺序,先是java然后tomcat。
3.1. 安装jdk
jdk是Java Development toolkit(Java开发工具包),我们需要的就是下载,安装,进行需要的配置。 本教程支持版本号:JDK 6 Update 5
下载JDK 6 Update 5。网
址 http://java.sun.com/javase/downloads/index.jsp。 选择右侧的download。
选择accept接受sun的下载协议。
接受协议后,就可以选择71.39M的下载包,进行下载。
下载完毕,得到jdk-6u5-windows-i586-p.exe。
双击jdk-6u5-windows-i586-p.exe进行安装,默认的安装路径是:C:\\Program Files\\Java\\jdk1.6.0_05\\。
安装完成后,C:\\Program Files\\Java\\jdk1.6.0_05\\目录结构如下。
请确认安装了jdk,并配置了对应的JAVA_HOME环境变量。 双击运行bin目录下的startup.bat
看到:“server startup in 4062 ms”,说明tomcat启动成功。
关闭tomcat,可以直接关闭cmd窗口,或使用shutdown.bat
到此为止,准备工作都已结束,我们可以在tomcat下编写jsp了。
跟姐姐学jsp
第 1 章 开始编写jsp
上一页
下一页
起始页
第 1 章 开始编写jsp
第 1 章 开始编写jsp
注意
因为本章包含了对http部分原理的介绍,建议读者不要略过这部分。
如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章:第 2 章 让jsp说hello。
1. 了解jsp的基本组成,可以编写简单的jsp。
2. 了解tomcat下jsp的放置位置,以及如何访问对应路径下的jsp。 3. 了解http基本原理,以及jsp在http下是如何发挥效用的。
1.1. 开篇第一个jsp
JSP是Java Server Page的缩写,现在先让我们编写一个简单的jsp页面,看看jsp究竟能干什么?
<%=new java.util.Date()%> 随便找一个文本编辑器来编写第一个jsp吧,如果实在没有顺手的编辑器,那么也可以用windows自带的记事本,新建一个test.jsp文件,把上面的代码复制到文件里,保存即可。
如果嫌麻烦,也可以直接使用文档附带的演示代码,位置在lingo-sample/01-01/test.jsp。
注意
对于第一次用记事本写代码的朋友,有一点需要特别注意,默认情况下windows不会显示扩展名,如果直接在记事本里将文件名改为test.jsp,那么另存的文件名会变成test.jsp.txt,记事本会自作聪明的为你加
上.txt的扩展名,为了避免这种问题,需要在保存的时候,在文件名两端加上双引号,就像这样\。
建议设置系统文件夹属性,把文件的扩展名显示出来,这样我们更容易看出是否在文件名上出现问题。如果找不到这个设置,请打开“我的电脑” -> 选择上方菜单里的“工具” -> 选择弹出菜单中的“文件夹选项” -> 选择第二个标签“查看”,在下边的配置里有一项“隐藏已知文件类型的扩展名”,将它前面的对勾取消,点击确定,就可以看到文件的全名了。
得到了我们的第一个jsp文件之后,让我们把它复制到
tomcat/webapp/ROOT目录下。现在检查一下tomcat是不是已经启动了,如果还没启动,需要先去启动tomcat,在看到tomcat正常启动的提示之后,就可以打开浏览器,输入网
址 http://localhost:8080/test.jsp查看执行效果。 页面上的显示应该与下面类似:
Fri Feb 29 00:54:20 CST 2008 看到了这些字样,也就说明我们写的第一个jsp已经成功执行了,现在咱们看到的并不是谁预先写好的文字,而是使用服务器实时计算出的当前时间,如果不信你可以多刷新几次页面,时间内容会不断改变,显示的永远是当前服务器的时间。
pageContext.setAttribute(\, 1); } else { pageContext.setAttribute(\, countPage + 1); } 这里先从pageContext中取出名为countPage的整数,因为返回的都是java.lang.Object类型,所以需要强制转换成我们需要的整形。这里取得的变量如果不存在就会返回null,通过判断countPage == null来辨别变量是否存在,如果不存在就设置为1,如果存在就进行累加,最后使用setAttribute()方法将修改后的变量值放入pageContext。 将其中的pageContext换成request, session, application就可以操作其他三个作用域中的变量。 在显示这些变量值的时候,我们没有写
<%=pageContext.getAttribute(\而是使用了
${countPage}的形式,这种${}的形式叫做el表达式,是jsp-2.0规范的一部分,tomcat里正好可以使用。 使用el有以下几个好处:
1. 代码量小,并且不需要使用尖括号。
2. 支持从pageContext, request, session, application中取值,它会自动检查四个作用域,不需要特别指定。
3. 如果变量不存在,会输出空字符串\,而不是null,省去了手工判断的工作。
4.2. 例子:在线列表
我们做一个新手级的在线用户列表,原理是这样:
1. 用户登录,并把登录使用的用户名保存到session中,通过session中是否存在用户名判断用户是否已登录。
session可以在整个会话过程中保存用户信息,不必每次刷新页面都重新登录。
2. 用户登录后,将用户名添加到application中的在线用户列表。 用户注销时,讲用户名从application中的在线列表删除。 只要服务器还在运行着,application就会保存所有登录用户的信息,所有用户都可以看到这个在线用户列表。 可以尝试一下lingo-sample/04-02/中的例子: 1. 进入登录页面,登陆一个用户。
2. 登录成功既看到已登录的用户名,和当前的在线用户列表。
3. 再登录一个用户.
4. 然后就可以看到在线用户列表增加了,可以看到里面包含上次登录的用户和当前登录的用户。
这时,如果第一个用户刷新页面,也会看到在线用户列表中变成两个人。
5. 现在任何一个用户点击注销,将返回登录页面。另一个用户刷新页面会发现在线用户列表减少了。
让我们从登录页面index.jsp开始,复习一下目前学到的知识。 index.jsp中显示的是用户登录表单,为了显示index.jsp中包含的中文,需要加上<%@ page contentType=\charset=gb2312\,这里使用的文件编码是默认的gb2312。
在这个form里我们可以输入一个username的值,提交的url是login.jsp,使用post方法是为了更简单的解决中文问题。在填写了用户名之后,点击登录按钮,将数据提交到login.jsp。
login.jsp中进行的是对用户名的操作,包括获得请求中的用户名,将用户名添加到session和在线用户列表中。
<%@ page import=\%> <% request.setCharacterEncoding(\); // 取得登录的用户名 String username = request.getParameter(\); // 把用户名保存进session session.setAttribute(\, username); // 把用户名放入在线列表 List onlineUserList = (List) application.getAttribute(\); // 第一次使用前,需要初始化 if (onlineUserList == null) { onlineUserList = new ArrayList(); application.setAttribute(\, onlineUserList); } onlineUserList.add(username); // 成功 response.sendRedirect(\); %> 中文编码设置和获得请求参数都已经熟识了。在获得在线用户列表时,先获得application中的onlineUserList,强制转换成List类型。如果onlineUserList并不存在,我们还需要先对它做初始化,并添加到application里。这时有一个小技巧,因为onlineUserList已经放在application中了,将username添加进去后,不必再使用setAttribute()也可以达到修改在下用户列表的效果。
因为此处用到的List和ArrayList都是定义在java.util包内的工具类,如果不希望写成全类名java.util.List, java.util.ArrayList的形式,就需要使用<%@ page import=\做声明,当然也可以写成<%@ page
正在阅读:
jsp入门教程(推荐)11-05
关于做自己的句子摘抄11-20
树立正确的恋爱观(演讲)09-01
淄博王府进广场营销推广策划案-89页-cjzlk - 图文05-05
新部编版七年级语文上册期末试卷及答案一04-07
人教版四年级数学上册《第八单元达标测试卷》(附答案)11-15
YAMAHA汽油发电机维修培训教材12-03
MODBUS协议简介08-26
博士毕业研究生-暨南大学研究生院11-08
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 入门教程
- 推荐
- jsp
- 国家税务总局公告关于一般纳税人销售自己使用过的固定资产增值税有关问题的公告2012年第1号(1)
- 物体的尺度及其测量导学案
- 华泰热控专业整套启动调试措施
- 法律文书简答题
- 2013-2014学年第一学期辽宁财贸学院视觉传达设计专业教研室工作总结
- 重庆一中2015-2016学年度秋期初二上11月月考数学试题卷 无答案
- 廉政党课讲稿-珍惜岗位 - 把握人生
- 财政学知识点整理 - 图文
- 国际贸易基础与实务课后习题答案
- 有机化学-醇酚醚
- 安徽省火灾高危单位消防安全评估办法 - 图文
- 净水器十大品牌 分析净水器什么牌子好 - 图文
- 常见的易错字1000例
- 2018-2024年中国冷链运输行业市场竞争现状报告(目录) - 图文
- 直述句改转述句基本改法(打印)
- 正确对待分工 自觉服从安排
- 2018节能减排年度工作计划与2018花店情人节活动策划书推荐汇编 doc
- 信号抽样及抽样定理 - 图文
- 四川省成都市高三生物模拟试题(二)
- 植物生理学模拟试题(四)