JSP(JavaServer Pages)动态渲染
原理:在HTML中嵌入Java代码,服务器执行后生成纯HTML返回浏览器。
步骤:
- 创建JSP文件(如
index.jsp
):<%@ page contentType="text/html;charset=UTF-8" %> <html> <body> <h1>用户数据:</h1> <% // 调用Java方法 String data = com.example.DataService.getUserData(); %> <p><%= data %></p> <!-- 输出Java变量 --> </body> </html>
- 部署到Tomcat等Servlet容器,访问
http://localhost:8080/your-app/index.jsp
即可看到渲染结果。
适用场景:传统企业应用,需快速生成动态内容。
Servlet处理HTTP请求
原理:Servlet接收HTML表单提交的数据,Java处理后返回响应。
步骤:
- HTML表单发送数据:
<form action="/submit-form" method="post"> <input type="text" name="username"> <button>提交</button> </form>
- Java Servlet处理请求(
SubmitServlet.java
):@WebServlet("/submit-form") public class SubmitServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); // 获取表单数据 // 业务逻辑处理(如数据库操作) response.getWriter().write("处理结果:" + username); } }
特点:纯Java控制请求/响应流程,适合API开发。
RESTful API + AJAX(主流方案)
原理:前端通过JavaScript调用Java后端提供的REST API交换JSON数据。
步骤:
- Java创建REST接口(Spring Boot示例):
@RestController public class UserController { @GetMapping("/api/user") public User getUser() { return new User("John", 30); // 自动转为JSON } }
- HTML前端AJAX调用:
<script> fetch("/api/user") .then(response => response.json()) .then(data => { document.getElementById("result").innerText = data.name; }); </script> <div id="result"></div>
优势:前后端分离,适合现代SPA(单页应用)。
模板引擎(Thymeleaf/FreeMarker)
原理:在HTML模板中插入动态变量,Java填充数据后渲染。
步骤(Thymeleaf + Spring Boot):
- 引入依赖:
spring-boot-starter-thymeleaf
- 模板文件
src/resources/templates/user.html
:<html xmlns:th="http://www.thymeleaf.org"> <body> <h1 th:text="${user.name}">默认名称</h1> </body> </html>
- Java控制器传递数据:
@Controller public class WebController { @GetMapping("/profile") public String profile(Model model) { model.addAttribute("user", new User("Alice")); return "user"; // 渲染模板 } }
关键注意事项
- 安全性:
- 防XSS攻击:对用户输入进行转义(如JSP的
c:out
标签)。 - API认证:使用JWT或OAuth2保护REST接口。
- 防XSS攻击:对用户输入进行转义(如JSP的
- 性能优化:
- 静态资源(CSS/JS)与Java应用分离部署。
- 启用Gzip压缩减少数据传输量。
- 跨域问题:
- REST API需配置CORS(Spring Boot中
@CrossOrigin
注解)。
- REST API需配置CORS(Spring Boot中
总结建议
- 初学者:从Servlet/JSP入手理解基础原理。
- 正式项目:优先选择RESTful API(React/Vue等前端框架)或模板引擎(服务端渲染)。
- 性能要求高:结合异步技术(如WebSocket实时通信)。
引用说明参考Oracle官方Servlet文档、Spring Framework指南及Mozilla开发者网络(MDN)Web技术文档,实践代码遵循Apache 2.0开源协议,可在Tomcat 10+或Spring Boot 3+环境运行。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/34756.html