在Ubuntu上使用JSP(Java Server Pages)来创建和调用RESTful API,你需要遵循以下步骤:
首先,确保你的Ubuntu系统上安装了Java Development Kit (JDK) 和 Apache Tomcat。
sudo apt update
sudo apt install openjdk-11-jdk
sudo apt install tomcat9
你可以使用Eclipse IDE或者命令行工具来创建一个Java Web项目。
File > New > Dynamic Web Project
。Finish
。mkdir -p myapp/src/main/java/com/myapp
mkdir -p myapp/src/main/webapp/WEB-INF
mkdir -p myapp/src/main/webapp/WEB-INF/classes
mkdir -p myapp/src/main/webapp/WEB-INF/lib
echo "<%@ page contentType=\"text/html;charset=UTF-8\" language=\"java\" %>" > myapp/src/main/webapp/index.jsp
echo "<html><body>Hello, World!</body></html>" >> myapp/src/main/webapp/index.jsp
web.xml
文件。cat <<EOF > myapp/src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
EOF
你可以使用JAX-RS(Java API for RESTful Web Services)来创建RESTful服务。
如果你使用Maven,可以在pom.xml
文件中添加以下依赖:
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.34</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>2.34</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.34</version>
</dependency>
</dependencies>
package com.myapp;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/api")
public class MyResource {
@GET
@Path("/hello")
@Produces(MediaType.TEXT_PLAIN)
public String sayHello() {
return "Hello, World!";
}
}
在web.xml
中添加Jersey Servlet配置。
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.myapp.MyApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
创建MyApplication
类:
package com.myapp;
import org.glassfish.jersey.server.ResourceConfig;
public class MyApplication extends ResourceConfig {
public MyApplication() {
packages("com.myapp");
}
}
将你的项目打包成WAR文件,并部署到Tomcat服务器。
cd myapp
mvn package
将生成的myapp.war
文件复制到Tomcat的webapps
目录。
sudo cp target/myapp.war /var/lib/tomcat9/webapps/
重启Tomcat服务器。
sudo systemctl restart tomcat9
打开浏览器或使用工具(如Postman)访问http://<your-ubuntu-ip>:8080/myapp/api/hello
,你应该能看到响应Hello, World!
。
这样,你就成功在Ubuntu上使用JSP创建了一个简单的RESTful API。