注册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所示.

MineServer:香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps/KVM,288元/年

mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,云服务器网(yuntue.com)介绍过几次,最近比较活跃。现在新推出了3款特价KVM VPS,性价比高,香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps...

virmach:AMD平台小鸡,赌一把,单车变摩托?$7.2/年-512M内存/1核/10gSSD/1T流量,多机房可选

virmach送来了夏季促销,价格低到爆炸,而且在低价的基础上还搞首年8折,也就是说VPS低至7.2美元/年。不过,这里有一点要说明:你所购买的当前的VPS将会在09/30/2021 ~ 04/30/2022进行服务器转移,而且IP还会改变,当前的Intel平台会换成AMD平台,机房也会变动(目前来看以后会从colocrossing切换到INAP和Psychz),采取的是就近原则,原来的水牛城可能...

香港 1核 1G 5M 22元/月 美国 1核 512M 15M 19.36元/月 轻云互联

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。官方网站:点击进入广州轻云网络科技有限公司活动规则:用户购买任...

jsp教程下载为你推荐
伪装微信地理位置微信和微信伪装地理位置打不开怎么办?一点就一闪就完了中国电信互联星空中国电信互联星空是什么!怎么取消中国论坛大全天涯论坛的网址?百度抢票浏览器百度浏览器怎么抢票?工信部备案去国家工信部备案需要什么手续呢怎么点亮qq空间图标QQ空间图标怎么点亮?保护气球如何才能让气球放久了不会没气雅虎天盾我装了360安全卫士,原来的雅虎天盾需不需要卸载人人逛街过节了,这儿可真热闹写一段话云挂机有免费的云挂机软件吗?
政务和公益机构域名注册管理中心 域名空间购买 最便宜的vps 最新代理服务器地址 域名备案只选云聚达 荣耀欧洲 securitycenter ddos GGC burstnet 狗爹 安云加速器 国外idc 创宇云 全能主机 帽子云 admit的用法 91vps 东莞数据中心 福建铁通 更多