您的位置:首页 > 其它

实现用户登录时若没有输入用户名,给出用户名不能为空的提示,若没有输入密码,给出密码不能为空的提示

2017-05-25 22:50 1786 查看
一、实现用户登录时若没有输入用户名,给出用户名不能为空的提示,若没有输入密码,给出密码不能为空的提示。

 

1、首先在index.jsp里面建立一个form表单,action为当我提交表单时用来处理程序的url地址,我想要在Loginservlet里面处理,它的url是/login,所以写上action=
“/login”,method是用来指定数据传送到服务器的方式,选用的方法是post(对于输入密码更安全)。如图所示



 

2、当我点击登录按钮时,控制权跳转到Loginservlet,首先我要在Loginservlet里面得到用户输入的内容(要在dopost方法里面写,因为我的method是post),用String
string = request.getParameter("username")来得到,request是JSP的一个内置对象,用来处理HTTP请求中的各项参数,在这里,我们通过request对象的getParameter()方法获取传递的参数值。这里的username就是input里面的name,因为name是用来指定输入字段的名称。通过同样的方式,我们就可以在Loginservlet将用户输入的用户名和密码得到了。具体代码如下:

 


3、在Servlet中判断用户名和密码是否为空,然后将结果返回给页面。

如果用户名为空,我们给前端返回一个字符串为 “null1”,如果密码为空,我们给前端返回一个不一样的字符串 “null2”。在进行请求转发时,需要把一些数据传递到转发后的页面进行处理。我们需要使用到request对象中的setAttribute()方法,将数据保存到request范围的变量中。request的语法格式如下:request.setAttribute(String
name,Object object),其中name表示变量名,在转发后的页面取数据时,就是通过name这个变量名来获取的。注意要加引号。Object则可以是任意类型。

而通过request.getRequestDispatcher().forward(request.response)将请求转给另一个页面处理,我想要转回到index.jsp页面中。



4、前端接收后台传过来的数据,并做相应的处理。

此时已跳转到index.jsp页面中,我们可以在JSP里面嵌入java代码。采用request.getAttribute().toString()来获取保存在request范围内的变量,但是将java代码片段嵌入到JSP页面中,会使页面看起来很乱,而使用EL则比较简洁。

EL是一种表达式语言,在Web开发中比较常用,通常与JSTL一同使用。以“${”开头,以“}”结束,中间为合法的表达式。

而使用JSTLl可以取代在传统JSP程序中嵌入的Java代码的做法,大大提高程序的可维护性。由5个功能不同的标签库组成,最常用的就是核心标签库。在使用之前,必须在JSP页面的顶部使用<%@
taglib%>指令定义引用的标签库和访问前缀。核心标签库的指令格式<%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>

那我们现在使用核心标签库的<c:choose>和<c:when>标签,来实现条件的选择,如果获取到的参数为null1,则弹出用户名不能为空的提示,如果获取到的参数为null2,则弹出密码不能为空的提示。

弹框我使用到了JavaScript的window对象的alert()方法,使用时要加上<script></script>标签。代码如下:

 


5、最后效果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐