当前位置: 首页 > 知识库问答 >
问题:

带有servlet中验证的JSP表单

公羊凌
2023-03-14

另一种可能是首先调用servlet,然后将JSP文件作为视图调用。但这是一个简洁的特性,在servlet中执行这一功能需要通过调用request.getParameter()手动实例化对象,这也意味着大量重复WRT。因此必须首先使用JSP。我可以使用一个JSP,然后转发到servlet,然后转发到“view”JSP,但对于JSP的一个“特性”来说,这似乎有点乏味。所以尽管付出了很多努力,我仍然在寻找一个利索的解决方案。

人们如何在实践中应用“JSP中无代码”的原则,同时保持“无代码重复”的原则?转发时是否可以更改请求方式?有可能用Java代码进行仿真吗?按照现代标准,完成这个简单用例的JSP“方式”是不是很难看?我可能会使用很多变通方法,但我正在尝试尽可能多地坚持标准。

共有1个答案

吴松
2023-03-14

使用servlet作为控制器。这意味着用户永远看不到.jsp扩展名或JSP的任何其他映射url。用户总是发送到servlet的URL。然后servlet根据需要转发到JSP。实际上,您希望将jsp放置在web-inf中,这样用户就不可能通过控制器(即servlet)以外的任何其他方式到达那里。

这里的Forward是在其适当的技术意义上使用的,意味着它在后台将执行传递给JSP,但servlet的URL保留在地址栏中(这与重定向非常不同)。这确保了如果用户点击refresh,servlet仍在控制执行流。

好了,现在你的逻辑是:

因此,让我们从servlet的info页面中选取这个示例。在servlet中:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // Preprocess request: load list of products for display in JSP.
    List<Product> products = productService.list();
    request.setAttribute("products", products);
    request.getRequestDispatcher("/WEB-INF/products.jsp").forward(request, response);
}

在JSP中:

       <c:forEach items="${products}" var="product">
            <tr>
                <td>${product.id}</td>
                <td><c:out value="${product.name}" /></td>
                <td><c:out value="${product.description}" /></td>
                <td><fmt:formatNumber value="${product.price}" type="currency" /></td>
            </tr>
        </c:forEach>

查看servlet是如何创建一个名为products的对象并将其放置在request属性中的?您可以做同样的事情,但这里不是列表,而是您的bean的任何类型。在JSP中的EL中访问它时也是这样:您将以这种方式访问bean:request.setAttribute(“mybean”,beanObj);servlet中的和JSP中的${mybean.memberName}

 类似资料:
  • 本文向大家介绍Jsp servlet验证码工具类分享,包括了Jsp servlet验证码工具类分享的使用技巧和注意事项,需要的朋友参考一下 昨晚在csdn看到一位前辈写一个ajax+servlet+jsp验证,顿时心血来潮,在阅读前辈的代码下我亲手体验一下,做了一个验证码生成工具类,以供大家做个参考。 1、添加VeriyCodeUtils类生成验证码图像 2、servlet使用验证码 3、JSP页

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

  • 问题内容: 我在MVC 4和AngularJS(+ twitter bootstrap)中有一个项目。我通常在MVC项目中使用“ jQuery.Validate”,“ DataAnnotations”和“ Razor”。然后,在我的web.config中启用这些密钥,以在客户端上验证模型的属性: 例如,如果我的模型中有以下内容: 使用此Cshtml: html结果将是: 但是现在当我使用Angul

  • 问题内容: 我有一个带有jquery验证的表单。提交表单后,我通过Ajax加载相同的表单。我的问题是jquery验证不适用于ajax加载的表单。我已经尝试了一些有关堆栈溢出的答案,但是不幸的是它没有用。 谢谢阿兹 问题答案: 在 功能上使用 。。 例:

  • 本文向大家介绍JSP + Servlet实现生成登录验证码示例,包括了JSP + Servlet实现生成登录验证码示例的使用技巧和注意事项,需要的朋友参考一下 随机生成四位数验证码,包括汉字,数字,英文大小写。 1.Servlet类 2.web.xml配置 3.jsp页面输出验证码 4.后台Servlet判断验证码是否与输入一致 通过request.getParameter(“checkCode”

  • 本文向大家介绍JSP使用Servlet过滤器进行身份验证的方法,包括了JSP使用Servlet过滤器进行身份验证的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JSP使用Servlet过滤器进行身份验证的方法。分享给大家供大家参考,具体如下: 1、Servlet过滤器的作用描述 (1)在HttpServletRequest到达Servlet 之前,拦截客户的HttpServletRe