如何在 Glassfish 上 运行 Tutorialpoint 的 Servlet Post 示例?
How to run Tutorialpoint's Servlet Post Example on Glassfish?
我开始学习 Java Servlet,因为很多人建议我先从 Servlet 开始,然后再转向 Spring 和其他 JavaEE 框架和技术。
Tutorialspoint 有很多示例,但我不能 运行 除了 Tomcat 之外的任何其他示例。我正在使用 Netbeans IDE、Maven 和 Glassfish。我如何使用这些软件包 运行 一个基本的 POST 示例?
Link 举例:
1.设置 pom.xml:
在 Netbeans IDE 中创建一个新的 Maven 项目。在pom.xml.
中将包装改为war
<packaging>war</packaging>
将此依赖项添加到 pom.xml 中的依赖项中。
这会将必要的 servlet classes 添加到 classpath.
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
设置maven-war-插件版本。使用 3.0.0 或更高版本,您不必创建 ServletRoot/WEB-INF/web.xml。如果跳过此步骤,则项目将在不配置 web.xml 的情况下编译。
我调用了 "ServletRoot" 这条路径:mavenproject/src/main/webapp
关于包目录结构的一个很好的解释可以在 3.1 中找到:
package structure
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</build>
2。放 index.html
在 mavenproject/src/main/webapp 中创建 index.html 并将此代码片段复制到那里。请注意,表单标记的 action 属性的值必须与您的 servlet 的 WebServlet 注释的值相匹配。在这种情况下,它将是:
@WebServlet("/postexample")
index.html:
<html>
<body>
<form action = "postexample" method = "POST">
First Name: <input type = "text" name = "first_name">
<br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
</body>
</html>
3。在您的包中创建一个新的 class。不要使用默认包。
我将它命名为 POSTExample。这是没有包声明的代码:
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
// Extend HttpServlet class
@WebServlet("/postexample")
public class POSTExample extends HttpServlet {
// Method to handle GET method request.
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Using GET Method to Read Form Data";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<ul>\n" +
" <li><b>First Name</b>: "
+ request.getParameter("first_name") + "\n" +
" <li><b>Last Name</b>: "
+ request.getParameter("last_name") + "\n" +
"</ul>\n" +
"</body>\n" +
"</html>"
);
}
// Method to handle POST method request.
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4.构建maven项目
在 Netbeans IDE 中,您有一个按钮。 Neteans也可以自动部署到glassfish,不过我没试过。因此,我将向您展示如何使用 glassfish 管理器手动部署它。
您可以在命令行中构建它。
mvn clean package
5.部署
打开命令行并使用此命令。它将启动 glassfish 服务器,并会记录很多。
asadmin start-domain --verbose
打开浏览器并输入此 URI。我假设您使用的是 glassfish 的默认设置。默认端口等...
在 "Common Tasks" 下您可以找到 "Applications"。点击它。然后单击部署。如果有的话,它在列出的应用程序之上。现在您必须输入您创建的 war 文件的位置。或者您可以拖放。它的位置是
mavenproject/target/yourwarfile.war
在 glassfish 管理器中单击“确定”之前,为 "context root" 输入一个简单的文本,例如 "myservlet"。你必须记住这一点。
如果一切顺利,您可以使用 link 在浏览器中 运行 示例:
http://localhost:8080/myservlet
在这种情况下,"myservlet" 是您在 glassfish 管理器中设置的上下文根。
我开始学习 Java Servlet,因为很多人建议我先从 Servlet 开始,然后再转向 Spring 和其他 JavaEE 框架和技术。 Tutorialspoint 有很多示例,但我不能 运行 除了 Tomcat 之外的任何其他示例。我正在使用 Netbeans IDE、Maven 和 Glassfish。我如何使用这些软件包 运行 一个基本的 POST 示例? Link 举例:
1.设置 pom.xml:
在 Netbeans IDE 中创建一个新的 Maven 项目。在pom.xml.
中将包装改为war<packaging>war</packaging>
将此依赖项添加到 pom.xml 中的依赖项中。 这会将必要的 servlet classes 添加到 classpath.
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
设置maven-war-插件版本。使用 3.0.0 或更高版本,您不必创建 ServletRoot/WEB-INF/web.xml。如果跳过此步骤,则项目将在不配置 web.xml 的情况下编译。 我调用了 "ServletRoot" 这条路径:mavenproject/src/main/webapp 关于包目录结构的一个很好的解释可以在 3.1 中找到: package structure
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</build>
2。放 index.html 在 mavenproject/src/main/webapp 中创建 index.html 并将此代码片段复制到那里。请注意,表单标记的 action 属性的值必须与您的 servlet 的 WebServlet 注释的值相匹配。在这种情况下,它将是:
@WebServlet("/postexample")
index.html:
<html>
<body>
<form action = "postexample" method = "POST">
First Name: <input type = "text" name = "first_name">
<br />
Last Name: <input type = "text" name = "last_name" />
<input type = "submit" value = "Submit" />
</form>
</body>
</html>
3。在您的包中创建一个新的 class。不要使用默认包。
我将它命名为 POSTExample。这是没有包声明的代码:
// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
// Extend HttpServlet class
@WebServlet("/postexample")
public class POSTExample extends HttpServlet {
// Method to handle GET method request.
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Set response content type
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Using GET Method to Read Form Data";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor = \"#f0f0f0\">\n" +
"<h1 align = \"center\">" + title + "</h1>\n" +
"<ul>\n" +
" <li><b>First Name</b>: "
+ request.getParameter("first_name") + "\n" +
" <li><b>Last Name</b>: "
+ request.getParameter("last_name") + "\n" +
"</ul>\n" +
"</body>\n" +
"</html>"
);
}
// Method to handle POST method request.
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4.构建maven项目 在 Netbeans IDE 中,您有一个按钮。 Neteans也可以自动部署到glassfish,不过我没试过。因此,我将向您展示如何使用 glassfish 管理器手动部署它。 您可以在命令行中构建它。
mvn clean package
5.部署 打开命令行并使用此命令。它将启动 glassfish 服务器,并会记录很多。
asadmin start-domain --verbose
打开浏览器并输入此 URI。我假设您使用的是 glassfish 的默认设置。默认端口等...
在 "Common Tasks" 下您可以找到 "Applications"。点击它。然后单击部署。如果有的话,它在列出的应用程序之上。现在您必须输入您创建的 war 文件的位置。或者您可以拖放。它的位置是 mavenproject/target/yourwarfile.war
在 glassfish 管理器中单击“确定”之前,为 "context root" 输入一个简单的文本,例如 "myservlet"。你必须记住这一点。 如果一切顺利,您可以使用 link 在浏览器中 运行 示例: http://localhost:8080/myservlet
在这种情况下,"myservlet" 是您在 glassfish 管理器中设置的上下文根。