Java 请求的资源不可用
我编写了一个Java servlet程序,并通过本地Tomcat 7运行它,但它显示了以下错误:Java 请求的资源不可用,java,html,servlets,tomcat7,Java,Html,Servlets,Tomcat7,我编写了一个Java servlet程序,并通过本地Tomcat 7运行它,但它显示了以下错误: HTTP Status 404 - /skypark/registration type Status report message /skypark/registration description The requested resource is not available. Apache Tomcat/7.0.33 我不知道是什么原因 我的Html页面是 <html> &l
HTTP Status 404 - /skypark/registration
type Status report
message /skypark/registration
description The requested resource is not available.
Apache Tomcat/7.0.33
我不知道是什么原因
我的Html页面是
<html>
<head>
<title>
User registration
</title>
</head>
<body>
<form action="registration" method="post">
<center>
<h2><b>Skypark User Registration</b></h2>
<table border="0">
<tr><td>
First Name
</td><td>
<input type="text" name="fname"/></br>
</td></tr><tr><td>
Last Name
</td><td>
<input type="text" name="lname"/></br>
</td></tr><tr><td>
UserName
</td><td>
<input type="text" name="uname"></br>
</td></tr><tr><td>
Enter Password
</td><td>
<input type="password" name="pass"></br>
</td></tr><tr><td>
Re-Type Password
</td><td>
<input type="password" name="pass1"></br>
</td></tr><tr><td>
Enter Email ID
</td><td>
<input type="email" name="email1"></br>
</td></tr><tr><td>
Phone Number
</td><td>
<input type="number" name="phone">
</td></tr><tr><td>
Gender<br>
</td></tr><tr><td>
<input type="radio" name="gender" value="Male">Male</input></br>
</td></tr><tr><td>
<input type="radio" name="gender" value="Female">Female</input></br>
</td></tr><tr><td>
Enter Your Date of Birth<br>
</td><td>
<Table Border=0>
<tr>
<td>
Date
</td>
<td>Month</td>
<td>Year</td>
</tr><tr>
<td> <select name="date">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
.
.
.
have some code
.
.
.
</table>
<input type="submit" value="Submit"></br>
</center>
</form>
</body>
</html>
用户注册
Skypark用户注册
名字
姓
用户名
输入密码
重新输入密码
输入电子邮件ID
电话号码
性别
男性
女性
输入您的出生日期
日期
月
年
1.
2.
3.
4.
5.
.
.
.
有密码吗
.
.
.
我的servlet是:
package skypark;
import skypark.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Registration extends HttpServlet
{
public static Connection prepareConnection()throws ClassNotFoundException,SQLException
{
String dcn="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@JamesPJ-PC:1521:skypark";
String usname="system";
String pass="tiger";
Class.forName(dcn);
return DriverManager.getConnection(url,usname,pass);
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException
{
resp.setContentType("text/html");
PrintWriter out=resp.getWriter();
try
{
String phone1,uname,fname,lname,dob,address,city,state,country,pin,email,password,gender,lang,qual,relegion,privacy,hobbies,fav;
uname=req.getParameter("uname");
fname=req.getParameter("fname");
lname=req.getParameter("lname");
dob=req.getParameter("date");
address=req.getParameter("address");
city=req.getParameter("city");
state=req.getParameter("state");
country=req.getParameter("country");
pin=req.getParameter("pin");
email=req.getParameter("email1");
password=req.getParameter("password");
gender=req.getParameter("gender");
phone1=req.getParameter("phone");
lang="";
qual="";
relegion="";
privacy="";
hobbies="";
fav="";
int phone=Integer.parseInt(phone1);
Connection con=prepareConnection();
String Query="Insert into regdetails values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps=con.prepareStatement(Query);
ps.setString(1,uname);
ps.setString(2,fname);
ps.setString(3,lname);
ps.setString(4,dob);
ps.setString(5,address);
ps.setString(6,city);
ps.setString(7,state);
ps.setString(8,country);
ps.setString(9,pin);
ps.setString(10,lang);
ps.setString(11,qual);
ps.setString(12,relegion);
ps.setString(13,privacy);
ps.setString(14,hobbies);
ps.setString(15,fav);
ps.setString(16,gender);
int c=ps.executeUpdate();
String query="insert into passmanager values(?,?,?,?)";
PreparedStatement ps1=con.prepareStatement(query);
ps1.setString(1,uname);
ps1.setString(2,password);
ps1.setString(3,email);
ps1.setInt(4,phone);
int i=ps1.executeUpdate();
if(c==1||c==Statement.SUCCESS_NO_INFO && i==1||i==Statement.SUCCESS_NO_INFO)
{
out.println("<html><head><title>Login</title></head><body>");
out.println("<center><h2>Skypark.com</h2>");
out.println("<table border=0><tr>");
out.println("<td>UserName/E-Mail</td>");
out.println("<form action=login method=post");
out.println("<td><input type=text name=uname></td>");
out.println("</tr><tr><td>Password</td>");
out.println("<td><input type=password name=pass></td></tr></table>");
out.println("<input type=submit value=Login>");
out.println("</form></body></html>");
}
else
{
out.println("<html><head><title>Error!</title></head><body>");
out.println("<center><b>Given details are incorrect</b>");
out.println(" Please try again</center></body></html>");
RequestDispatcher rd=req.getRequestDispatcher("registration.html");
rd.include(req,resp);
return;
}
}
catch(Exception e)
{
out.println("<html><head><title>Error!</title><body>");
out.println("<b><i>Unable to process try after some time</i></b>");
out.println("</body></html>");
RequestDispatcher rd=req.getRequestDispatcher("registration.html");
rd.include(req,resp);
return;
}
out.flush();
out.close();
}
}
package天空公园;
输入天空公园*;
导入java.io.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
导入java.sql.*;
公共类注册扩展了HttpServlet
{
公共静态连接prepareConnection()引发ClassNotFoundException、SQLException
{
String dcn=“oracle.jdbc.driver.OracleDriver”;
String url=“jdbc:oracle:thin:@JamesPJ PC:1521:skypark”;
字符串usname=“系统”;
字符串pass=“tiger”;
类别名称(dcn);
返回DriverManager.getConnection(url、usname、pass);
}
public void doPost(HttpServletRequest-req,HttpServletResponse-resp)抛出ServletException,IOException
{
分别为setContentType(“文本/html”);
PrintWriter out=resp.getWriter();
尝试
{
字符串phone1、uname、fname、lname、dob、地址、城市、州、国家、pin、电子邮件、密码、性别、语言、质量、相关地区、隐私、爱好、fav;
uname=req.getParameter(“uname”);
fname=req.getParameter(“fname”);
lname=req.getParameter(“lname”);
dob=请求获取参数(“日期”);
地址=请求获取参数(“地址”);
城市=请求获取参数(“城市”);
状态=请求获取参数(“状态”);
国家=请求获取参数(“国家”);
pin=请求参数(“pin”);
email=req.getParameter(“email1”);
password=req.getParameter(“密码”);
性别=请求获取参数(“性别”);
phone1=请求获取参数(“电话”);
lang=“”;
qual=“”;
relegion=“”;
隐私=”;
爱好=”;
fav=“”;
int phone=Integer.parseInt(phone1);
连接con=prepareConnection();
String Query=“插入regdetails值(?,,,,,,,,,,,,,,,,,,,,,,?)”;
PreparedStatement ps=con.prepareStatement(查询);
ps.setString(1,uname);
ps.setString(2,fname);
ps.setString(3,lname);
ps.setString(4,dob);
ps.setString(5,地址);
ps.setString(6,城市);
ps.setString(7,状态);
ps.setString(8,国家);
ps.固定管柱(9,销);
ps.setString(10,朗);
ps.setString(11,质量);
ps.setString(12,相关区域);
ps.setString(13,隐私);
ps.setString(14,爱好);
ps.setString(15,fav);
ps.setString(16岁,性别);
int c=ps.executeUpdate();
String query=“插入passmanager值(?,?,?)”;
PreparedStatement ps1=con.prepareStatement(查询);
ps1.设置管柱(1,uname);
ps1.设置字符串(2,密码);
ps1.设置字符串(3,电子邮件);
ps1.setInt(4,电话);
int i=ps1.executeUpdate();
if(c==1 | | c==Statement.SUCCESS|NO|u INFO&&i==1 | | i==Statement.SUCCESS|NO_INFO)
{
out.println(“登录”);
out.println(“Skypark.com”);
out.println(“”);
out.println(“用户名/电子邮件”);
out.println(“我认为问题在于这两行:
在html页面中
/Registration
在您的web.xml中
您的操作设置为注册
,您的url模式需要注册
(注意大写R
和小写R
)
只要尝试更改它们(两者都相同),就应该可以了尝试将请求映射到您希望请求调用的方法。例如,如果您使用Spring framework,则需要在您的示例中将web.xml中的servlet url模式设置为htm,然后返回html文件的名称
@RequestMapping(value ="/registration",method = RequestMethod.GET)
public String render(Model model, HttpServletRequest request, HttpServletResponse response) {
{
--------------- compute ----
return "registration";
}
如果您将请求放入/registration,服务器将计算映射到它的方法,然后搜索“registration”(返回值)以显示
希望有帮助!您是请求/注册还是/注册。您的servlet也有doPost,您是发送post请求吗?@SubinS OP正在发送post请求
解决方案可能就是我在回答中提到的解决方案是的,应该可以解决,我错过了表单。+1不,没有再次修复相同的错误:HTTP Status 404-/skypark/注册类型状态报告消息/skypark/注册描述请求的资源不可用。Apache Tomcat/7.0.33抱歉,先生,它显示了相同的错误:HTTP状态404-/skypark/注册类型状态报告消息/skypark/注册描述请求的资源不可用。Apache Tomcat/7.0.33
@RequestMapping(value ="/registration",method = RequestMethod.GET)
public String render(Model model, HttpServletRequest request, HttpServletResponse response) {
{
--------------- compute ----
return "registration";
}