使用 GlassFish 获取从 HTML 到 Java servlet 的用户输入
Getting user input from HTML to Java servlet using GlassFish
这是我第一次尝试 HTML 与 Java 互动。我知道我需要使用 Java servlet 和 HTML 索引。我正在本地 GlassFish 4 服务器上执行此操作。
我想要的是对我的 Java EE (Eclipse v4.5 (Mars)) 项目的简单用户输入。我不确定如何做到这一点。我看过教程并阅读了多个指南,但 none 明确解释了交互。 (这就是为什么我知道我需要一个 servlet。)
到目前为止,这是我的设置,我不知道从这里到哪里去。
Java servelet
package servletPackage1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetUserInputServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
String userInput = req.getParameter("UserInput");
}
}
同样,我不确定这是否已正确设置,但如何从我的索引文件中获取输入?
这是我的 index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DSS</title>
</head>
<body>
<form action="DATASEARCH/GetUserInputServlet" method="get">
Search for details:<br>
<input type="text" name="text/plain" value="Enter search criteria">
<br>
<br><br>
<input type="submit" class="btn-success btn-md" style="margin-right:5px" id="T1" value="Submit">
</form>
</html>
我发现我需要部署描述符(web.xml 文件)。我已经创建了一个,但我在提交时仍然收到 404。 XML 如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>DATASEARCH</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>Index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
这将连接到一个更大的项目(已完成并且运行良好)以在数据库中进行搜索。我只需要通过 Web 应用程序获取用户输入。 HTML 也是新手。
我正在寻找的答案:
我做的有什么问题吗? (单击提交按钮时出现 404 错误)
如何将输入输入转换为字符串的 Java 变量?
现在我将只使用一个 servlet,因为我只需要从单个页面访问单个用户输入。我不太了解这个 servlet 映射,但我找不到有关如何映射的信息。任何帮助将不胜感激。
您需要在部署描述符中添加 servlet 映射 (web.xml)
<servlet-mapping>
<servlet-name>GetUserInputServlet</servlet-name>
<url-pattern>GetUserInputServlet</url-pattern>
</servlet-mapping>
这意味着无论何时您转到URL GetUserInputServlet
,控制权都会转移到名为GetUserInputServlet
.
的servlet
在 from action 中,您只需添加 servlet 名称,在输入类型名称中,两个地方必须相同
例子
在 html
在 servlet 中
字符串 abc=request.getparameter("abc");
如果不使用 web.xml,那么您还可以在 servlet class 名称之前使用 servlet 中的注释,例如
@webservlet
这是我第一次尝试 HTML 与 Java 互动。我知道我需要使用 Java servlet 和 HTML 索引。我正在本地 GlassFish 4 服务器上执行此操作。
我想要的是对我的 Java EE (Eclipse v4.5 (Mars)) 项目的简单用户输入。我不确定如何做到这一点。我看过教程并阅读了多个指南,但 none 明确解释了交互。 (这就是为什么我知道我需要一个 servlet。)
到目前为止,这是我的设置,我不知道从这里到哪里去。
Java servelet
package servletPackage1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class GetUserInputServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
String userInput = req.getParameter("UserInput");
}
}
同样,我不确定这是否已正确设置,但如何从我的索引文件中获取输入?
这是我的 index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>DSS</title>
</head>
<body>
<form action="DATASEARCH/GetUserInputServlet" method="get">
Search for details:<br>
<input type="text" name="text/plain" value="Enter search criteria">
<br>
<br><br>
<input type="submit" class="btn-success btn-md" style="margin-right:5px" id="T1" value="Submit">
</form>
</html>
我发现我需要部署描述符(web.xml 文件)。我已经创建了一个,但我在提交时仍然收到 404。 XML 如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>DATASEARCH</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>Index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
这将连接到一个更大的项目(已完成并且运行良好)以在数据库中进行搜索。我只需要通过 Web 应用程序获取用户输入。 HTML 也是新手。
我正在寻找的答案:
我做的有什么问题吗? (单击提交按钮时出现 404 错误)
如何将输入输入转换为字符串的 Java 变量?
现在我将只使用一个 servlet,因为我只需要从单个页面访问单个用户输入。我不太了解这个 servlet 映射,但我找不到有关如何映射的信息。任何帮助将不胜感激。
您需要在部署描述符中添加 servlet 映射 (web.xml)
<servlet-mapping>
<servlet-name>GetUserInputServlet</servlet-name>
<url-pattern>GetUserInputServlet</url-pattern>
</servlet-mapping>
这意味着无论何时您转到URL GetUserInputServlet
,控制权都会转移到名为GetUserInputServlet
.
在 from action 中,您只需添加 servlet 名称,在输入类型名称中,两个地方必须相同 例子 在 html
在 servlet 中
字符串 abc=request.getparameter("abc");
如果不使用 web.xml,那么您还可以在 servlet class 名称之前使用 servlet 中的注释,例如
@webservlet