当前位置:首页 > 后端开发 > 正文

JSP页面如何写Java代码?

在 JSP页面中可直接使用` 标签嵌入Java代码片段, 输出表达式结果,`声明成员变量或方法,但现代开发推荐使用JSTL/EL替代脚本以减少耦合。

JSP页面中直接编写Java代码主要通过脚本片段(Scriptlets)实现,但需注意现代开发中已不推荐过度使用(维护困难且不符合MVC规范),以下是具体方法和注意事项:


JSP中嵌入Java代码的3种方式

  1. 脚本片段(Scriptlets)

    用 <% %> 包裹Java代码,直接写入逻辑:

    <% // 示例:循环输出数字 for(int i=1; i<=5; i++) { out.print("数字: " + i + "<br>"); } // 获取请求参数 String username = request.getParameter("user"); if(username != null) { out.print("欢迎, " + username); } %>
  2. 声明(Declarations)

    用 <%! %> 定义成员变量或方法(少用):

    JSP页面如何写Java代码? 第1张

    <%! private int count = 0; // 成员变量 public String formatDate(Date date) { return new SimpleDateFormat("yyyy-MM-dd").format(date); } %>
  3. 表达式(Expressions)

    用 <%= %> 直接输出变量或方法返回值:

    当前时间: <%= new java.util.Date() %> 用户IP: <%= request.getRemoteAddr() %>


操作示例:读取数据并展示

<%@ page import="java.util.List, java.util.ArrayList" %> <html> <body> <% // 创建列表并添加数据 List<String> items = new ArrayList<>(); items.add("Java"); items.add("JSP"); items.add("Servlet"); %> <h3>技术列表:</h3> <ul> <% for(String item : items) { %> <li><%= item %></li> <% } %> </ul> </body> </html>

输出效果:

JSP页面如何写Java代码? 第2张

  • Java
  • JSP
  • Servlet


重要注意事项

  1. 避免滥用脚本片段

    • 过度使用会导致JSP混杂HTML/Java代码,难以维护(俗称”Spaghetti Code”)。
    • 不符合现代MVC设计模式(业务逻辑应放在Servlet或Service层)。
  2. 安全问题

    • 直接输出用户输入需转义,防止XSS攻破: <%= request.getParameter("input").replaceAll("<", "&lt;") %>
  3. 替代方案(推荐)

    JSP页面如何写Java代码? 第3张

    • EL表达式:简化输出 ${name}
    • JSTL标签:通过 <c:forEach> 等标签处理循环/逻辑
    • MVC框架:使用Spring MVC等分离业务与视图


何时适合使用脚本片段?

仅限简单场景:

  • 快速原型测试
  • 小型项目
  • 输出调试信息(开发阶段)


虽然JSP支持直接嵌入Java代码,但最佳实践是避免使用脚本片段,优先采用EL表达式、JSTL或现代框架(如Spring MVC),保持代码可维护性和安全性,保留脚本片段仅用于遗留项目维护或极简需求。

引用说明参考Oracle官方JSP 2.3规范及《Head First Servlets and JSP》开发指南,遵循Java EE标准实现,技术要点已通过Tomcat 9+环境验证。

0