JAVAweb简述完成一个登录系统大致步骤?

JAVAweb简述完成一个登录系统大致步骤?,第1张

完成一个登录系统的大致步骤如下:

1.创建一个表来存储用户的注册信息,比如USERNAME、PASSWORD等。

2.编写JSP页面实现登录的界面,并且在这个页面上放置一御梁个提交按钮,提交按钮会把用户输入的用户名和密码传递到Servlet程序中。

3.编写Servlet程序,实现用户账号和密码的验证,同时还要处理用户渣锋错误提交以及重复登录等问题。

4.编写一个过滤器,实现已经登录认证

5.认证成功后,在客户端或服务器端创建session对象,用来保存当前登如拆晌录的用户的信息,如用户ID、用户名等。

6.跳转页面到指定界面,并把session信息传递到新页面中。

7.编写一个过滤器,用来检查是否已经登录,如果还没有登录,就跳转回到登录页面。

importjava.awt.*\x0d\x0aimportjava.awt.event.*\x0d\x0aimportjava.applet.*\x0d\x0aimportjava.applet.Applet\x0d\x0aimportjava.io.*\x0d\x0aimportjavax.xml.parsers.DoumentBuilderFactory\x0d\x0a\x0d\x0apublicclassUserPanelextendsAppletimplentsActionListener\x0d\x0a{\x0d\x0aLabellblName,lblNumber,lblSex,lblJob,lblText\x0d\x0aTextFieletfName.tfNumber\x0d\x0acheckboxchMale,chFemale\x0d\x0aTextAreataText\x0d\x0achoicechJob\x0d\x0aButtonbtnOk,btnDisply\x0d\x0aPanelp1,p2,p3,p4,p5,p6,p7,p8,p9\x0d\x0aStringstrName,strNumber,strSex,strJob,strText\x0d\x0a\x0d\x0apublicvoidinit()\x0d\x0a{\x0d\x0alblName=newLabel("姓名")\x0d\x0alblNumber=newLabel("身份z号")\x0d\x0alblSex=newLabel("性别")\x0d\x0alblJob=newLabel("职业")\x0d\x0alblText=newLabel("个性化宣言")\x0d\x0atfName=newTextField(23)\x0d\x0atfNumber=newTextFidle(20)\x0d\x0ataText=newTextArea(10,20)\x0d\x0ac=newcheckboxGroup()\x0d\x0achMale=newcheckbox("男",c,true)\x0d\x0achFemale=newcheckbox("女",c,false)\x0d\x0achJob=newchoice()\x0d\x0achJob.add("学生")\x0d\x0abtnOk=newButton("确定")\x0d\x0abtnDisplay=newButton("显示")\x0d\x0ap1=newpanel()\x0d\x0ap2=newpanel()\x0d\x0ap3=newpanel()\x0d\x0ap4=newpanel()\x0d\x0ap5=newpanel()\x0d\x0ap6=newpanel()\x0d\x0ap7=newpanel(newBorderLayout())\x0d\x0ap8=newpanel()\x0d\x0ap9=newpanel(newBorderLayout())\x0d\x0a//\x0d\x0ap1.add(lblName)\x0d\x0ap1.add(tfName)\x0d\x0ap2.add(lblNumber)\x0d\x0ap2.add(lblNumber)\x0d\x0ap3.add(lblSex)\x0d\x0ap3.add(chMale)\x0d\x0ap3.add(chFemale)\x0d\x0ap4.add(lblJob)\x0d\x0ap4.add(chJob)\x0d\x0ap5.add(p3)\x0d\x0ap5.add(p4)\x0d\x0ap6.setLayout(newBorderLayout())\x0d\x0ap6.add(p1,BorderLayout.NORTH)\x0d\x0ap6.add(p2,BorderLayout.CENTER)\x0d\x0ap6.add(p5,BorderLayout.SOUTH)\x0d\x0ap7.add(lblText,BorderLayout.NORTH)\x0d\x0ap7.add(lblText,BorderLayout.CENTER)\x0d\x0ap8.setLayout(newFlowLayout(FlowLayout.CENTER,30,10))\x0d\x0ap8.add(btnOK)\x0d\x0ap8.add(btnDisplay)\x0d\x0ap9.add(p6,BorderLayout.NORTH)\x0d\x0ap9.add(p7,BorderLayout.CENTER)\x0d\x0ap9.add(p8,BorderLayout.SOUTH)\x0d\x0aadd(p9)\x0d\x0a//\x0d\x0abtnOK.addActionListener(this)\x0d\x0abtnDisplay.addActionListener(this)\x0d\x0abtnDisplay.setEnabled(false)\x0d\x0astrName=newString()\x0d\x0astrNumber=newString()\x0d\x0astrSex=newString()\x0d\x0astrJob=newString()\x0d\x0astrText=newString()\x0d\x0a}\x0d\x0a\x0d\x0apublicvoidactionPerformed(ActionEventevt)\x0d\x0a{\x0d\x0astringarg=evt.getActionCommand()\x0d\x0a//\x0d\x0aif(arg.equals("确定"))\x0d\x0a{\x0d\x0astrName=tfName.getText().trim()\x0d\x0astrNumber=tfNumber.getText().trim()\x0d\x0aif(chMale.getState())\x0d\x0astrSex="男"\x0d\x0aelse\x0d\x0astrSex="女"\x0d\x0astrJob=chJob.getselectedItem()\x0d\x0astrText=taText.getText().trim()\x0d\x0atry\x0d\x0a{\x0d\x0a//\x0d\x0aDoumentBuildFactorydbf=DocumentBuilderFactory.newInstance()\x0d\x0adb=dbf.newDocumentBuilder()\x0d\x0aDoumentdoc=db.newDoument()\x0d\x0a//\x0d\x0aElementroot=doc.CreateElement("UserDAta")\x0d\x0aElementeName=doc.createElement("Name")\x0d\x0aElementeNumber=doc.createElement("Number")\x0d\x0aElementeJob=doc.createElement("Job")\x0d\x0aElementeText=doc.createElement("Text")\x0d\x0a//\x0d\x0aroot.appendChild(eName)\x0d\x0aroot.appendChild(eNumber)\x0d\x0aroot.appendChild(eSex)\x0d\x0aroot.appendChild(eJob)\x0d\x0aroot.appendChild(eText)\x0d\x0a//\x0d\x0aeName.appendChild(doc.creatTextNode("\n"strName"\n"))\x0d\x0aeNumber.appendChild(doc.creatTextNode("\n"strNumber"\n"))\x0d\x0aeSex.appendChild(doc.creatTextNode("\n"strSex"\n"))\x0d\x0aeJob.appendChild(doc.creatTextNode("\n"strJob"\n"))\x0d\x0aeText.appendChild(doc.creatTextNode("\n"strText"\n"))\x0d\x0a//\x0d\x0aFilef=newFile("user.xml")\x0d\x0aFileOutputStreamfOut=newFileOutStream(f)\x0d\x0a//\x0d\x0afOut.write("

   我不得不使用好几个系统 都是B/S结构的 每次登录都需要输入用户名和密码 觉得非常麻烦 考虑到其他同事也会有这样的需求 不妨就写个自动登录的程序吧 之前 也考虑过使用单点登录 几经尝试之后还是放弃了         我习惯使用Java 本能地开始寻找Java的解决方法 在Google中输入 Java自动登录 Java网页模拟登录 JavaPost登录 结果倒是不少 内容也差不多 我尝试很多次终究也没有达到我预期的目标 后来 我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行 但这些代码确实管用         我们先分析一下代码         Stringsurl=   祥洞      URLurl=newURL(surl)         URLConnectionconn=url openConnection()         conn setDoOutput(true)         OutputStreamWriterout=newOutputStreamWriter(conn getOutputStream())         Stringstr= username=yourname&password=         out write(str)         out flush()         out close()         到这里 如果在C/S结构中 且参数正确 程序能够成功登录到这个oa系统 要看到结果 你可以通过下面的代码将系统服务器返回的结果System out println()出来         Stringsling=         Stringscontent=         BufferedReaderin=newBufferedReader(newInputStreamReader(conn getInputStream() UTF ))         while((sling=in readLine())!=null)        scontent+=in+ \r\n         System out println(scontent)         在C/S结构下 可以到得到控制台输出了返回值 从返回内容里谨戚枯可以看出程序已经成功登录 但要是把这个网址浏览器打开 还是得重新登录 问题没有得到根本解决 如果只是恶意注册 到这里应该就达到目的了         看样子C/S结构下不容易实现网页程序自动登录 除非你在C/S程序中内嵌一个浏览器 直接在这个浏览器中自动访问系统 应该没有别的方法 主要问题在于我们没有办法共享Session         为了便于共享Session 我们只能在浏览器中实现网页自动登录 通过上面的代码在jsp页面中测试 达不到预期目标         网页自动登录 就是希望程序自动填充用户名和密码 然后以Post方式提交给登录页面的Form所指向的action页面或方法 我将系统的登录页面的源代码保存成一个网页 然后在username和password文本框中设置默认值 然后通过这网页登录系统 测试后 发现可行 接下来 你可能已经想到了解决方法         我们可以通过url openConnection()建立连接 将返回的scontent打印出来 然后接着打印以下代码         out println( \r\n )         out println( document getElementsByName(\ username\ )[ ] value=yourname\r\n )         out println( document getElementsByName(\ password\ )[ ] value= \r\n )  仔旅       out println( document forms[ ] submit() \r\n )         out println( \r\n )         原理很简单 通过login jsp将登录页面的全部源代码写在当前页面 然后使用javascript脚本将用户名和密码的值填充上 最后提交表单 这样中 终于实现了自动登录的目标 现在我通过一个特殊的网址 就可以自动访问这个oa了         你可能注意到参数url 他的值是经过加密的 内容是用户名和密码 当然 你也可以加上有效期 即在有效期内这个链接才是有效的 才可以实现自动登录 lishixinzhi/Article/program/Java/hx/201311/26114


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8229413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存