使用GlassFish

时间:2017-05-22 12:42:00

标签: java html jsp servlets glassfish

这是我第一次尝试与Java进行HTML交互。我理解我需要使用Java servlet和HTML索引。我在当地的GlassFish 4服务器上这样做。

我想要的是我的Java EE(Eclipse v4.5(Mars))项目的简单用户输入。我不肯定如何做到这一点。我已经看了教程并阅读了多个指南,但没有一个明确地解释了这种互动。 (这就是为什么我知道我需要一个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新手。

我正在寻找答案:

  1. 我做了什么错了? (当我点击提交按钮时,我收到404错误)

  2. 如何将输入转换为以字符串形式呈现的Java变量?

  3. 现在我只使用一个servlet,因为我只需要从单个页面访问单个用户输入。我不理解这个servlet映射以及我应该,但我找不到有关如何映射的信息。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您需要在部署描述符(web.xml)中添加servlet映射

    <servlet-mapping>
        <servlet-name>GetUserInputServlet</servlet-name>
        <url-pattern>GetUserInputServlet</url-pattern>
   </servlet-mapping>

这意味着无论何时转到URL GetUserInputServlet,控件都将转移到名为GetUserInputServlet的servlet。

答案 1 :(得分:1)

在from动作中,您只需要添加servlet名称,并且输入类型名称在两个地方都必须相同 例 在HTML中

在servlet中

String abc = request.getparameter(&#34; abc&#34;);

如果没有使用web.xml,那么在servlet类名之前也可以在servlet中使用注释,如

@WebServlet