Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets Eclipse中的Servlet:请求的资源[/Register/]不可用_Servlets_Http Status Code 404 - Fatal编程技术网

Servlets Eclipse中的Servlet:请求的资源[/Register/]不可用

Servlets Eclipse中的Servlet:请求的资源[/Register/]不可用,servlets,http-status-code-404,Servlets,Http Status Code 404,确切错误:请求的资源[/Register/]不可用。说明源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式 我正在使用tomcat和Eclipse 代码如下: RegisterDao.java import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class RegisterDao

确切错误:请求的资源[/Register/]不可用。说明源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式

我正在使用tomcat和Eclipse

代码如下:

RegisterDao.java

import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class RegisterDao {
    
    private String dbUrl = "jdbc:mysql://localhost:3306/explorecalifornia";
    private String dbUname = "dbuser";
    private String dbPassword = "dbpassword";
    private String dbDriver = "com.mysql.cj.jdbc.Driver";
    
    public void loadDriver(String dbDriver)
    {
        try {
            Class.forName(dbDriver);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public Connection getConnection()
    {
        Connection con = null;
        try {
            con = DriverManager.getConnection(dbUrl, dbUname, dbPassword);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return con;
    }
    
    
    public String insert(Member member)
    {
        loadDriver(dbDriver);
        Connection con = getConnection();
        String result = "Data entered successfully";
        String sql = "insert into member values(?,?,?,?)";
        
        PreparedStatement ps;
        try {
        ps = con.prepareStatement(sql);
        ps.setString(1, member.getUname());
        ps.setString(2, member.getPassword());
        ps.setString(3, member.getEmail());
        ps.setString(4, member.getPhone());
        ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            result = "Data not entered";
        }
        return result;
    }

}

Register.java

import java.io.IOException;
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 Register extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Register() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        String uname = request.getParameter("uname");
        String password = request.getParameter("password");
        String email = request.getParameter("email");
        String phone = request.getParameter("phone");
        
        Member member = new Member(uname, password, email, phone);
        
        RegisterDao rDao = new RegisterDao();
        String result = rDao.insert(member);
        response.getWriter().print(result);
        
    }

}

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Registration</display-name>
  <welcome-file-list>
    <welcome-file>memberRegistration.jsp</welcome-file>
    
  </welcome-file-list>
</web-app>


登记处
memberRegistration.jsp
和memberRegistration.jsp


  
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="memberRegistration" method="post">
<table>
<tr><td>User Name: </td><td><input type="text" name="uname"></td></tr>
<tr><td>Password: </td><td><input type="password" name="password"></td></tr>
<tr><td>Email: </td><td><input type="text" name="email"></td></tr>
<tr><td>phone: </td><td><input type="text" name="phone"></td></tr>
<tr><td></td><td><input type="submit" value="register"></td></tr>
</table>
</form>
</body>
</html>


在此处插入标题
用户名:
密码:
电邮:
电话:

需要将servlet类放在java包中。您应该始终将公开可重用的Java类放在包中,否则它们对包中的类(例如服务器本身)是不可见的。

您的操作名称在jsp文件中是否正确。i、 这是“注册”而不是“会员注册”吗?你能提到文件的包结构吗?我刚刚尝试将jsp中的操作更改为memberRegistration,但没有更改任何内容它应该是“Register”-你能告诉我java类放置在哪个包名下吗?它们不在包中../default/src添加为答案,有效吗?它们现在在一个包中,它仍然说找不到登记册