首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >404错误(Servlet)

404错误(Servlet)
EN

Stack Overflow用户
提问于 2018-01-07 17:50:55
回答 1查看 94关注 0票数 0

我想编写我自己的JavaEE。我使用Linux和Glassfish 4作为App。我的Eclipse是氧气(EE-版本)。

我想检查一下我的顾客是否能登记。

我还没有包括CSS,所以它看起来可能有点无聊。:D

这些是我在Eclipse中的项目:

这是我的索引-HTML:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
   <link rel="stylesheet" href="css/styles.css">
   <title>Onlineshop</title>
</head>
<body>
    <header>
        <hgroup>
        <h1 class="title">Onlineshop</h1>
        </hgroup>
        <nav>
          <a href="index.html">Home</a>
          <a href="register.html">Registrieren</a>
          <a href="signin.html">Einloggen</a>
          <a href="sell.html">Verkaufen</a>
          <a href="search.html">Suchen</a>
        </nav>
</header>

<footer>
        Copyright
</footer>
</body>

"Registrieren“的意思是”注册“,"Einloggen”的意思是“登录”,"Verkaufen“的意思是”出售“,"Suchen”的意思是“搜索”。

这是在单击“Registrieren”之后显示的HTML站点:

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8"/>
<link rel="stylesheet" href="css/styles.css">
   <title>Onlineshop</title>
</head>
<body>
    <header>
        <hgroup>
        <h1 class="title">Onlineshop</h1>
        </hgroup>
        <nav>
          <a href="index.html">Home</a>
          <a href="register.html">Registrieren</a>
          <a href="signin.html">Einloggen</a>
          <a href="sell.html">Verkaufen</a>
          <a href="search.html">Suchen</a>
        </nav>
</header>
<form action="register" method="post">
<fieldset>
<legend>Registrieren</legend>
<table>
    <tbody>
    <tr>
        <th>
            <label for="email">Email:</label>
        </th>
        <td>
            <input 
                type="email" 
                name="email"
                size="40"
                maxlength="40"
                title="muster@beispiel.de"
                placeholder="E-Mail eingeben"
                pattern=".{6,40}" 
                required="required">
        </td>
    </tr>
    <tr>
        <th>
            <label for="password">
                Password:
            </label>
        </th>
        <td>
            <input 
                type="password" 
                name="password"
                size="10"
                maxlength="10"
                title="6-10 Zeichen"
                placeholder=
                    "Passwort eingeben"
                pattern=".{6,10}" 
                required="required">
        </td>
    </tr>
    <tr>
        <td/><td>
            <input type="submit">       
            <input type="reset">        
        </td>
    </tr>
</tbody>
</table>
</fieldset>
</form>

<footer>
        Copyright 
</footer>
</body>

这是我的Servlet:

代码语言:javascript
复制
package de.java2enterprise.onlineshop;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/register")
public class RegisterServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * Default constructor. 
 */
public RegisterServlet() {
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse    
  response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse 
 response) 
        throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");

    final String email = request.getParameter("email");
    final String password = request.getParameter("password");

    final PrintWriter out = response.getWriter();

    out.println("<!DOCTYPE html>");
    out.println("<html>");
    out.println("<body>");
    out.println("<br> Ihre Eingaben");
    out.println("<br> EMail: " + email);
    out.println("<br> EMail: " + password);
    out.println("</body>");
    out.println("</html>");

 }

}

我没有编写Web.xml,因为我只想处理注释。现在我有两个问题:

Servlet的所有导入都无法解决。但是为什么呢?我确实创建了一个,并将Webproject war分配给了应用程序。玻璃鱼被分配给,在Glassfish-Server上记录了Servlet,不是吗?

第二个问题是:为什么在输入EMail和在寄存器上输入密码之后,他不能在点击submit之后找到Servlet呢?是否与问题1有关?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-07 18:35:52

第一个问题-

Servlet的所有导入都无法解决。但是为什么呢?我确实创建了一个,并将Webproject war分配给了应用程序。玻璃鱼被分配给,在Glassfish-Server上记录了Servlet,不是吗?

我将eclipseJava-8Tomcat 8.5 web container结合使用,通过查看您的问题,我在eclipse中创建了一个新的dynamic web project,随后在您定义的包中创建了两个html文件index.htmlregister.html以及Servlet class RegisterServlet

做完所有的工作后,--我只是首先启动并停止了我的web容器服务器,然后创建了一个Right click on the project name, Go to menu Run As > Run on Server > Choose an existing server, there I choose the Tomcat 8.5 Server at localhost > Remove all other projects from list Configured instead the current one and pressed the Finish

前面我已经选择了,我已经选择了默认浏览器的步骤选项Window(Menu)>Web Browser>Chrome

在我的项目中的WebContent/WEB/目录中没有这样的web.xml配置文件。

因此,Tomcat 8.5 server将在chrome新选项卡中启动和显示index.html页面,出现Optionshop page,我选择了Registrieren链接,然后重定向到register.html,然后在那里插入电子邮件id和密码,然后按Enter键,servlet mapping在新页面中查看我的电子邮件id和密码,就是这样。

第二个问题-

为什么他在输入EMail并在寄存器上输入密码后单击submit就找不到Servlet了?是否与问题1有关?

我将@WebServlet更改为/RegisterServlet,在register.html中将表单开始标记替换为

代码语言:javascript
复制
<form name="register" method="POST" action="RegisterServlet">

Servlet类中,方法doGet(HttpServletRequest request, HttpServletResponse response)也丢失了,因此我创建了一个方法,并且我的Servlet类如下所示:

代码语言:javascript
复制
package de.java2enterprise.onlineshop;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public RegisterServlet() { }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException { }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");

        final String email = request.getParameter("email");
        final String password = request.getParameter("password");

        final PrintWriter out = response.getWriter();

        out.println("<!DOCTYPE html>");
        out.println("<html>");
        out.println("<body>");
        out.println("<br> Ihre Eingaben");
        out.println("<br> EMail: " + email);
        out.println("<br> EMail: " + password);
        out.println("</body>");
        out.println("</html>");

        out.close();
    }
}

希望这能帮到你,谢谢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48139947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档