提交 ca6d9c46 编写于 作者: W wizardforcel

2020-06-19 15:05:43

上级 a9a98ee8
...@@ -278,4 +278,4 @@ Figure: Showing plain text in a browser ...@@ -278,4 +278,4 @@ Figure: Showing plain text in a browser
在本教程中,我们从 Java servlet 发送了文本数据。 在本教程中,我们从 Java servlet 发送了文本数据。
您可能也对以下相关教程感兴趣: [Java servlet 教程](/articles/javaservlet/)[Java servlet JSON 教程](/articles/javaservletjson/)[Java ServletConfig 教程](/articles/javaservletconfig/)[Java Servlet PDF 教程[](/articles/javaservletpdf/)[Java HttpServletMapping](/java/httpservletmapping/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/) 您可能也对以下相关教程感兴趣: [Java servlet 教程](/articles/javaservlet/)[Java servlet JSON 教程](/articles/javaservletjson/)[Java `ServletConfig`教程](/articles/javaservletconfig/)[Java Servlet PDF 教程](/articles/javaservletpdf/)[Java `HttpServletMapping`](/java/httpservletmapping/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/)
\ No newline at end of file \ No newline at end of file
...@@ -12,7 +12,7 @@ Servlet 是 Java 类,可响应特定类型的网络请求-最常见的是 HTTP ...@@ -12,7 +12,7 @@ Servlet 是 Java 类,可响应特定类型的网络请求-最常见的是 HTTP
## JSON 格式 ## JSON 格式
JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。 人类很容易读写,机器也很容易解析和生成。 JSON 的官方 Internet 媒体类型为`application/json`。 JSON 文件扩展名是`.json` JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。 人类很容易读写,机器也很容易解析和生成。 JSON 的官方互联网媒体类型为`application/json`。 JSON 文件扩展名是`.json`
## Java Servlet JSON 应用 ## Java Servlet JSON 应用
......
...@@ -148,4 +148,4 @@ JSP 文件具有`header`隐式对象,该对象是标头名称及其值的映 ...@@ -148,4 +148,4 @@ JSP 文件具有`header`隐式对象,该对象是标头名称及其值的映
在本教程中,我们使用了 HTTP 标头字段。 在本教程中,我们使用了 HTTP 标头字段。
您可能也对以下相关教程感兴趣: [Java RequestDispatcher](/java/requestdispatcher/)[Java servlet 复选框教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Servlet FreeMarker JdbcTemplate 教程](/articles/servletfreemarker/)[Spring Boot 中的服务图像文件](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery DatePicker 教程](/articles/jquerydatepicker/)[Stripes 教程](/java/stripes/) 您可能也对以下相关教程感兴趣: [Java `RequestDispatcher`](/java/requestdispatcher/)[Java servlet 复选框教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Servlet FreeMarker `JdbcTemplate`教程](/articles/servletfreemarker/)[Spring Boot 中的服务图像文件](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery `DatePicker`教程](/articles/jquerydatepicker/)[Stripes 教程](/java/stripes/)
\ No newline at end of file \ No newline at end of file
...@@ -320,7 +320,7 @@ params.keySet().stream().forEach(key -> { ...@@ -320,7 +320,7 @@ params.keySet().stream().forEach(key -> {
``` ```
我们需要将请求参数变成请求属性。 如果请求的属性不为 null 或为空,则将其设置为该属性。 这些属性可供 FreeMarker 模板引擎处理。 我们需要将请求参数变成请求属性。 如果请求的属性不为`null`或为空,则将其设置为该属性。 这些属性可供 FreeMarker 模板引擎处理。
```java ```java
chain.doFilter(request, response); chain.doFilter(request, response);
...@@ -442,7 +442,7 @@ dispatcher.forward(request, response); ...@@ -442,7 +442,7 @@ dispatcher.forward(request, response);
``` ```
缺少值时,`!`用于提供默认值。 (请记住,我们没有为空或 null 的参数设置属性。)如果设置了`name`变量,则会显示它;否则,将显示它。 否则,显示“访客”。 缺少值时,`!`用于提供默认值。 (请记住,我们没有为空或`null`的参数设置属性。)如果设置了`name`变量,则会显示它;否则,将显示它。 否则,显示“访客”。
`unknown.ftl` `unknown.ftl`
...@@ -467,4 +467,4 @@ dispatcher.forward(request, response); ...@@ -467,4 +467,4 @@ dispatcher.forward(request, response);
在本教程中,我们已将数据从 HTML 表单发送到 Java servlet。 该表单包含一个输入标签和一个复选框。 请求参数已在 Java 过滤器中经过验证,并转换为请求属性,并发送到 FreeMarker 模板进行显示。 在本教程中,我们已将数据从 HTML 表单发送到 Java servlet。 该表单包含一个输入标签和一个复选框。 请求参数已在 Java 过滤器中经过验证,并转换为请求属性,并发送到 FreeMarker 模板进行显示。
您可能也对以下相关教程感兴趣: [Java RequestDispatcher](/java/requestdispatcher/)[Java Servlet 图像教程](/articles/javaservletimage/)[Servlet FreeMarker JdbcTemplate 教程](/articles/servletfreemarker/)[在 Spring 中提供图像文件 引导](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery DatePicker 教程](/articles/jquerydatepicker/)[Stripes 教程](/java/stripes/) 您可能也对以下相关教程感兴趣: [Java `RequestDispatcher`](/java/requestdispatcher/)[Java Servlet 图像教程](/articles/javaservletimage/)[Servlet FreeMarker `JdbcTemplate`教程](/articles/servletfreemarker/)[在 SpringBoot 中提供图像文件](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery `DatePicker`教程](/articles/jquerydatepicker/)[Stripes 教程](/java/stripes/)
\ No newline at end of file \ No newline at end of file
...@@ -238,6 +238,6 @@ $ mvn jetty:run ...@@ -238,6 +238,6 @@ $ mvn jetty:run
在 Java servlet 发送图像教程中,我们使用了 Java servlet 将图像发送到客户端。 在 Java servlet 发送图像教程中,我们使用了 Java servlet 将图像发送到客户端。
您可能也对以下相关教程感兴趣: [Java Servlet 复选框教程](/articles/javaservletcheckbox/)[Java Servlet PDF 教程](/articles/javaservletpdf/)[Java Servlet 图表教程](/articles/javaservletchart/)[Servlet FreeMarker JdbcTemplate 教程](/articles/servletfreemarker/)[在 Spring Boot 中提供图像文件](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery DatePicker 教程](/articles/jquerydatepicker/) 您可能也对以下相关教程感兴趣: [Java Servlet 复选框教程](/articles/javaservletcheckbox/)[Java Servlet PDF 教程](/articles/javaservletpdf/)[Java Servlet 图表教程](/articles/javaservletchart/)[Servlet FreeMarker `JdbcTemplate`教程](/articles/servletfreemarker/)[在 Spring Boot 中提供图像文件](/articles/springbootserveimage/)[Java 教程](/lang/java/)[jQuery `DatePicker`教程](/articles/jquerydatepicker/)
列出 [Java Servlet 教程](/all/#servlets) 列出 [Java Servlet 教程](/all/#servlets)
\ No newline at end of file
...@@ -371,7 +371,7 @@ $('#mybtn').click(function () { ...@@ -371,7 +371,7 @@ $('#mybtn').click(function () {
``` ```
我们为按钮添加一个 click 事件处理程序。 `$.getJSON()`方法使用 GET HTTP 请求从`GetCities` Servlet 加载 JSON 编码的数据。 使用`remove()`方法,我们删除以前的元素(如果存在)。 使用`$.each()`,我们遍历 JSON 数据并将其附加到`<li>`标签内部的输出中。 我们为按钮添加一个点击事件处理程序。 `$.getJSON()`方法使用 GET HTTP 请求从`GetCities` Servlet 加载 JSON 编码的数据。 使用`remove()`方法,我们删除以前的元素(如果存在)。 使用`$.each()`,我们遍历 JSON 数据并将其附加到`<li>`标签内部的输出中。
![Java Servlet JQuery list example](img/53fa8136184436c310af204a127b8dfd.jpg) ![Java Servlet JQuery list example](img/53fa8136184436c310af204a127b8dfd.jpg)
...@@ -381,4 +381,4 @@ Figure: Java Servlet JQuery list example ...@@ -381,4 +381,4 @@ Figure: Java Servlet JQuery list example
在本教程中,我们使用了 JQuery 从 Java servlet 获取 JSON 数据并构建 HTML 列表。 在本教程中,我们使用了 JQuery 从 Java servlet 获取 JSON 数据并构建 HTML 列表。
您可能也对以下相关教程感兴趣: [Gson 教程](/java/gson/)[Java servlet JSON 教程](/articles/javaservletjson/)[从 Java Servlet 提供纯文本](/articles/javaservlettext/)[Java servlet 检查 盒子教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/) 您可能也对以下相关教程感兴趣: [Gson 教程](/java/gson/)[Java servlet JSON 教程](/articles/javaservletjson/)[从 Java Servlet 提供纯文本](/articles/javaservlettext/)[Java servlet 复选框教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/)
\ No newline at end of file \ No newline at end of file
# Servlet FreeMarker JdbcTemplate 教程-CRUD 操作 # Servlet FreeMarker `JdbcTemplate`教程 - CRUD 操作
> 原文: [http://zetcode.com/articles/servletfreemarker/](http://zetcode.com/articles/servletfreemarker/) > 原文: [http://zetcode.com/articles/servletfreemarker/](http://zetcode.com/articles/servletfreemarker/)
在本教程中,我们将创建一个具有基本 CRUD 操作的简单 Java Web 应用。 我们使用 FreeMarker 模板引擎,Servlet 技术和 JdbcTemplate 库。 MySQL 用于存储数据。 该应用最终部署在 Tomcat 服务器上。 在本教程中,我们将创建一个具有基本 CRUD 操作的简单 Java Web 应用。 我们使用 FreeMarker 模板引擎,Servlet 技术和`JdbcTemplate`库。 MySQL 用于存储数据。 该应用最终部署在 Tomcat 服务器上。
该教程的资源可从作者的 Github [存储库](https://github.com/janbodnar/ServletFreemarkerJdbcTemplate)中获得。 该教程的资源可从作者的 Github [存储库](https://github.com/janbodnar/ServletFreemarkerJdbcTemplate)中获得。
CRUD(创建,读取,更新和删除)是持久性存储的四个基本功能。 对于关系数据库,它们等效于 INSERT,SELECT,UPDATE 和 DELETE 语句。 CRUD(创建,读取,更新和删除)是持久性存储的四个基本功能。 对于关系数据库,它们等效于`INSERT``SELECT``UPDATE``DELETE`语句。
FreeMarker 是 Java 编程语言的流行模板引擎。 模板以 FreeMarker 模板语言(FTL)编写。 模板引擎将静态数据与动态数据结合起来以生成内容。 模板是内容的中间表示。 它指定如何产生输出。 FreeMarker 是 Java 编程语言的流行模板引擎。 模板以 FreeMarker 模板语言(FTL)编写。 模板引擎将静态数据与动态数据结合起来以生成内容。 模板是内容的中间表示。 它指定如何产生输出。
JDBCTemplate 是用于简化 JDBC 编程的 Spring 库。 它处理乏味且容易出错的底层细节,例如处理事务,清理资源以及正确处理异常。 它包含在 Spring 的 spring-jdbc 模块中。 `JDBCTemplate`是用于简化 JDBC 编程的 Spring 库。 它处理乏味且容易出错的底层细节,例如处理事务,清理资源以及正确处理异常。 它包含在 Spring 的 spring-jdbc 模块中。
## 管理用户 ## 管理用户
...@@ -165,7 +165,7 @@ mysql> CREATE TABLE Users(Id INTEGER PRIMARY KEY AUTO_INCREMENT, ...@@ -165,7 +165,7 @@ mysql> CREATE TABLE Users(Id INTEGER PRIMARY KEY AUTO_INCREMENT,
``` ```
`web.xml`文件中,我们设置了`FreemarkerServlet`,该文件用于处理 FreeMarker .ftl 文件。 `web.xml`文件中,我们设置了`FreemarkerServlet`,该文件用于处理 FreeMarker `.ftl`文件。
`User.java` `User.java`
...@@ -326,7 +326,7 @@ public class DatabaseService { ...@@ -326,7 +326,7 @@ public class DatabaseService {
``` ```
`DatabaseService`中,我们有利用 JDBCTemplate 库执行数据库操作的方法。 `DatabaseService`中,我们有利用`JDBCTemplate`库执行数据库操作的方法。
```java ```java
public static User getUserById(Long id) { public static User getUserById(Long id) {
...@@ -508,7 +508,7 @@ if (DELETE_ACTION.equals(action)) { ...@@ -508,7 +508,7 @@ if (DELETE_ACTION.equals(action)) {
``` ```
收到删除操作后,我们从请求中找到 ID,然后调用`DatabaseService's` `deleteUser()`方法。 然后选择一个视图。 收到删除操作后,我们从请求中找到 ID,然后调用`DatabaseService``deleteUser()`方法。 然后选择一个视图。
```java ```java
} else if (UPDATE_ACTION.equals(action)) { } else if (UPDATE_ACTION.equals(action)) {
...@@ -827,4 +827,4 @@ Figure: Users web application ...@@ -827,4 +827,4 @@ Figure: Users web application
在上面的屏幕截图中,我们可以看到用户列表。 该应用部署在 NetBeans 内置的 Tomcat 服务器上,该服务器正在侦听端口 8084。 在上面的屏幕截图中,我们可以看到用户列表。 该应用部署在 NetBeans 内置的 Tomcat 服务器上,该服务器正在侦听端口 8084。
在本教程中,我们创建了一个执行 CRUD 操作的 Java Web 应用。 它使用了 FreeMarker,Servlet 和 JDBCTemplate。 您可能也对相关教程感兴趣: [JdbcTemplate 教程](/db/jdbctemplate/)[FreeMarker 教程](/java/freemarker/)[Java 教程](/lang/java/)[游戏入门](/java/play/)[Spark 简介](/java/spark/)[条纹简介](/java/stripes/) 在本教程中,我们创建了一个执行 CRUD 操作的 Java Web 应用。 它使用了 FreeMarker,Servlet 和`JDBCTemplate`。 您可能也对相关教程感兴趣: [`JdbcTemplate`教程](/db/jdbctemplate/)[FreeMarker 教程](/java/freemarker/)[Java 教程](/lang/java/)[游戏入门](/java/play/)[Spark 简介](/java/spark/)[Strips 简介](/java/stripes/)
\ No newline at end of file \ No newline at end of file
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
> 原文: [http://zetcode.com/articles/jqueryautocomplete/](http://zetcode.com/articles/jqueryautocomplete/) > 原文: [http://zetcode.com/articles/jqueryautocomplete/](http://zetcode.com/articles/jqueryautocomplete/)
在 jQuery Autocomplete 教程中,我们展示了如何使用 jQuery Autocomplete 组件。 自动补全组件显示来自 Java servlet 的过滤数据。 作者的 Github [信息库](https://github.com/janbodnar/jQuery-Autocomple)中提供了本教程的源代码。 在 jQuery 自动补全教程中,我们展示了如何使用 jQuery 自动补全组件。 自动补全组件显示来自 Java servlet 的过滤数据。 作者的 Github [信息库](https://github.com/janbodnar/jQuery-Autocomple)中提供了本教程的源代码。
jQuery 是一个快速,小型且功能丰富的 JavaScript 库。 通过易于使用的 API(可在多种浏览器中使用),它使 HTML 文档的遍历和操作,事件处理,动画和 Ajax 变得更加简单。 jQuery UI 是在 jQuery 库顶部构建的一组用户界面小部件,效果,交互作用和主题。 jQuery 是一个快速,小型且功能丰富的 JavaScript 库。 通过易于使用的 API(可在多种浏览器中使用),它使 HTML 文档的遍历和操作,事件处理,动画和 Ajax 变得更加简单。 jQuery UI 是在 jQuery 库顶部构建的一组用户界面小部件,效果,交互作用和主题。
`Autocomplete``jQuery UI`库的 UI 小部件之一。 当我们键入该字段时,它会提供建议。 `Autocomplete``jQuery UI`库的 UI 小部件之一。 当我们键入该字段时,它会提供建议。
JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。 人类很容易读写,机器也很容易解析和生成。 JSON 的官方 Internet 媒体类型为`application/json`。 JSON 文件扩展名是`.json`。 Java 中有许多库可以处理 JSON 数据格式; 其中一位是杰克逊 JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。 人类很容易读写,机器也很容易解析和生成。 JSON 的官方互联网媒体类型为`application/json`。 JSON 文件扩展名是`.json`。 Java 中有许多库可以处理 JSON 数据格式; 其中一位是 Jackson
## jQuery 自动补全示例 ## jQuery 自动补全示例
...@@ -322,7 +322,7 @@ public class ReadBugs { ...@@ -322,7 +322,7 @@ public class ReadBugs {
``` ```
`readAll()`方法从 CSV 文件读取所有错误。 它使用 Opencsv 库来完成这项工作。 它将列表错误名称返回给调用者。 `readAll()`方法从 CSV 文件读取所有错误。 它使用 OpenCSV 库来完成这项工作。 它将列表错误名称返回给调用者。
```java ```java
InputStream is = context.getResourceAsStream("/WEB-INF/bugs.csv"); InputStream is = context.getResourceAsStream("/WEB-INF/bugs.csv");
...@@ -396,6 +396,6 @@ try { ...@@ -396,6 +396,6 @@ try {
Figure: jQuery Autocomplete Figure: jQuery Autocomplete
在本教程中,我们在 Java Web 应用中使用了 jQuery Autocomplete。 自动补全组件正在显示有关可用错误名称的建议。 在我们的项目中,我们利用了 Jackson 和 Opencsv 库。 在本教程中,我们在 Java Web 应用中使用了 jQuery 自动补全。 自动补全组件正在显示有关可用错误名称的建议。 在我们的项目中,我们利用了 Jackson 和 Opencsv 库。
您可能也对以下相关教程感兴趣: [Java 教程](/lang/java/)[使用 jsGrid 教程](/articles/jsgridservlet/)[Opencsv 教程](/articles/opencsv/)[在 JSP 和 PHP 中使用 jQuery DatePicker [](/articles/jquerydatepicker/) 您可能也对以下相关教程感兴趣: [Java 教程](/lang/java/)[使用 jsGrid 教程](/articles/jsgridservlet/)[OpenCSV 教程](/articles/opencsv/)[在 JSP 和 PHP 中使用 jQuery `DatePicker`](/articles/jquerydatepicker/)
\ No newline at end of file \ No newline at end of file
...@@ -441,4 +441,4 @@ return bout; ...@@ -441,4 +441,4 @@ return bout;
在本教程中,我们从 Java servlet 发送了 PDF 数据。 在本教程中,我们从 Java servlet 发送了 PDF 数据。
您可能也对以下相关教程感兴趣: [Java RequestDispatcher](/java/requestdispatcher/)[Java Servlet 图表教程](/articles/javaservletchart/)[从 Java Servlet 提供纯文本](/articles/javaservlettext/)[Java Servlet 检查 盒子教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/) 您可能也对以下相关教程感兴趣: [Java `RequestDispatcher`](/java/requestdispatcher/)[Java Servlet 图表教程](/articles/javaservletchart/)[从 Java Servlet 提供纯文本](/articles/javaservlettext/)[Java Servlet 检查 盒子教程](/articles/javaservletcheckbox/)[Java servlet 图像教程](/articles/javaservletimage/)[Java Servlet HTTP 标头](/articles/javaservlethttpheaders/)[Java 教程](/lang/java/)
\ No newline at end of file \ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
> 原文: [http://zetcode.com/articles/warcsv/](http://zetcode.com/articles/warcsv/) > 原文: [http://zetcode.com/articles/warcsv/](http://zetcode.com/articles/warcsv/)
在本教程中,我们从 WEB-INF 目录中的 CSV 文件读取数据。 我们使用 servlet,JSP 文件和 JSTL 库。 Web 应用已部署在 Jetty 上。 Opencsv 库用于读取 CSV 数据。 在本教程中,我们从`WEB-INF`目录中的 CSV 文件读取数据。 我们使用 servlet,JSP 文件和 JSTL 库。 Web 应用已部署在 Jetty 上。 OpenCSV 库用于读取 CSV 数据。
## CSV ## CSV
...@@ -275,7 +275,7 @@ strategy.setType(Country.class); ...@@ -275,7 +275,7 @@ strategy.setType(Country.class);
``` ```
我们使用 Opencsv`HeaderColumnNameMappingStrategy``Country` bean 映射到 CSV 文件中的行。 每行都转换为一个 bean。 映射是在`@CsvBindByName`注释的帮助下完成的。 我们使用 OpenCSV`HeaderColumnNameMappingStrategy``Country` bean 映射到 CSV 文件中的行。 每行都转换为一个 bean。 映射是在`@CsvBindByName`注释的帮助下完成的。
```java ```java
try (var br = new BufferedReader( try (var br = new BufferedReader(
...@@ -473,6 +473,6 @@ public class ReadCountries extends HttpServlet { ...@@ -473,6 +473,6 @@ public class ReadCountries extends HttpServlet {
在本教程中,我们展示了如何读取 WAR 文件中的 CSV 数据。 在本教程中,我们展示了如何读取 WAR 文件中的 CSV 数据。
您可能也对以下相关教程感兴趣: [Java 教程](/lang/java/)[Jersey 应用中的 Web URL](/articles/url/)[Java 验证教程](/java/validationfilter/)[Opencsv 教程[](/articles/opencsv/) 您可能也对以下相关教程感兴趣: [Java 教程](/lang/java/)[Jersey 应用中的 Web URL](/articles/url/)[Java 验证教程](/java/validationfilter/)[OpenCSV 教程](/articles/opencsv/)
列出[所有 Java servlet 教程](/all/#servlets) 列出[所有 Java servlet 教程](/all/#servlets)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册