注册jsp教程下载

jsp教程下载  时间:2021-02-22  阅读:()

版权所有IBM公司2006商标在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第1页,共12在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统扩展数据库登录系统TylerAnderson(tyleranderson5@yahoo.
com)自由作者2006年3月02日这个由两部分构成的文章系列演示了,如何使用声明式Java2平台企业版(J2EE)安全性和ApacheGeronimo内置的Derby数据库对注册用户进行认证并允许他们访问使用Geronimo应用服务器的Web站点.
安全性用SQL类型的部署计划进行控制,该部署计划指定允许哪些用户或组访问Web站点.
本文是该系列的第2部分,重点是使用Java服务器页面(JSP)来注册新用户,然后新用户就可以用第1部分介绍的基础设施设置进行登录.
查看本系列更多内容简介在第1部分中,虚构的WebApps公司为客户创建了一个Web站点,允许不同级别的用户认证.
基础设施的开发是通过为应用程序创建数据库表和安全部署计划而进行的.
在Geronimo内置的Derby数据库中,通过Geronimo控制台创建了用户表和分组表.
然后通过连接到Geronimo内置Derby数据库的SQLLoginModule,实现安全性;并把用户名、口令和组与用户登录时提供的信息进行匹配,从而允许表中的用户访问论坛.
在这篇文章中,第1部分中创建的简单的登录系统得到扩展,添加了使用JSP的用户注册系统.
这允许客户Web站点的新访问者能够注册并访问论坛.
首先,将学习JSP以及它们的实现方式和与Geronimo的关系.
然后将创建一个Javaservlet,用于显示允许用户通过提供用户名、口令和电子邮件地址进行注册的表单.
然后这些信息被提交到同一个servlet,它连接数据库并插入新记录,新记录中包含新用户的信息,从而允许用户登录.
设置请参阅本系列第1部分中的开始一节为这一部分做准备.
而且,请参阅下载一节中压缩的源文件中的README.
txt文件,得到修改的目录结构.
除了第1部分列出的前提条件和Java2SDK标准版(J2SDK),还需要J2EE1.
4和JSP2.
0.
JSP2.
0与J2EE1.
4一起打包,可以在Sun微系统的Web站点上免费下载.
developerWorksibm.
com/developerWorks/cn/在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第2页,共12现在可以开始了.
先从介绍JSP开始.
Java服务器页面JSP是脚本语言的一种Java技术形式.
可以把Java语言嵌在Web页面内部或创建Java类充当servlet.
就像其他脚本语言一样,JSP允许根据提交给Web页面的内容生成动态内容.
但是,JSP和servlet是用Java语言编写的,所以拥有使用Java语言的跨平台、跨设备移植性的威力.
要完整地理解Geronimo的威力,重要的是在为Geronimo构建应用程序时,既要理解JSP还要理解servlet.
现在将通过用JSP编写第一个脚本,学习如何编写简单的.
jsp文件.
在本文稍后,将学习如何编写servlet.
servlet与用JSP编写的脚本类似;但是,因为它是预编译的,所以更安全.
用JSP编写脚本第一个JSP脚本将显示日期,而且完全是用Java语言编写的.
请创建jspscript.
jsp文件,并像清单1所示那样定义它.
清单1.
用JSP编写脚本");out.
println("ThisismyfirstscriptwritteninJSP!
");out.
println("Thehistorictimeofthiseventis:");out.
println(String.
valueOf(d)+"");%>TextdisplayedoutsideoftheJSPscript.
");%>现在为部署创建一个简单的web.
xml文件,并把它放在WEB-INF子目录.
像清单2所示的那样定义它.
清单2.
简单的web.
xml文件web.
xml文件无论多简单,在Geronimo上部署.
war文件时都需要它,因为每个Web模块(.
war文件)都要求一个部署描述符(web.
xml文件).
现在,请输入以下命令创建.
war文件:jar-cvfjsp.
warjsp.
warWEB-INF/web.
xml请输入以下命令在Geronimo上部署.
war文件:java-jar/bin--usersystem--passwordmanageribm.
com/developerWorks/cn/developerWorks在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第3页,共12deployjsp.
war现在把浏览器指向http://localhost:8080/jsp/jspscript.
jsp.
请看图1的示例浏览器输出.
图1.
查看脚本输出现在重新来看清单1.
注意,在运行有Geronimo的控制台中显示了Thescripthasstarted.
浏览器上显示的文本是用out.
println()语句写入的或者是通过把文本放在标记内.
还请注意,日期的检索方式与在其他Java应用程序中的方式一样!
这是JSP威力的一个示例,它可以让您更全面地利用Geronimo的力量.
稍后,将使用一个.
jsp脚本以允许用户退出系统.
现在来看下载一节中的示例.
zip文件中的logout.
jsp脚本.
使用JSP,让用户退出论坛的功能被添加到客户的应用程序中(与关闭浏览器退出相对).
下面编写Javaservlet.
创建Javaservlet您的Javaservlet促进检索并显示用户信息.
请创建文件RegisterServlet.
java,并把它放在以下目录:.
/src/servlets/RegisterServlet.
java.
如清单3所示的那样定义它.
清单3.
Javaservletpackageservlets;importjava.
io.
*;importjava.
util.
*;importjava.
sql.
*;importjavax.
servlet.
*;importjavax.
servlet.
http.
*;publicclassRegisterServletextendsHttpServlet{publicstaticfinalStringform="\n"+"Name:\n"+"\n"+"Email:\n"+developerWorksibm.
com/developerWorks/cn/在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第4页,共12"\n"+"Password:\n"+"\n"+"\n";publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.
setContentType("text/html");response.
setBufferSize(8192);PrintWriterout=response.
getWriter();out.
println(""+"Register"+""+"Register\n"+form+"");out.
close();}publicStringgetServletInfo(){return"Register!
";}}注意,第一个粗体行设置servlet的包,即servlets.
这个包必须与servlet所在的目录名称相符.
所以,把servlet保存在.
/src/servlets/中.
现在,之所以servlet成其为servlet的,是因为它扩展了HttpServlet类而且有一个doGet()方法,用于对servlet的GET请求作出响应.
注意,响应的内容类型在doGet()方法的第一行被设置为text/html.
响应的缓冲区尺寸也进行了设置,输出流也从out变量的响应中得到.
最后,显示表单.
注意,实际的表单保存在类声明之后的Stringform变量中.
方法是POST,默认的动作把表单数据提交回这个servlet.
然后表单有三个文本框,供用户提交他们的信息:用户名、口令和电子邮件地址.
这样,新用户可以输入他们的信息,并提交到服务器.
接下来,创建doPost()方法,检索提交的响应,并把用户信息保存在Derby数据库中.
把新用户数据保存到Derby中现在已经设置好servlet以显示表单.
但是,现在需要在servlet中实现doPost()方法,用于检索提交的数据.
这就可以检索提交的变量值,并把它们作为新记录输入到数据库中.

检索提交的数据并保存到Derby中如果用户提交了信息,在servlet当前的情况下,浏览器会显示HTTPERROR:405信息,因为servlet目前并没有支持POST方法.
可以通过在servlet中实现doPost()方法解决这个问题.
请继续定义RegisterServlet.
java文件,如清单4所示.
清单4.
继续Javaservlet.
.
.
"");out.
close();}ibm.
com/developerWorks/cn/developerWorks在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第5页,共12publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.
setContentType("text/html");response.
setBufferSize(8192);PrintWriterout=response.
getWriter();out.
println(""+"Register"+""+"Register\n");Stringusername=request.
getParameter("username");Stringpassword=request.
getParameter("password");Stringemail=request.
getParameter("email");booleanresult=false;if((username!
=null)&&(username.
length()>0)){.
.
.
注意,响应的设置就像在doGet()方法中设置一样.
接下来,向浏览器输出HTML响应的开始.
然后把POSTrequest变量提交的三个变量检索到String变量类型中.
然后,检查并确保输入的用户名不为null.
现在就有了需要插入数据库的数据.
继续定义doPost()方法,如清单5所示.
清单5.
继续doPost()方法.
.
.
booleanresult=false;if((username!
=null)&&(username.
length()>0)){Driverdriver=null;try{driver=(Driver)(com.
ibm.
db2.
jcc.
DB2Driver.
class).
newInstance();}catch(Exceptione){thrownewIllegalArgumentException("Unabletoload,"+"instantiate,orregisterdriver"+driver+":"+e.
getMessage());}try{Propertiesprop=newProperties();prop.
put("user","system");prop.
put("password","manager");Connectionconn=driver.
connect("jdbc:derby:net://localhost:1527/SystemDatabase;",prop);Stringsql="insertintoapp.
usersvaluesPreparedStatementstatement=conn.
prepareStatement(sql);statement.
setString(1,username);statement.
setString(2,email);statement.
setString(3,password);statement.
execute();sql="insertintoapp.
groups_usersvalues"+"(,'registeredUsers')";statement=conn.
prepareStatement(sql);statement.
setString(1,username);statement.
execute();result=true;.
.
.
developerWorksibm.
com/developerWorks/cn/在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第6页,共12注意,如果每件事都按计划进行,那么在每件事都成功提交到数据库,而且没有抛出异常之后,result变量应当等于true.
要使用的驱动程序是com.
ibm.
db2.
jcc.
DB2Driver.
这与本系列的第一部分中创建的my-db-plan.
xml文件中使用的驱动程序相同.
但是,由于在将它部署到Geronimo上之前需要编译这个代码,所以请确保在第1部分中下载的db2jcc.
jar和db2jcc_license_c.
jar文件在CLASSPATH中.
第二个try语句先设置连接Geronimo内置的Derby数据库——SystemDatabase时需要的Properties数据结构.
连接URL、用户名和口令也都与在第1部分的my-db-plan.
xml文件中输入的相同.
然后,设置并执行两个SQL语句,把包含新用户数据的新记录插入users表,把新记录插入groups_users表,添加新用户到registeredUsers组.
记得第1部分中,把允许访问用户区的registered-users角色映射到了geronimo-web.
xml文件中的registeredUsers组.
现在要处理SQL语句有问题时的异常,然后显示成功注册的确认信息,并关闭POST响应(请参阅清单6).
清单6.
完成doPost()方法.
.
.
statement.
execute();result=true;}catch(Throwablee){result=false;e.
printStackTrace();System.
out.
println(e.
getMessage());System.
out.
println("Errorexecutingquery");out.
println("ErrorinSQL!
");}}if(result)out.
println("Thankyouforregistering!
"+"Userslogin"+"here.
\n"+"Administratorslogin"+"here.
\n"+"Backtothe"+"mainpage.
\n");elseout.
println("Invalid,tryagain!
"+form);out.
println("");out.
close();}如果在第二个try语句运行期间抛出异常,那么请注意,result变量被设置为false.
这向浏览器发送一个响应,表明用户注册有问题或者servlet需要调试.
否则,servlet感谢用户注册,并显示登录链接.
最后,doPost()方法结束,用out.
close()语句关闭响应.
这就完成了接受新用户注册并把用户数据插入Geronimo内置Derby数据库的servlet.
注册servlet最后一步是注册servlet,以便Geronimo知道它的存在以及在哪个页面位置上安放它.
请编辑第1部分的web.
xml,如清单7所示.
ibm.
com/developerWorks/cn/developerWorks在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第7页,共12清单7.
注册servlet.
.
.
version="2.
4">RegisterServletRegisterServletservlets.
RegisterServletRegisterServlet/login/register.
html.
.
.
这个文件中新加入的东西以黑体显示.
还记得servlet在servlets类中,所以它的类名是servlets.
RegisterServlet,在标记中指定.
然后需要把它映射到服务器上的位置,目录从geronimo-web.
xml文件中的标记所指定的应用程序的根目录开始.
有了以上配置,servlet会显示在:http://localhost:8080/sqlSecurityDemo/login/register.
html现在转移到有趣的部分:在Geronimo上测试这个应用程序!
测试应用程序在应用程序投入使用之前,对应用程序进行全面测试总是重要的.
现在构建应用程序、重新部署在Geronimo上,并通过注册新用户、登录到用户区对servlet进行测试.
构建和重新部署现在需要构建应用程序并创建应用程序的.
war文件.
要用Ant构建.
war文件,请输入:ant.
现在创建了最终的security.
war文件,可以重新部署在Geronimo上了.
根据第1部分,应当已经在Geronimo上部署了应用程序的安全性部署计划(my-db-plan.
xml)和应用程序(security.
war).
所以这次只需要重新部署更改过的security.
war文件.
请输入以下命令执行这个工作:java-jarbin/deployer.
jar--usersystem--passwordmanagerredeploysecurity.
warcom/ibm/geronimo/security/myDbApp这会停止、卸载并反安装当前已经部署的模块(在第1部分中部署的),然后输出以下内容,开始新的模块:清单8.
重新部署最终的应用程序Stoppedcom/ibm/geronimo/security/myDbAppUnloadedcom/ibm/geronimo/security/myDbAppUninstalledcom/ibm/geronimo/security/myDbAppDeployedcom/ibm/geronimo/security/myDbAppStartedcom/ibm/geronimo/security/myDbAppRedeployedcom/ibm/geronimo/security/myDbAppdeveloperWorksibm.
com/developerWorks/cn/在ApacheGeronimo中创建登录和注册系统,第2部分:用JSP构建注册系统第8页,共12最终的应用程序现在安装在Geronimo上.
接下来测试它的能力.
测试最终应用程序现在需要注册一个新用户以测试servlet.
请单击newusersregisterhere链接,并注册一个新用户,输入newuser作为用户名,newpass作为口令,如图2所示.
图2.
注册新用户单击Submit.
在数据库中和registeredUsers组中现在应当有了新用户.
请单击Usersloginhere登录用户区,对此进行确认.
现在用刚刚输入的用户名和口令登录,如图3所示.

wordpress外贸企业主题 wordpress高级全行业大气外贸主题

wordpress高级全行业大气外贸主题,wordpress通用全行业高级外贸企业在线询单自适应主题建站程序,完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,更实用的移动设备特色功能模块 + 更适于欧美国外用户操作体验 大气简洁的网站风格设计 + 高效优化的网站程序结构,更利于Goolge等SEO搜索优化和站点收录排名。点击进入:wordpress高级全行业大气外贸主题主题价格:¥398...

VirtVPS抗投诉瑞士VPS上线10美元/月

专心做抗投诉服务器的VirtVPS上线瑞士机房,看中的就是瑞士对隐私的保护,有需要欧洲抗投诉VPS的朋友不要错过了。VirtVPS这次上新的瑞士服务器采用E-2276G处理器,Windows/Linux操作系统可选。VirtVPS成立于2018年,主营荷兰、芬兰、德国、英国机房的离岸虚拟主机托管、VPS、独立服务器、游戏服务器和外汇服务器业务。VirtVPS 提供世界上最全面的安全、完全受保护和私...

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

jsp教程下载为你推荐
赛我网赛我网(cyworld)怎么进不去?weipin唯品购,weipuvip,是诈骗网站么?充了钱之后提不出,各种套路继续充钱天府热线天府热线怎么老是进不去?无线路由器限速设置路由器里面限速参数如何设置?spgnux怎么安装思普操作系统今日热点怎么删除怎样删除实时热点安卓应用平台手机系统应用在哪网易公开课怎么下载如何下载网易公开课雅虎天盾有没有用用雅虎天盾的啊?小米3大概多少钱小米3现在多少钱
江西服务器租用 linuxapache虚拟主机 过期域名抢注 hawkhost 博客主机 国外私服 远程登陆工具 免费ddos防火墙 免费ftp空间申请 e蜗牛 本网站在美国维护 卡巴斯基官方免费版 seednet 169邮箱 域名评估 卡巴斯基试用版 上海服务器 linux使用教程 Updog 登陆空间 更多