JAVA Web 开发

ops/2025/2/5 10:40:00/

Java Web开发是基于Java语言的Web应用开发方式,主要用于构建动态网站和Web应用程序。以下是关于Java Web开发的一些基本代码示例和说明,涵盖从简单的Servlet到使用框架(如Spring Boot)的开发方式。

一、基于Servlet的Java Web开发

Servlet是Java Web开发的基础,它是一个运行在服务器端的Java程序,用于处理客户端的请求并返回响应。

1. 创建一个简单的Servlet

以下是一个简单的Servlet示例,用于处理HTTP请求并返回一个简单的HTML页面。

步骤 1:创建Servlet类

java复制

import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;public class HelloWorldServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");response.getWriter().println("<html><body>");response.getWriter().println("<h1>Hello, World!</h1>");response.getWriter().println("</body></html>");}
}

步骤 2:配置Servlet(在web.xml中)

xml复制

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class>HelloWorldServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>

运行方式

  • 将项目打包为WAR文件并部署到Servlet容器(如Apache Tomcat)。

  • 访问http://localhost:8080/your-app-context/hello,即可看到“Hello, World!”的页面。

二、基于Spring Boot的Java Web开发

Spring Boot是一个基于Spring框架的快速开发框架,它简化了Spring应用的初始搭建以及开发过程。

1. 创建一个Spring Boot项目

可以通过Spring Initializr(https://start.spring.io/)快速生成一个Spring Boot项目,选择依赖项如“Spring Web”。

2. 创建一个Controller

以下是一个简单的Spring Boot Controller示例,用于处理HTTP请求并返回响应。

java复制

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloWorldController {@GetMapping("/hello")public String hello() {return "<h1>Hello, World!</h1>";}
}
3. 配置应用

Spring Boot的默认配置文件是application.propertiesapplication.yml,通常放在src/main/resources目录下。例如:

properties复制

server.port=8080
4. 启动应用

在Spring Boot项目中,通常有一个主类,如Application.java,用于启动应用:

java复制

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

运行方式

  • 运行Application类的main方法。

  • 访问http://localhost:8080/hello,即可看到“Hello, World!”的页面。

三、使用JSP和JSTL

JSP(JavaServer Pages)是一种动态网页技术,用于生成HTML页面。JSTL(JavaServer Pages Standard Tag Library)是一个标准的标签库,用于简化JSP开发。

1. 创建一个JSP页面

以下是一个简单的JSP页面示例,用于显示用户输入的数据。

hello.jsp

jsp复制

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Hello</title>
</head>
<body>
<h1>Hello, ${name}</h1>
</body>
</html>
2. 创建一个Servlet来处理请求并转发到JSP

java复制

import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String name = request.getParameter("name");request.setAttribute("name", name);RequestDispatcher dispatcher = request.getRequestDispatcher("/hello.jsp");dispatcher.forward(request, response);}
}

配置Servlet(在web.xml中)

xml复制

<servlet><servlet-name>HelloServlet</servlet-name><servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern>
</servlet-mapping>

运行方式

  • 访问http://localhost:8080/your-app-context/hello?name=Kimi,页面会显示“Hello, Kimi”。

四、使用Thymeleaf模板引擎

Thymeleaf是一个现代的模板引擎,用于生成HTML页面,支持HTML5语法。

1. 添加依赖(在pom.xml中)

xml复制

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2. 创建一个Thymeleaf模板

以下是一个简单的Thymeleaf模板示例,用于显示用户输入的数据。

hello.html

HTML复制

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head><title>Hello</title>
</head>
<body>
<h1 th:text="'Hello, ' + ${name}"></h1>
</body>
</html>
3. 创建一个Controller

java复制

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;@Controller
public class HelloWorldController {@GetMapping("/hello")public String hello(@RequestParam(name = "name", defaultValue = "Guest") String name, Model model) {model.addAttribute("name", name);return "hello";}
}

运行方式

  • 运行Spring Boot应用。

  • 访问http://localhost:8080/hello?name=Kimi,页面会显示“Hello, Kimi”。

总结

以上是Java Web开发的一些基本代码示例,涵盖了从传统的Servlet到现代的Spring Boot框架,以及模板引擎(如JSP和Thymeleaf)的使用。根据实际需求,可以选择合适的开发方式和技术栈。


http://www.ppmy.cn/ops/155838.html

相关文章

一元函数微积分的几何应用:二维平面光滑曲线的曲率公式

文章目录 前言曲率和曲率半径的定义曲率计算公式参数方程形式直角坐标显式方程形式极坐标形式向量形式 前言 本文将介绍二维平面光滑曲线的曲率定义以及不同形式的曲率及曲率半径公式的推导。 曲率和曲率半径的定义 &#xff08;关于二维平面光滑曲线的定义以及弧长公式请参…

【数据结构】(4) 线性表 List

一、什么是线性表 线性表就是 n 个相同类型元素的有限序列&#xff0c;每一个元素只有一个前驱和后继&#xff08;除了第一个和最后一个元素&#xff09;。 数据结构中&#xff0c;常见的线性表有&#xff1a;顺序表、链表、栈、队列。 二、什么是 List List 是 Java 中的线性…

为什么命令“echo -e “\033[9;0]“ > /dev/tty0“能控制开发板上的LCD不熄屏?

为什么命令"echo -e “\033[9;0]” > /dev/tty0"能控制开发板上的LCD不熄屏&#xff1f; 在回答这个问题前请先阅读我之前写的与tty和终端有关的博文 https://blog.csdn.net/wenhao_ir/article/details/145431655 然后再来看这条命令的解释就要容易些了。 这条…

前端知识速记--HTML篇:src和href

前端知识速记–HTML篇&#xff1a;src和href 一、属性概述 1.1 src属性 src&#xff08;source的缩写&#xff09;属性用于指定外部资源的来源&#xff0c;通常用于嵌入媒体内容或脚本文件。它告知浏览器去哪个地址加载相应的资源。使用src时&#xff0c;浏览器在解析到该元…

【算法设计与分析】实验5:贪心算法—装载及背包问题

目录 一、实验目的 二、实验环境 三、实验内容 四、核心代码 五、记录与处理 六、思考与总结 七、完整报告和成果文件提取链接 一、实验目的 掌握贪心算法求解问题的思想&#xff1b;针对不同问题&#xff0c;会利用贪心算法进行问题建模、求解以及时间复杂度分析&#x…

deepseek+vscode自动化测试脚本生成

近几日Deepseek大火,我这里也尝试了一下,确实很强。而目前vscode的AI toolkit插件也已经集成了deepseek R1,这里就介绍下在vscode中利用deepseek帮助我们完成自动化测试脚本的实践分享 安装AI ToolKit并启用Deepseek 微软官方提供了一个针对AI辅助的插件,也就是 AI Toolk…

华为小米vivo向上,苹果荣耀OPPO向下

日前&#xff0c;Counterpoint发布的手机销量月度报告显示&#xff0c;中国智能手机销量在2024年第四季度同比下降3.2%&#xff0c;成为2024年唯一出现同比下滑的季度。而对于各大智能手机品牌来说&#xff0c;他们的市场份额和格局也在悄然发生变化。 华为逆势向上 在2024年第…

【Elasticsearch】allow_no_indices

- **allow_no_indices 参数的作用**&#xff1a; 该参数用于控制当请求的目标索引&#xff08;通过通配符、别名或 _all 指定&#xff09;不存在或已关闭时&#xff0c;Elasticsearch 的行为。 - **默认行为**&#xff1a; 如果未显式设置该参数&#xff0c;默认值为 …