为啥要使用 JSTL?当我们在 JSP 文件中使用带有连接字符串的数据库连接来获取从 servlet 发送的数据时会有啥危害[重复]

Posted

技术标签:

【中文标题】为啥要使用 JSTL?当我们在 JSP 文件中使用带有连接字符串的数据库连接来获取从 servlet 发送的数据时会有啥危害[重复]【英文标题】:Why to use JSTL? What will be the harm in when we use data base connection in JSP file with connection string to get the data sent from servlet [duplicate]为什么要使用 JSTL?当我们在 JSP 文件中使用带有连接字符串的数据库连接来获取从 servlet 发送的数据时会有什么危害[重复] 【发布时间】:2018-04-24 14:09:19 【问题描述】:

在下面的代码中,JDBC 连接是在 JSP 文件本身中完成的。那有什么害处。我是新手,在大多数网站中发现它要求对 SQL 数据使用 JSTL,那么 JSTL 和 JSP 有什么区别,哪个更好?

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
    <title>Home Page</title>
    </head>
    <body>
       <%@include file="DBDetails.jsp"%>   
<%
 Class.forName("com.mysql.jdbc.Driver").newInstance();
                          connection = DriverManager.getConnection(connectionURL, username, password);
                            statement = connection.createStatement();

Code TO get Table Values Et

%>
    <%User user = (User) session.getAttribute("User"); %>
    <h3>Hi <%=user.getName() %></h3>
    <strong>Your Email</strong>: <%=user.getEmail() %><br>
    <strong>Your Country</strong>: <%=user.getCountry() %><br>
    <br>
    <form action="Logout" method="post">
    <input type="submit" value="Logout" >
    </form>
    </body>
    </html>

【问题讨论】:

***.com/questions/3177733/… 【参考方案1】:

这违反了面向对象编程的第一个SOLID 设计原则,该原则规定每个类应该有一个单一的职责。 JSP 被编译成类,因此它认为 JSP 也应该有单一的职责。这个简单的玩具 JSP 页面负责:

    打印 HTML 连接到数据库 查询数据库 处理数据库错误 使用数据库中的数据填充其他 Java 对象

此外,JSTL 是帮助开发人员避免做您在此处所做的事情的多种技术之一——在他们的 JSP 文件中编写 Java 代码。这是 1990 年代末和 2000 年代初的常见做法,但对于业余项目以外的任何事情,这都被认为是不好的做法。

【讨论】:

感谢您的回答,通过阅读您的回答,我只能弄清楚使用 JSP 中截断的 java 代码是较旧的技术,而 JSTL 是正在遵循的最新趋势,所以在类似的行中可以请您解释更多关于 JSTL 的内容或提供任何参考资料,我可以在其中阅读更多 JSTL.... @arjunhitachi JSTL 几乎不是“最新趋势”(第一个版本是 2002 年的),就像 JSP 一样,它被认为是陈旧过时的。而且JSTL是和JSP关联的,不是说用JSTL就不用JSP,要用JSP就真的应该用JSTL。 好的,非常感谢...最后一个问题,您的最新回答说 JSP 和 JSTL 都不是新的,那么我应该去哪个新市场呢?我正在尝试学习 MVC 和 Struts……我应该为哪些新技术而努力,可能需要多长时间? 我建议使用 Spring Boot、Spring Web MVC 和 Thymeleaf 作为一个很好的起点。您可以在此处使用 Spring 初始化程序配置工作应用程序模板:start.spring.io JSP 已替换为 JSF(Java 服务器端)。 Spring MVC 是一种替代技术,但它仍然需要 Thymeleaf 甚至 JSP 用于表示(视图)层。

以上是关于为啥要使用 JSTL?当我们在 JSP 文件中使用带有连接字符串的数据库连接来获取从 servlet 发送的数据时会有啥危害[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 JSP 中需要 pageContext?

JSP中常用JSTL用法

EL表达式与JSTL

当属性无效时,我可以在自定义 JSP 标记中使用 JSTL 引发异常吗?

JSP标准标签库:JSTL

JSP标准标签库:JSTL