web程序设计jsp实验

2024-08-09

web程序设计jsp实验(精选4篇)

web程序设计jsp实验 篇1

总结解决JSP开发Web程序中文显示三种方法

方法一:最简单也是用的最多的方法 <%@ page language=“java” pageEncoding=“GBK” %>

或者<%@ page contenttype=“text/html;charset=gbk”;>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符。

这个方法用于jsp页面中的`中文显示。

方法二:使用过滤器

过滤器使用主要针对表单提交,插入数据库的数据都是?号。这也是应为tomcat不按request所指定的编码进行编码,还是自作主张的采用默认编码方式iso-8859-1编码。

编写一个SetCharacterEncodingFilter类。

importjava.io.IOException;

importjavax.servlet.Filter;

importjavax.servlet.FilterChain;

importjavax.servlet.FilterConfig;

importjavax.servlet.ServletException;

importjavax.servlet.ServletRequest;

importjavax.servlet.ServletResponse;

publicclassSetCharacterEncodingFilterimplementsFilter{

protectedStringencoding=null;

protectedFilterConfigfilterConfig=null;

protectedbooleanignore=true;

publicvoidinit(FilterConfigfilterConfig)throwsServletException{

this.filterConfig=filterConfig;

this.encoding=filterConfig.getInitParameter(“encoding”);

Stringvalue=filterConfig.getInitParameter(“ignore”);

if(value==null)

this.ignore=true;

elseif(value.equalsIgnoreCase(“true”))

this.ignore=true;

else

this.ignore=false;

}

publicvoiddoFilter(

ServletRequestrequest,ServletResponseresponse,FilterChainchain)

throwsIOException,ServletException{

//TODO自动生成方法存根

if(ignore (request.getCharacterEncoding()==null)){

Stringencoding=selectEncoding(request);

if(encoding!=null)

request.setCharacterEncoding(encoding);

}

chain.doFilter(request,response);

}

publicvoiddestroy(){

//TODO自动生成方法存根

this.encoding=null;

this.filterConfig=null;

}

protectedStringselectEncoding(ServletRequestrequest){

return(this.encoding);

}

}

然后再web.xml加上

SetCharacterEncoding

mon.SetCharacterEncodingFilter

encoding

UTF-8

 

 

SetCharacterEncoding

/*

 

使用过滤器的好处很多,特别是项目之中。

而且在使用国际化时就更有用了,只要在页面指定 <%@ page language=“java” pageEncoding=“UTF-8” %>,服务器就会根据本地Locale来显示正确的字符集。

所以我特别推荐使用过滤器。

方法三:修改tomcat的server.xml文件中URIEncoding

port=“80”redirectPort=“8443”enableLookups=“false”minSpareThreads=“25”maxSpareThreads=“75”

maxThreads=“150”maxPostSize=“0”URIEncoding=“GBK”>

 

这个方法主要针对从url中获取字符串的问题。

在tomcat5.0及以上版本,post和get方法在处理编码时有所不同。如果你在url中获取中文就会出现?号。但在tomcat4.1版本没有问题,因为tomcat4.1的post和get方法在处理编码时是一样的。

web程序设计jsp实验 篇2

关键词:JSP;Web网站;Web服务器;安全

中图分类号:TP309文献标识码:A 文章编号:1009-3044(2007)12-21562-02

Security policy of Web application procedure development based on JSP technical

ZHAO Feng

(Information Department of Science and Engineering, City College of Wuhan University of Science and Technology, Wuhan 430083,China)

Abstract:This article introduces the characteristic and work mechanism of the JSP technology. The analysis has studied security problemwhich Web application procedure development exists based on JSP technical from Web Server security, JSP script programming, database security and visit jurisdiction and so on several aspect anddiscusses when and how the Web development based on JSP should adopt security measure.

Key words:JSP; Web Site; Web Servers; Security

互联网为信息共享、信息交流、信息服务创造了理想空间,网络技术的发展和应用,为提升信息社会发展服务能力和品质提供了巨大的推动力。同时人们已经不再满足于静态HTML技术,更多的是要求动态、交互的网络技术。JSP作为一种崭新的服务器端动态网页设计技术,被广泛应用在电子商务、网上调查、网上查询等各种互联网应用中。各种动态内容生成环境美化了WEB,他们的设计目标就是为了给开发者更多的便利,给最终用户更多的方便。但當网络编程越来越方便,系统功能越来越强大,系统的弱点和漏洞也越积越多,安全性成指数倍地下降,所有电脑驱动的系统都很容易受到侵犯和破坏,对计算机系统进行任何有计划的攻击,都可能产生灾难性的后果。本文就将比较详细分析基于JSP技术的Web应用程序开发的安全策略

1 JSP的特点与工作机制

1.1 JSP的特点

JSP (Java Server pages)是由Sun公司在Java语言上开发出来的一种动态网页制作技术。它允许把Java代码逻辑嵌入到HTML和XML文档当中,为创建和管理动态网页的内容带来了方便。与ASP、PHP工作机制不太一样,JSP页面在执行时是编译式,而不是解释式的。首次调用JSP文件其实是执行一个编译为Java Servlet的过程。当浏览器向服务器请求这一个JSP文件的时候,服务器将直接用相应的Servlct结果作为应答。

1.2 JSP的工作机制

JSP是一种将Web浏览器、Web服务器、数据库系统结合在一起的,使Web应用更容易开发、访问和发布的技术。它使用Java代码动态生成HTML文档的Web页面模板。它运行于称之为JSP容器的服务器端组件。JSP容器将JSP转换为等价的Java Servlet。它是一种安全、健壮和平台独立的技术,把Java的强大功能引入电子商务和企业Web计算中。目前最新版本是2007年4月发布的JSP4.0版。由于它本身是个开放式的体系结构,可以方便地通过自定义标签库的形式进行扩充。目前有相当多的基于JSP技术的Web应用开发框架,如Struts,Cocoon等,显示了强大的生命力。JSP的工作机制是首先由用户浏览器向Web服务器,如Tomcat等发送JSP文件请求,服务器接到请求后知道这个JSP文件需要被生成Servlet,于是她在工作目录中寻找是否有已经生成编译好的Class文件,如果有,就直接调用并生成输出。否则,JSP容器会将JSP文件生成对等的Servlet源文件,并编译成Class文件后运行,产生格式为HTML的输出。在静态网页HTML文件(*.htm,*.htm1)中加入Java程序片断(Scriptlet)和JSP标记(Tag),就构成了JSP 网页(*.jsp)。JSP页面以扩展名为jsp的纯文本文件形式存于服务器上,当服务器接收到客户端某个JsP页面的请求时,触发JSP引擎,JSP引擎首先检查JSP文件是否是新创建或修改过,若是,则把该JSP页面内容转换成一个纯Java语言的Servlet源码,然后使用标准的Java编译器,将Servlet编译成Servlet字节代码,生成所请求的内容,最后将执行结果以HTML页面的形式发送回浏览器。

2 基于JSP技术的Web应用程序开发的安全策略

随着社会的发展,基于WEB方式的电子商务平台正逐渐兴起,各种建立在WEB方式下的动态交互系统正极大地变革着人们的工作和生活方式。而JSP(Java Server pages)正是构筑动态WEB平台的首选语言,它强大的功能,诱人的平台无关性,较好的安全机制还有免费的系统软件都深得众多业内人士和IT企业的支持。

2.1 数据传输时的安全策略

一般情况下,客户端与服务器端之间的数据传输以明文形式传输,如何防止其中包含用户名、密码等的敏感信息被恶意用户截获十分重要。GET请求方法是把请求数据从客户端传输到服务器端最简单的方法。使用GET请求方法时,输入数据附加到请求URL之后,格式如下:URL[?name=value[&name=Value[&?]]]显然.对于传输敏感数据来说,这种编码方式是不合适的,因为通常情况下,整个URL和请求字符串都以明文方式通过通信通道。所有路由设备都可以和服务器一样记录这些信息。如果要在客户请求中传输敏感数据,我们应该使用POST方法,再加上一种合适的加密机制(例如,通过SSL连接)。从JSP引擎的角度来看,在很大程度上,使用哪种传输方法无关紧要,因为两者的处理方式一样。在WWW 的发展过程中,Netscape引入了Cookie的概念。Cookie是服务器保存到客户端的少量信息,服务器提取这些信息以维持会话状态或跟踪客户端浏览器的活动 JSP提供了一个response隐含对象的addCookie()方法,用来在客户端设置Cookie;提供了一个request()对象的getCookie()方法,用来提取Cookie的内容。Cookie是iavax.servlet.http.Cookie类的实例。由于两个原因,如果把敏感数据保存到Cookie,安全受到了威胁:第一,Cookie的全部内容对客户端来说都是可见的;第二,虽然浏览器一般不提供伪造Cookie的能力,但没有任何东西能够阻止用户用完全伪造的Cookie应答服务器。一般而言,任何客户端浏览器提交的信息都不可以假定为绝对安全。再次,JSP通常使用SSLSSH协议在客户端和服务器端建立加密通道以保护传输中数据不被截获。同时时刻确保已安装最新的服务程序包,补丁能够帮助我们保护SQL Server数据库免受许多威胁。但是安全补丁的发布速度总是跟不上那些移动迅速的安全性问题的处理。建议使用微软公司的免费的安全通知服务或WSUS服务。使用监控连接,连接可以告诉我们谁试图访问SQL Server。所以监视和控制连接是保护数据库安全的一个非常好的方法。对于一个大型的活动的SQL Server数据库,可能会有很多数据连接需要监控.但是监控失败的连接是非常有价值的,因为它们可能表现出使用的企图。最后还要防止防范SQL注入(SQL Injection),SQL Injection是当前网站安全的主要问题之一。攻击者可以利用它读取、修改或者删除数据库内的数据,甚至可以获得操作系统的控制权,SQL Injection攻击无法通过安装系统补丁或配置防火墙拦截。赵文龙等人提出通过输入认证+数据库安全策略可有效抵御防范SQL注入。

2.2 基于JSP的数据库应用程序权限访问控制

基于JSP的数据库应用程序权限访问控制系统包括图书检索模块、编目模块、采访模块、流通模块、系统管理模块等几个部分。使用系统的用户被划分为三个层次:其一是大众用户(设其权限为5),注册后只能访问检索模块,这是最低的权限;其二是各编目人员(设其权限为2)、采购人员(设其权限为3)、流通人员(设其权限为4),分别具有访问编目模块、采访模块、流通模块的权限,互不越权访问,同时拥有访问检索模块的权限;其三是系统管理员(设其权限为1),拥有系统的最高权限,即访问所有模块,负责各个模块的维护,管理用户权限与密码、用户的注册等。设置一个访问控制列表(表示用户对资源的访问权限)userdbf,它主要包含4个字段,即用户名username、用户密码passwird、对应的权限jibie、单位字段company。在登录页面设计表单输入用户名、密码、单位,登录检查页面中对上述输入字段内码转换后,验证用户是否合法并获得合法用户的权限,用session对象的putValue()方法存储,在以后的页面无需用户再输入用户名及密码,只需根据这个session对象中保存的权限值,在每一个需要进行权限检验的页面判断该用户是否拥有访问权利。

2.3 保障Web服务器的安全措施

网络防范技术的日益成熟,使木马、病毒这类恶意代码的植入变得困难。网络入侵者开始针对系统自身存在的漏洞,编写相应的攻击程序,其中较常见的是对缓冲区溢出漏洞和DOS攻击。缓冲区溢出的原因是应用程序不够完善,设计的缓冲区不能满足特殊情况下的需求,就可能发生缓冲区溢出,导致数据丢失或损坏,甚至引起程序或服务器崩溃。比如Windows下的IIS4,IIS5某些版本在处理超常文件名时,就存在缓冲区溢出漏洞。人们往往认为,JAVA作为一种类型安全的、具有垃圾收集能力的、具有沙箱机制的语言,他能够奇迹般地保证软件安全,所以具有JAVA所有好处的JSP页面也是安全的,许多在其他语言中存在的低层次安全问题,比如缓冲或堆栈溢出,很少给JSP程序带来危害。然而,这并不意味着人们很难写出不安全的Servlet程序。因为缓冲区溢出的根本原因在于C语言本身的特性,而JAVA的解释器就是用C语言编写的,所以JAVA解释器还是可能存在缓冲区溢出漏洞并受到攻击。不过缓冲区溢出攻击实施起来相当困难,因为入侵者必须能够判断潜在的缓冲区溢出何时会出现以及他在内存中的位置。缓冲区溢出预防起来也同样困难,管理员应及时注意软件的安全公告和安装发布的最新补丁程序,完全去掉缓冲区溢出存在的条件才能防止这种方式的攻击。拒绝服务攻击是指一个或多个用户占据了大量服务器资源,使系统没有剩余的资源给其他用户提供服务的攻击方式。一个Web服务器为了尽可能地发挥出主机的功能,会限制同时连接到该主机上的人数,如果黑客占据了这些入口并维系一段时间,那么其他用户的合法请求就会被服务器拒绝。拒绝服务攻击还能通过降低系统资源例如CPU时间、磁盘空间、网络带宽、甚至是系统管理员的时间来进行。同时我们可以通过查看日志文件、监视连接登记状态,将入侵者的IP地址设置为黑名单来立即拒绝他们的继续访问,也可以通过控制同一源IP地址的连接数来达到抵御DOS攻击的目的。

2.4 从编程角度来加强安全

Michael Howard从安全编程方面总结出一系列编写安全代码的技巧,这些技巧不局限于特定的语言。Jess Garms及Daniel Somerfield等则从Java编程的角度出发,提出了如何编写安全的Java代码的意见和建议。如限制序列化,使类不可克隆,避免硬编码敏感数据等。同时随着系统资源的扩展和用户的增多,访问控制列表的长度会变长,这时权限的分配和管理工作越来越难,这时可以采用基于角色的安全访问控制(RBAC)。若对用户口令表及重要库文件进行加密,整个系统的安全性会进一步提高。

3 结束语

提高一个Web应用系统的安全性,抵御非法用户的入侵,任何一个漏洞都可能成为系统安全的隐患。作为基于JSP的WEB设计开发人员,必须对采用的动态网页技术、系统环境和网络协议等各个方面可能存在的安全问题比较清楚,在应用系统的开发过程中,采用适当的系统设置和安全的网络传输协议,摈弃不安全的脚本编程,这样才能保证系统的安全、正确运行。

参考文献:

[1]张建华,等,Web页面防篡改及防重放机制[J].计算机应用,2006,(2):327-328.

[2]耿祥义,张跃平.JSP实用教程[M].北京:清华大学出版社,2003.

[3]盂宪虎,沈均毅.WEB数据库应用程序安全性设计的一种实现[J].计算机工程与应用.2002(9):119.

[4]谢炎桦著,Visual Basic&Access数据库管理系统构建实例,清华大学出版社,2001.

[5]Gary Bollinger,Bharathi Natarajan.JSP程序设计指南[M].天宏工作室译.北京:清华大学出版社,2002.

[6]Kevin Mukhar,Todd Lauinger,John Carnel1.Java数据库应用程序编程指南[M].魏海萍译.北京:电子工业出版社,2002.

[7]中國互联网络发展状况统计报告.中国互联网信息中心,CNNIC,2004—0l

web程序设计jsp实验 篇3

(2013年5月 编写)

为了促进我院学生尽快熟悉和掌握JSP语言编程的基本知识和技能,特制定本职业技能训练大纲。大纲适合我院计算机科学与技术、信息管理与信息系统和软件工程三个专业的全体学生。通过JSP语言程序设计的职业技能训练,使学生掌握JSP运行环境的搭建、JSP页面元素、JSP内置对象、JSP数据库操作、文件操作、Web基础知识、JSP与JavaBean、Servlet编程技术等知识点。

由于《JSP程序设计》职业技能训练是在学习《JSP程序设计》课程时开展,故训练内容可参考这门课程的教学大纲要求。为了促进职业技能的训练效果,将设置3个评测项目,每个项目包含训练目标、训练内容、训练方法要求、训练实施安排及考核、参考资料等部分,学生根据要求熟练掌握各知识点。最后考核则选择其中某个项目,并参考其要求实施。

项目一:JSP学生成绩管理程序

一、训练目标

通过本项目的训练,使学生掌握JSP语言编写一个小型学生成绩程序的方法。该程序包括成绩录入、修改成绩、查询成绩、删除程序功能。通过该技能的训练,除了熟悉JSP语言语法外,为今后的动态网站的开发奠定良好的基础。

二、训练内容

1.JSP开发环境的搭建 2.数据表的创建 3.数据查询的方法 4.数据添加的方法 5.数据更新的方法

三、训练方法要求

使用MyEclipse工具编制实现训练目标及内容要求的JSP代码程序,要求学生独立完成程序代码的编制与调试。

四、训练实施安排及考核

1.时间安排: 与课程《JSP程序设计》同一学期开设,课余时间,短学期。2.训练方式: 除课堂上必要的训练外,课余对学生开放相关实验室进行操作训练。

3.考核形式: 开卷考核。学生使用MyEclipse编写JSP程序,实现训练目标及内容所要求功能,并对代码增加详细注释。最后提交可访问的成绩管理动态网站,并随机选取部分学生参与答辩,据此给出成绩评定。

五、说明

1.需要安装有MyEclipse的计算机,可使用学院机房的计算机,也可以使用学生自己的个人电脑完成实验项目。

2.参考资料

[1] 范芸,范慧霞.JSP动态网站开发基础与上机指导[M].北京:清华大学出版社, 2010.[2] 王小军,田中雨,刘跃军.JSP动态网站开发[M].北京:清华大学出版社, 2008.[3] 刘俊亮,王清华.JSP Web开发学习实录[M].北京:清华大学出版社, 2011 [4] 王永茂.JSP程序设计——用JSP开发Web应用[M].北京:清华大学出版社, 2012.[5] 向学哲.JSP程序设计教程[M].北京:人民邮电出版社, 2009.[6]清华大学计算机与信息管理中心.Servlet和JSP编程基础[M].北京:中国铁道出版社, 2010.项目二:简单的购物程序

一、训练目标

通过本项目的训练,使学生掌握JSP语言编写一个网上购物程序。该程序包括用户注册、登陆、购物车、商品列表分页显示功能。通过该技能的训练,除了熟悉JSP语言语法外,为今后的动态网站的开发奠定良好的基础。

二、训练内容

1.JSP页面的创建 2.JavaBean类的创建

3.JavaBean组建对数据库的访问

三、训练方法要求

使用MyEclipse工具编制实现训练目标及内容要求的JSP代码程序,要求学生独立完成程序代码的编制与调试。

四、训练实施安排及考核

1.时间安排: 与课程《JSP程序设计》同一学期开设,课余时间,短学期。2.训练方式: 除课堂上必要的训练外,课余对学生开放相关实验室进行操作训练。

3.考核形式: 开卷考核。学生使用MyEclipse编写JSP程序,实现训练目标及内容所要求功能,并对代码增加详细注释。最后提交可访问的简单购物动态网站,并随机选取部分学生参与答辩,据此给出成绩

评定。

五、说明

1.需要安装有MyEclipse的计算机,可使用学院机房的计算机,也可以使用学生自己的个人电脑完成实验项目。

2.参考资料

[1] 范芸,范慧霞.JSP动态网站开发基础与上机指导[M].北京:清华大学出版社, 2010.[2] 王小军,田中雨,刘跃军.JSP动态网站开发[M].北京:清华大学出版社, 2008.[3] 刘俊亮,王清华.JSP Web开发学习实录[M].北京:清华大学出版社, 2011 [4] 王永茂.JSP程序设计——用JSP开发Web应用[M].北京:清华大学出版社, 2012.[5] 向学哲.JSP程序设计教程[M].北京:人民邮电出版社, 2009.[6]清华大学计算机与信息管理中心.Servlet和JSP编程基础[M].北京:中国铁道出版社, 2010.项目三:JSP留言板程序设计

一、训练目标

通过本项目的训练,使学生掌握JSP语言编写一个综合实训程序的方法。要求单击“提交留言”按钮后,要将输入留言人输入的信息保存到数据库中。通过该技能的训练,除了熟悉JSP语言语法外,为今后的动态网站的开发奠定良好的基础。

二、训练内容

1.JSP页面的创建

2.JavaBean类、Servlet类的创建 3.Servlet程序Web.xml文件的配置 4.JSP+JavaBean+Servlet程序的运行

三、训练方法要求

使用JSP+JavaBean+Servlet开发模式编制实现训练目标及内容要求的JSP代码程序,要求学生独立完成程序代码的编制与调试。

四、训练实施安排及考核

1.时间安排: 与课程《JSP程序设计》同一学期开设,课余时间,短学期。2.训练方式: 除课堂上必要的训练外,课余对学生开放相关实验室进行操作训练。

3.考核形式: 开卷考核。学生使用MyEclipse编写JSP程序,实现训练目标及内容所要求功能,并对代码增加详细注释。最后提交可访问的留言板动态网站,并随机选取部分学生参与答辩,据此给出成绩评定。

五、说明

1.需要安装有MyEclipse的计算机,可使用学院机房的计算机,也可以使用学生自己的个人电脑完成实验项目。

2.参考资料

基于JSP的在线留言板系统设计 篇4

摘 要 本文从当前一般企业公司的网站融入在线留言功能的作用入手,探讨了基于JSP的在线留言板系统的需求分析,总体设计。重点分析了留言板的数据库设计、页面设计、系统的流程及设计特色等。

【关键词】JSP 在线留言 数据库留言板系统的需求分析

目前很多大型企业公司的网站上都提供了在线留言功能。其主要目的,搜集客户对该企业的意见和建议,为了更好改进产品质量或是服务等。同时也为个人之间,团体之间,个人与团体之间的交流,提供了交流的平台与便捷服务,在Internet上实现信息的传递,提高办事效率。本系统以Internet为平台,以JSP作为开发工具,SQLServer2005为后台数据库,构建一个小型留言板网站系统,从功能需求到框架规划再到数据库设计,最后功能实现。

该系统主要由前台功能和后台功能两部分组成。前台提供注册功能。注册的用户可以在留言板上进行主题查看,发表留言,回复留言。如果没有注册的用户没有权利发表留言或是回复留言但可以查看主题,查看留言内容,后台版主管理者可以进行留言的相关操作外,有权对留言进行审核,如果出现语言不逊或是恶意伤害的留言进行屏敝或删除管理等操作。系统的总体设计

2.1 数据库设计

数据库设计是把现实世界的模型按照需求分析转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库的数据是一切操作的基础,如果数据库设计不好,则影响其开发功能的实现及后期的维护。通过需求分析,抽象出现实世界的实体模型有人,留言,回复留言。每个实体在留言系统中有其重要属性。如人的属性有用户ID,姓名,权限,密码,电话,邮箱等,其中用户ID是主属性。留言的属性有留言ID,留言姓名,留言主题,留言内容,留言时间,IP,电话等。其中留言ID为主属性,回复留言的主属性有用户ID,留言ID,回复的内容,回复的时间等。其中用户ID为主属性。在以上分析中,留言板中注册的用户有两类人员,一是普通用户,一是管理员,为了区分两者身份,可以在人的属性中增加权限属性,如其值1为管理员,0为普通用户。据此便可以设计出符合实际需求分析的三张表,分别为,user用户表,leaveword留言表,reply留言回复表。

2.2 系统主页设计

为了使留言板系统的页面更加美观,页面风格保持一致,编写了CSS文件和JavaScript文件,采用了CSS外部样式。并建立了一个独立的JS文件,方便多个网页文件引入。

2.3 系统功能设计

详见系统流程图

2.4 系统特色

(1)此留言板系统虽然小巧。但功能完善。

(2)不同用户都有个自的权限。登陆后执行的功能各不相同。实现了多个不同用户的访问。

(3)页面风格统一,简单且美观。

(4)数据库设计合理规范,用户注册的信息符合要求才可以注册成功。具有很好的完整性。

参考文献

[1]王品.JSP实现留言板系统[J].计算机光盘与软件,2012.作者简介

黄军,男,教师,研究方向为软件开发。

作者单位

上一篇:世界水日作文:一滴水,一滴泪下一篇:屋面冬季施工方案