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

将java代码写在jsp中有什么不好?如何解决?

乐正玺
2023-03-14
问题内容

经常听说不要把java逻辑代码写在jsp文件中,不知道有什么不好?如何避免?怎么使用MVC设计模式。


问题答案:

可以将JSTL标记与EL表达式一起使用,以避免将Java和HTML代码混合在一起,例如:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<html>
    <head>
    </head>
    <body>

        <c:out value="${x + 1}" />
        <c:out value="${param.name}" />
        // and so on

    </body>
</html>

scriptlet的主要缺点是:

  1. 可重用性:你无法重用scriptlet。
  2. 可替换性:你不能使scriptlet抽象。
  3. 面向对象的能力:你不能利用继承/组合。
  4. 可调试性:如果scriptlet在中途抛出异常,你得到的只是空白页。
  5. 可测试性:脚本无法进行单元测试。
  6. 可维护性:每一次维护,需要花费更多时间来维护混合/混乱/重复的代码逻辑。


 类似资料:
  • 我正在努力将Java代码转换为javascript。为此,例如,我正在将public静态int primesolution转换为函数primesolution。我不太知道我是否在转换它的正确轨道上。我被困在公共静态空main(String[]args)中。如何将此函数转换为Javascript。非常感谢任何帮助。 我用JavaScript转换的代码

  • 我是spring MVC的新手。我需要在jsp中编写java代码(虽然这不是一个好的实践,但我没有其他选择)。我的Jsp现在是 但它给出了一个错误“org.apache.jasper.JasperException:无法为JSP编译类:”。有人能帮忙吗?? 包含的标题是 org.apache.jasper.compiler.DefaultErrorHandler.javac错误(andler.ja

  • 问题内容: 我正在浏览以下代码示例: 我想知道使用Iterator接口的实现而不是使用普通的for-each循环有什么好处? 如果此示例不相关,那么当我们应该使用Iterator时会是一个好的情况吗? 谢谢。 问题答案: 该 for-each循环 与Java 5中引入的,所以它不是那么“老”。 如果只想迭代一个集合,则应为每个循环使用 但是有时“普通的” 迭代器的 方法对于检查 迭代器 是否还有更

  • 目标 遵循类大小、方法大小和方法名称的最佳实践 了解重构的重要性 保持一致的编码风格和注释用法 使用内置记录功能 最佳编码实践 您现在已经学习了本学习路径的一半内容,已经掌握了足够多的 Java 语法来编写基本 Java 程序。在继续学习更高级的主题之前,目前是一个了解一些最佳编码实践的不错时机。阅读一些可帮助您编写更干净、更可维护的 Java 代码的必要建议。 保持类小巧 目前您已经创建了一些类

  • 下面是我使用的代码片段: 问:有人能告诉我我的错误是什么吗?为什么我会得到这个结果?

  • 除了通过JSP表达式在JSP页面中嵌入Java代码外,还可以通过<% ... %>在JSP页面中直接嵌入Java代码。所有写在<% ... %>之间的内容JSP编译器都会将其认为是Java代码,并直接将其插入由JSP页面生成的Servlet类的_jspService方法中,如下面的JSP代码: <% int n = (3 + 4) * 5; %> 上面的代码在JSP页面中嵌入了一行非常简单