【问题标题】:The requested resource is not available.请求的资源不可用。
【发布时间】:2015-05-26 18:39:24
【问题描述】:

我正在使用 JDBC 制作注册应用程序。但我收到了这个错误。我认为我的 java.bean 有问题,我的字段为空。

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <web-app
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"
 version="2.5">
 <servlet>
     <servlet-name>login</servlet-name>
     <servlet-class>com.pfa.Servlets.LoginServlet</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>login</servlet-name>
     <url-pattern>/loginServlet</url-pattern>
 </servlet-mapping>
 <servlet>
     <servlet-name>register</servlet-name>
     <servlet-class>com.pfa.Servlets.RegisterServlet</servlet-class>
 </servlet>

 <servlet-mapping>
     <servlet-name>register</servlet-name>
     <url-pattern>/registerServlet</url-pattern>
  </servlet-mapping>

 <welcome-file-list>
     <welcome-file>login.jsp</welcome-file>
 </welcome-file-list>
 </web-app>

用户.java

package com.pfa.bean;

public class User {

 private String uname,upass,uemail;  

  public String getUname() {  
     return uname;  
  }   

  public void setUname(String uname) {  
     this.uname = uname;  
  }  

  public String getUpass() {  
     return upass;  
  }  

  public void setUpass(String upass) {  
     this.upass = upass;  
  }  

    public String getUemail() {  
     return uemail;  
   }  

   public void setUemail(String uemail) {  
      this.uemail = uemail;  
       }  
 }

注册.Dao

  package com.pfa.Dao;
  import java.sql.DriverManager;
  import java.sql.ResultSet;
  import java.sql.SQLException;
  import javax.swing.JOptionPane;
  import com.mysql.jdbc.Connection;
  import com.mysql.jdbc.PreparedStatement;
  import com.mysql.jdbc.Statement;
  import com.pfa.bean.User;

  public class RegisterDao {
  public static int register(User u) throws ClassNotFoundException{  
    int status=0; 

    try{  
        Class.forName("com.mysql.jdbc.Driver");
            Connection conn = null;          
            conn = (Connection) DriverManager
                    .getConnection("jdbc:mysql://localhost:3306/form",    "root", "");
            Statement ps =  (Statement) conn
                    .createStatement();
            Statement ps1 = (Statement) conn
                    .createStatement();
            ResultSet res = ps
                    .executeQuery("Select * from user");
            // Process the result set
            boolean test = false;
            while (res.next()) {
                if ((res.getString("userName").equals(u.getUname()))
                        || (res.getString("password")
                                .equals(u.getUpass()))||    (res.getString("email").equals(u.getUemail()))) {
                    test = true;
                    status=0;
                     System.out.print("<p style=\"color:red\">Y ou ve a  lreadyy Logged in</p>");  
                }
            }

            if (!test) {
                    String query = "insert into user"
                            + " (userName ,password,email)"
                            + " values ('" + u.getUname() + "','"
                            + u.getUpass() + "','" +u.getUemail()+")";

                    ps1.executeUpdate(query);
                    System.out.println("Insert complete");
                status=1;
            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();

        }

      return status;  
        }  
  }

RegisterServlet.java

 package com.pfa.Servlets;
 import java.io.IOException;
 import java.io.PrintWriter;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import com.pfa.Dao.LoginDao;
 import com.pfa.Dao.RegisterDao;
 import com.pfa.bean.User;
  public class RegisterServlet extends HttpServlet {
  private static final long serialVersionUID = 102831973239L;
  public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        String n = request.getParameter("username");
       //String p = request.getParameter("userpass");
       //String q = request.getParameter("useremail");
       HttpSession session = request.getSession(false);
      if (session != null)
        session.setAttribute("name",n);
      User u = new User();
      try {
        if (RegisterDao.register(u)!=0) {
            RequestDispatcher rd =      request.getRequestDispatcher("welcome.jsp");
            rd.forward(request, response);
        } else {
            out.print("<p style=\"color:red\">Sorry u ve already Logged  in</p>");
            RequestDispatcher rd =  request.getRequestDispatcher("register.jsp");
            rd.include(request, response);
        }
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    out.close();
    }
 }

register.jsp

     <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
      pageEncoding="ISO-8859-1"%>

     <html>
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859- 1">
     <title>Login Application</title>
      </head>
      <body>
      <form action="Process.jsp" method="post">
      <fieldset style="width: 300px">
         <legend> Register to App </legend>
         <table>
             <tr>
                 <td>User ID</td>
                 <td><input type="text" name="username" required="required"                   /></td>
             </tr>
             <tr>
                 <td>Password</td>
                 <td><input type="password" name="userpass"  required="required" /></td>

             </tr>
              <tr>
                 <td>email</td>
                 <td><input type="text" name="useremail" required="required"        /></td>

             <tr>

                    <td><input type="submit" value="Login" /></td>
                 </tr>
              </table>
           </fieldset>
         </form>
       </body>
     </html>

process.jsp

       <%@page import="com.pfa.Dao.*"%>  
       <jsp:useBean id="obj" class="com.pfa.bean.User"/>  
        <jsp:setProperty property="*" name="obj"/>  
     <% 
     int status=RegisterDao.register(obj);  
     if(status>0)  
     out.print("You are successfully registered");    
     %>  

【问题讨论】:

  • 请编辑您的问题以包含您遇到的错误文本。
  • 你在哪里得到这个错误 - 当你点击某个东西时,甚至当你尝试加载一个servlet时?你能提供一个 Stacktrace 吗?
  • 实际上堆栈跟踪没有显示任何错误!!!而且我确信错误来自我的 javabean 文件,因为我制作了 sop,它显示了一个空值!好吧,我更改了我的 java bean 文件并且字段与我的数据库相同但是仍然得到相同的错误我的项目的结构可能是错误的我有 webcontent (WEB-INF(lib-web.xml)/process.jsp /register.jsp)
  • 我在输入姓名、邮箱和密码并点击提交注册时收到此错误
  • 实际上这条路径发现它不可用 /SignInProject/Process.jsp !!

标签: java spring jsp servlets jdbc


【解决方案1】:

用户名,应该使用setUsername而不是setUname,你可以找到一些关于java反射的资源,还有一些推荐给你,你最好使用preparedstatement来查找结果,例如“select * from user where uname='? '",(避免sql注入,效率更高)

【讨论】:

  • 实际上堆栈跟踪没有显示任何错误!!!而且我确信错误来自我的 javabean 文件,因为我制作了 sop,它显示了一个空值!好吧,我更改了我的 java bean 文件并且字段与我的数据库相同但是仍然得到相同的错误我的项目的结构可能是错误的我有 webcontent (WEB-INF(lib-web.xml)/process.jsp /register.jsp) 当我输入姓名、电子邮件和密码并单击提交以实际注册时出现此错误,此路径发现它不可用 /SignInProject/Process.jsp !!
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2015-07-11
  • 2013-06-11
  • 2014-02-28
  • 2017-01-23
  • 2020-10-15
相关资源
最近更新 更多