【JSP中servlet】单纯利用servlet写一个用户名密码判断页面

xiaoxiao2021-02-27  305

单纯只用servlet完成无数据库的用户名密码验证,和在JSP中差距并不大,和JSP界面一样,需要创建一个主界面和一个验证界面以及一个成功跳转界面,主要利用servlet中的doPost()函数来完成,当然doGet()也可以,而且douget是默认调用函数,但dopost能够传输的更多,所以平时主要还是用post,servlet是httpservlet的继承界面,而httpservlet则是GenericServlet的一个继承界面,所以可以自己新建Class文件,继承httpservlet或者直接继承Genericservlet,写上必须的doget(),dopost(),init(),service(),destoryu()等函数就可以了,但因为构建Class文件需要在xml文件中设置一些量,所以我是直接新建的servlet文件。

具体就是一个新建的servlet文件,首先将其doget()函数下的所有直接转移到dopost()下,就是doget()函数中的所有删掉,添加上this.dopost(request,response),再然后,将其中的dopost函数下的out.print()中加上Html代码具体如下  

out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");   out.println("<HTML>");   out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");   out.println("  <BODY>");   out.print("<form action=\"viladatesurvlet\" method=\"post\"");   if(request.getAttribute("error")!=null){    out.print("<p><font color=\"red\">"+request.getAttribute("error")+"</font></p>");   }   out.print("<p>用户名:<input type=\"text\" name=\"username\"></p>");   out.print("<p>密码:<input type=\"password\" name=\"pwd\"></p>");   out.print("<p><input type=\"submit\" value=\"提交\"></p>");   out.print("</form>");   out.println("");   out.println("  </BODY>");   out.println("</HTML>");   out.flush();   out.close();

这和在jsp界面中敲击差不多,注意的是要添加字符编码,要不然汉子输出的全都是乱码具体就是在dopost()下的setContextType(“txt/html;charset:utf-8”);这样界面就能识别汉子啦,这样这一个登陆界面我们就做完了。

然后就是判断界面,前面转移都相同,到了doPost()函数下,全部删掉,利用JAVA代码,可以直接用request.getParameter()获取用户输入的值,然后就是一个IF函数来判断一下,如果想要在其中加入数据库,并且查询数据库中的值也可以加,可以看我上一篇文章,连接数据库等等,很简单易学,这里我们不加,单纯的判断一下,然后就是传值跳转了,有两种方法,分别是response.sendRedirect(request.getcontexttype()+"")和request.getRequestDispatcher("").forWord(requser,response)在双引号中加入要转移的界面就好了,传值的话如果是用request.***的可以用request.setAttribute(*,*),因为不转换界面,传的值不容易出错,而用response.sen.....的这种就需要全局都能调用的那种,比如session.attribute(),无论在哪个页面传入都可以调用到得,下面是代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {

  response.setContentType("text/html;charset=utf-8");   String un=request.getParameter("username");   String pw=request.getParameter("pwd");   if("123".equals(un)&&"123".equals(pw)){    response.sendRedirect(request.getContextPath()+"/successsurvlet");   }else {    request.setAttribute("error", "用户名或密码错误");        request.getRequestDispatcher("/loginservlet").forward(request, response);   }  }

大体就是这样了,其中我也有很多不明白的地方,但是可以写出来可以运作,实践出来修改很多次就可以弄明白其中的道理了,实践出真知嘛。

转载请注明原文地址: https://www.6miu.com/read-3521.html

最新回复(0)