jsp+servlet实现简单登录页面功能Demo | 您所在的位置:网站首页 › jsp转成servlet › jsp+servlet实现简单登录页面功能Demo |
小白新路历程-1
实现功能:
模拟简单登录功能,登录成功跳转新页面,登录失败在原登录界面提示登录失败信息 开发环境:eclipse Tomcat-8.0 预备知识:HTML标签,Servlet相关知识——请求的转发与重定向,jsp相关知识,EL表达式 思路实现:共2个jsp,一个servlet 1.登录界面login.jsp:采用jsp,不采用html的原因是因为要进行登录失败信息回显(当然如果用html结合ajax也可以实现,这里采用jsp更方便) 如图: 欢迎信息+登录的用户名 如图: 如图: 思路简述: 问题1:jsp页面如何与一个java类进行连接绑定起来? 简单的说,一个jsp页面要跟一个servlet进行连接,需要有一个桥梁,这个桥梁就是web.xml文件,可以通过下面代码观察到,登录页面的表单的提交的action属性值,填写的就是在web.xml文件里对应的servlet-mapping中的url-pattern的值,而这个值又对应了一个servlet-name,servlet-name则对应到一个servlet-class,这样就把jsp和java类(servlet类)进行了关联。 其实我觉得最明显的就是提交表单后,url地址变化了,通过这个url地址将表单信息传给了对应的java类。 问题2:实现的整体的思路是怎么样的? 一个jsp页面通过表单元素,将用户信息通过url的形式提交给一个已经在web.xml配置映射好的servlet类,servlet类接收到传来的表单信息,进行值校验(为了方便起见则直接定义用户名密码了,正常情况下是要采用jdbc进行从数据库中取出值进行校验的),然后对校验结果进行判断,如果账户密码正确,则跳转到登录成功的页面(采用重定向),如果失败,则将登录失败的提示信息存到request域对象中并返回登录界面显示出来(采用请求的转发) 简单的联系: jsp页面web.xmlservlet类 问题3:在servlet中要如何获取jsp中提交过来的表单信息呢? request.getParameter("userName");//userName是表单中,input标签中name属性的值,接收到的是string类型 问题4:登录页面如何在登录失败的时候给出提示信息呢? 实现思路是如果登录失败,则往request域对象中存入登录失败的提示信息,然后通过请求的转发的方式跳转回登录页面并显示,所以登录界面要嵌入一段脚本代码,用来判断当前是否有登录失败提示信息的对象,如果有则将该对象保存的信息打印出来,如果没有则什么都不显示。 1)如果账密不匹配,则往request域中存入message对象,该message中保存了提示信息:request.setAttribute("message", "账密错误,请重新登录"); 并转发到登录页面:request.getRequestDispatcher("/loginDemo/login.jsp").forward(request, response);
2)在登录页面获取该对象:(因为登录失败的时候才有该对象,疑问:那如果我登录失败后再访问登录页面,那不应该会显示错误信息吗?答案是否定的。可了解request域对象生命周期相关知识)
|
CopyRight 2018-2019 实验室设备网 版权所有 |