JSP实践要点

本文探讨了使用JSP技术创建动态网站的过程和技术难题。介绍了JSP的基本概念、优势及如何通过JDBC连接数据库,同时涵盖了如何利用内建组件进行会话管理和权限控制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Internet众多网站中,基于Web数据库的动态网站应用相当广泛。基于Web网络数据库的动态网站由一个Web浏览器作为客户端界面,一个数据库服务器用做信息存储和一个连接两者的 Web应用服务器组成。原有开发动态网站的CGI技术,随着Web应用程序的客户端技术不断地发展,逐渐被Java Applet、ActiveX控件、DHTML和JavaScript所取代。这些技术极大地改善了用户界面,但当它们尝试做一些深入的工作时,开始遇到客户端浏览器不兼容、服务器负担过重、访问速度下降以及安全性等问题。JSP技术就是解决这些问题的一把金钥匙,本文主要讨论在使用JSP技术构建动态网站的过程中的一些技术问题。 

JSP技术 

JSP是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立先进、安全、快速和跨平台的动态网站。在传统的网页HTML文件中加入Java程序片段和JSP标记,就构成了JSP网页。Web服务器接收到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 E-mail 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求很低。如图1所示,在用户连接JSP网站时,用户请求网页,JSP页面独自响应请求,将用户对网页的请求转化为对数据的请求,通过JavaBean处理请求并将返回的数据封装成HTML页面返回给用户。

JSP有许多优势: 

1. 程序写一次,到处可以运行。JSP在设计时,充分考虑到应用平台的无关性。依赖于Java的可移植性,JSP得到目前许多流行操作平台的支持,可在Apache、NetScape、IIS等服务器上执行。 

2. 执行速度快。JSP页面只需编译一次转化为Java字节代码,其后一直驻留于服务器内存中,加快了对JSP页面的响应速度。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快得多。 

3. Java的优势。JSP技术是用Java语言作为脚本语言的。跨平台、成熟、健壮、易扩充的Java技术使得开发人员的工作在其他方面也变得容易和简单。在Windows系统被怀疑可能会崩溃时,Java能有效地防止系统崩溃。Java语言通过提供防止内存泄漏的方法,在内存管理方面大显身手。加之,JSP为应用程序提供了更为健壮的意外事件处理机制,充分发挥了Java的优势。 

JSP技术难点 

1. 连接数据库 

数据库连接对动态网站来说是最为重要的部分,在与后端数据库连接时可以采用ODBC或JDBC技术。虽然ODBC作为传统的连接数据库的手段是一种选择,但是ODBC有以下致命缺陷,从而使它无法胜任JSP的请求: 

(1) ODBC是C语言实现的API,从Java程序调用本地的C程序会带来一系列类似安全性、完整性、健壮性方面的问题。 

(2) 其次,完全精确地实现从C代码ODBC到Java API 翻译的ODBC不会令人满意,因为在Java中没有指针,而ODBC中大量地使用了指针,包括极易出错的空指针“void *”。 

(3) 考虑到平台移植性,在开发JSP程序中使用ODBC会带来负面影响,使得代码不适合于移植。 

为了使程序在具有安全性、完整性、健壮性的同时, 可以方便地移植,采用JDBC连接数据库更合适一些。JDBC是一种可用于执行SQL语句的Java API,它由一些Java语言写的类、界面组成,使开发人员可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC,可以很方便地将SQL语句传送到几乎任何一种数据库。也就是说,可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。 

在本地数据库程序使用Microsoft的Access等数据库时,可以使用Sun公司开发的JDBC-ODBC桥,借用此技术JSP程序就可以访问带有ODBC驱动程序的数据库。这样既保留JDBC的优点,又可以使用Microsoft提供的ODBC数据源与Access连接。不管对方是何种数据库,只要有ODBC接口就可以直接使用JDBC-ODBC桥与数据库连接,而无需因为后端数据库的改变而改动相应的程序代码,实现了应用层与数据库层的完美分离。如果需要变后端数据库为MySQL,只需在ODBC数据源中安装MySQL的驱动程序之后,就可以直接使用MySQL数据库了。 

2. 内建的组件 

在实现网站的时候,由于客观需要,为了方便区分本地局域网用户与远端连上来的用户,并提供相应的权限,可以采用内建的组件Request来捕获每一个连到服务器上的用户的IP地址,通过比较之后给出相应的权限。这样做到本局域网内用户可以使用网站内所有公开的和不对外公开的资源。还可以将现有的方法加以改进,将各种IP地址输入到数据库中并且赋予不同的IP地址不同的权限,以完整地控制用户使用网站资源。 

会话状态维持是Web应用开发者必须面对的问题。为了了解用户是否还在线,使用内建的Session组件,通过给每个登录用户一个Session变量,可以在用户非正常离开网站之后,关闭该用户使用的资源,达到节省内存,提高服务器性能的目的。 

在JSP中还提供了Cookie类,其构造器有两个参数,分别代表Cookie的名称和值。Cookie类中提供了各种方法设置Cookie的属性,如通过setMaxAge方法可以设置Cookie的生存时间。若生存时间为负值,代表浏览器关闭Cookie,即消失; 生存时间为0,代表删除Cookie; 生存时间为正数,代表Cookie存在多少秒。可以用Cookie临时保存用户的账号和口令,JSP可随时读取,验证用户的合法性。可以将用户的浏览状态保存在Cookie中,下次用户再访问网页时,由JSP向浏览器显示个性化页面。 

3. 转换Unicode编码 

在许多JSP页面的调试过程中都碰到过由于汉字编码与Unicode编码转换引起的问题,如在浏览器中看到的JSP页面中的汉字都是乱码、JSP页面无法正常显示汉字、JSP不能接收表单提交的汉字、JSP数据库读写无法获得正确的内容等等,这是因为现在大部分具有国际化特征的软件核心字符处理都是以Unicode为基础的,在软件运行时根据当时“Locale/Lang/Codepage”设置确定相应的本地字符编码设置,并依此处理本地字符,所以应该在处理过程中实现Unicode和本地字符集的相互转换,甚至以Unicode为中介的两个不同本地字符集的相互转换。这种方式在网络环境下被进一步延伸,任何网络两端的字符信息也需要根据字符集的设置转换成可接受的内容。 

由于IE默认字符集为GB2312,然而Windows默认为GBK,Java则默认为Unicode,所以如果不通过一定的转换,直接在GB2312字符集上显示从GBK或Unicode得到的页面将是一片乱码。Java 语言采用Unicode处理字符,但从另一个角度来说,在Java程序中也可以采用非Unicode,重要的是保证程序入口和出口的汉字信息不失真。如完全采用ISO-8859-1来处理汉字也能达到正确的结果,经过转换之后并将网页字符集强制设为GB2312字符集显示,就能够正常显示汉字了。 
本系统将要实现的功能 人力资源管理系统需要人力资源管理不受地域的限制,不受时间限制,只要人员能够上网,通过验证并登陆系统,便可以随时查看人力资源信息,进行人力资源信息数据的管理和更新。人力资源管理系统具有人员管理、招聘管理、培训管理、奖罚管理和薪金管理等功能。人力资源管理部门负责添加、修改、删除各类信息。领导和人力资源管理部门可以输入关键字查询档案信息、出勤信息、考核信息和薪水信息。职工可以查看个人出勤信息、考核信息和薪水信息。 功能需求 人员管理功能   主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改    招聘管理功能   主要包括应聘人员信息的详细查看、删除、添加以及信息入库。 培训管理功能   主要包括培训计划的详细信息、信息删除、添加培训计划和填写培训总结。    奖罚管理功能   要包括奖惩详细信息、删除详细信息、添加详细信息、修改详细信息。    薪金管理功能   主要包括薪金的修改、添加、删除。 目录 第一章 课程设计的目的与要求 2 1.1目的 2 1.2要求 3 第二章 课程设计项目的需求分析 4 一、 本系统将要实现的功能 4 二、 功能需求 4 三、 性能需求 5 四、系统流程图 6 第三章 课程设计中应用到的关键技能点 7 3.1 javabean的编写 7 第四章 系统的详细设计 9 4.1 界面设计(主界面) 9 4.2 管理员登陆界面 9 4.3 后台管理界面 11 4.5 企业留言板 13 4.6 企业的工作机会(招聘模块) 16 4.7 系统的部署级调试运行 17 第五章 数据库设计结构 19 (1)、educate(培训信息表) 19 (2)institution(奖惩表) 20 (3)job(应聘信息表) 21 (4)stipend(薪金表) 22 (5)ry(管理员表) 23 (6) yuangong员工信息表 24 (7)、留言板 25 (8)、公告表(gonggao) 25 第六章 总结 26 参考文献 27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值