当前位置: 首页 > 面试题库 >

JSP和Servlet服务器端验证

夹谷辰沛
2023-03-14
问题内容

我已经用JSP和Servlet完成了代码。当凭据不匹配时,我想在JSP页面中显示错误消息。我已经在servlet中编写了代码,但是未正确显示在jsp页面中。我想在密码文本框下方显示错误消息。如果有任何可用的例子,请告诉我,这将是很大的帮助。

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <title>Login Application</title>
   </head>
   <body>
      <form action="loginServlet" method="post">
         User Login
         <br>
         User ID
         <input type="text" name="username" >
         <br><br>
         Password
         <input type="password" name="userpass"><br>
         &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Login" >
      </form>
   </body>
</html>

LoginServlet.java

package com.test.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.amzi.dao.LoginDao;

public class LoginServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

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

        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();

        String n=request.getParameter("username");  
        String p=request.getParameter("userpass");

        HttpSession session = request.getSession(false);
        if(session!=null)
        session.setAttribute("name", n);

        if(LoginDao.validate(n, p)){  
            RequestDispatcher rd=request.getRequestDispatcher("welcome.jsp");  
            rd.forward(request,response);  
        }  
        else{  
            out.print("Wrong Credentials"); 
            RequestDispatcher rd=request.getRequestDispatcher("index.jsp");

            rd.include(request,response);


        }

        out.close();  
    }  
}

这是我的代码,请更正它。


问题答案:

无需写出.print
....将错误设置为请求属性,而在index.jsp中,使用${requestAttributeKey}requestAttributeKey是请求属性的键来访问请求属性。



 类似资料:
  • 问题内容: 我已经使用servlet和JSP开发了一个Web应用程序。我本身并没有使用任何框架,而是使用了自己的自制MVC框架。我正在使用MySQL作为后端。 我要执行以下操作: 每小时清理一次数据库中的一些数据 每隔15分钟在XML文件中的某处生成并存储有关数据的统计信息 问题是:当前,我的所有代码都是作为从客户端收到的请求而运行的。 如何在服务器端运行定期任务? 我现在有一个解决方案是在控制器

  • 我有一个用户登录Html表单,我在其中获取用户的电子邮件和密码并根据数据库检查它们。到目前为止,我有以下代码,但当我提交表单时,它不会转到指定的JSP页面。我可以做些什么来改进我的代码,以及当用户按下提交但仍留在同一页面上时,我如何生成错误消息? 提前谢谢你。 //SERVLET doPost方法 //前向法 //HTML表单

  • 问题内容: 我试图了解如何执行以下操作: 声明表单的可接受方式是什么。我的理解是,您只需用HTML声明表单,并添加ng-model指令,如下所示: 要发送到服务器的内容。我可以将item对象作为JSON发送到服务器,然后对其进行解释。然后,我可以对对象执行验证。如果失败,则抛出JSON错误,然后发回确切的信息?有接受的方式吗?如何以一种很好的方式将验证错误从服务器推送到客户端? 我确实需要一个示例

  • 我试图了解如何做以下事情: 声明表单的公认方式是什么。我的理解是您只需用超文本标记语言声明表单,然后添加ng-model指令,如下所示: 发送到服务器的内容。我可以将item对象作为JSON发送到服务器,并对其进行解释。然后我可以对对象执行验证。如果失败,我抛出一个JSON错误,并返回具体内容?有没有公认的方法?如何以一种好的方式将验证错误从服务器推送到客户端? 我真的需要一个例子,但是Angul

  • 然后我尝试了ConstraintViolationException,但它也不起作用,原因还有一个(请参见下面的跟踪)。 我一定要捕获异常(ConstraintViolationException)而不是使用返回值吗? 20161114更新:我没主意了。我尝试在自己的源文件中复制ConstraintViolationImpl(hibernate-validator-4.1.0)并通过网络发送。由于

  • 问题内容: 进行客户端或服务器端验证哪个更好? 在我们的情况下,我们正在使用 jQuery和MVC。 在我们的视图和控制器之间传递的JSON数据。 我所做的许多验证工作都是在用户输入数据时对其进行验证。例如,我使用该事件来防止文本框中的字母,设置最大字符数,并且该数字在一定范围内。 我想更好的问题是,与客户端相比,进行服务器端验证是否有任何好处? 真棒的答案大家。我们拥有的网站受到密码保护,并且用

  • Response响应对象主要将JSP容器处理后的结果传回到客户端。可以通过response变量设置HTTP的状态和向客户端发送数据,如Cookie、HTTP文件头信息等。 一个典型的响应看起来就像下面这样: HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (空行) <!doctype ...> <ht

  • 我有一个jsp页面和一个servlet,在jsp页面中我有两个表单,每一个都是选择输入类型,即选择class和选择student。当我从select下拉菜单中选择class时,通过onchange事件,它将转到abcServlet,从servlet中检索该类,并将其转发到jsp页面,转到jsp页面中的下一个表单,select student,它再次提交到同一个servlet,从他们的servlet