请求的资源不可用于默认jsp的输入
请求的资源不可用 我在EclipseforJavaEE中有一个作为动态Web应用程序的项目。一切都已设置,默认页面加载正确。上面有一张表格,上面有输入。当我点击它执行基于输入的操作时,我得到一个错误。启动servlet应该读取并处理输入,然后调用servlet类1中的doPost。然后doPost调用sort和outputSort函数。outputSort函数写入.jsp文件,然后返回doPost,doPost应该显示它。这是我的第一个JavaEE应用程序,所以我肯定我做错了一些事情。我正在将一个完整的Java桌面应用程序移植到web应用程序。我有更多的函数和类变量,但我在这里只展示了相关的函数和类变量。如果我能让这个工作,其余的将很容易移植整个应用程序。这是我的应用程序的基础,所以我想让它首先工作 以下是错误:请求的资源不可用于默认jsp的输入,jsp,servlets,Jsp,Servlets,请求的资源不可用 我在EclipseforJavaEE中有一个作为动态Web应用程序的项目。一切都已设置,默认页面加载正确。上面有一张表格,上面有输入。当我点击它执行基于输入的操作时,我得到一个错误。启动servlet应该读取并处理输入,然后调用servlet类1中的doPost。然后doPost调用sort和outputSort函数。outputSort函数写入.jsp文件,然后返回doPost,doPost应该显示它。这是我的第一个JavaEE应用程序,所以我肯定我做错了一些事情。我正在将一
HTTP Status 404 - /MyProject/Startup
type Status report
message /MyProject/Startup
description The requested resource is not available.
Apache Tomcat/7.0.47
这是我的相关代码。我认为问题在于Class1中的readnums函数打开并读取输入文本文件。我想没有人找到它。我应该把它放在哪里,如何在代码中访问它?在此方面的任何帮助都将不胜感激。提前谢谢
web.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>MyProject</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>
<servlet>
<display-name>Startup</display-name>
<servlet-name>Startup</servlet-name>
<servlet-class>com.MyProject.Startup</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Startup</servlet-name>
<url-pattern>/MyProject*</url-pattern>
</servlet-mapping>
</web-app>
第一类
package com.MyProject;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CLass1 extends HttpServlet {
String errorMessage;
String sortInputText;
String PB_operation;
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest req,
HttpServletResponse response) throws ServletException, IOException {
if (PB_operation == "sorts") {
readnums();
if (!errorMessage.isEmpty()) {
req.getRequestDispatcher("/errormessage1.jsp").forward(req,response);
return;
}
else {
sort();
outputSort();
req.getRequestDispatcher("/class1sorts.jsp").forward(req,response);
}
}
}
void readnums() throws FileNotFoundException, IOException {
int i,j;
String Temp;
String [] Temp2 = new String [80];
getClass().getResource("/myfile.txt");
String path;
// Read the numbers
inputfilefound = true;
path = "/myfile.txt";
File file_check = new File (path);
if (!file_check.exists()) {
errorMessage = "Input file not found";
return;
}
File f = new File(path);
FileReader fr = new FileReader(f);
BufferedReader br = null;
br = new BufferedReader (fr);
while ((Temp = br.readLine()) != null) {
// Read data into variables
}
br.close();
}
}
编辑:
类1中的outputSort方法。方法中未定义的所有变量都是在类中定义的,但我没有在这里列出它们,或者其他地方列出它们,以尽量避免内容过于冗长
void outputSort () throws IOException {
String path, Temp;
int i;
path = "Class1sorts.jsp";
BufferedWriter bw = null;
bw = new BufferedWriter(new FileWriter(new File(path), false));
Temp = "<%@ page language=\"java\" contentType=\"text/html; charset=ISO-8859-1\" pageEncoding=\"UTF-8\"%>";
bw.write(Temp);
bw.newLine();
Temp = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
bw.write(Temp);
bw.newLine();
Temp = "<html>";
bw.write(Temp);
bw.newLine();
Temp = "<head>";
bw.write(Temp);
bw.newLine();
Temp = "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">";
bw.write(Temp);
bw.newLine();
Temp = "<title>MyProject</title>";
bw.write(Temp);
bw.newLine();
Temp = "</head>";
bw.write(Temp);
bw.newLine();
Temp = "<body>";
bw.write(Temp);
bw.newLine();
Temp = "<h2>The sorted totals for the range selected</h2>";
bw.write(Temp);
bw.newLine();
Temp = "<form action=\"Startup\" method=\"Post\">";
bw.write(Temp);
bw.newLine();
Temp = "Go back to prevoius page: ";
bw.write(Temp);
bw.newLine();
Temp = "<br><br>";
bw.write(Temp);
bw.newLine();
Temp = " <input type=\"submit\" name=\"action\" value=\"Go Back to prvious page\">";
bw.write(Temp);
bw.newLine();
Temp = "</form>";
bw.write(Temp);
bw.newLine();
Temp = "<pre>";
bw.write(Temp);
bw.newLine();
Temp = "Rank Numbers Totals XNumber Totals";
bw.write(Temp);
bw.newLine();
bw.newLine();
for (i = 1; i <= NUMLIMIT; i++) {
Temp = Integer.toString(i);
if (i < 10)
Temp += " ";
Temp += Integer.toString(sortnums[i][1]) + " ";
Temp += Integer.toString(sortnums[i][2]) + " ";
if (i <= XLIMIT) {
Temp += Integer.toString(sortxball[i][1]) + " ";
Temp += Integer.toString(sortxball[i][2]) + " ";
}
bw.write(Temp);
bw.newLine();
}
Temp = "</pre>";
Temp = "</body>";
Temp = "</html>";
bw.close();
}
void outputSort()引发IOException{
字符串路径,临时;
int i;
path=“classsorts.jsp”;
BufferedWriter bw=null;
bw=新的BufferedWriter(新的FileWriter(新文件(路径),false));
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
Temp=“MyProject”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
Temp=“所选范围的排序总数”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
Temp=“返回上一页:”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
Temp=“
”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
温度=”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
Temp=“排名总数XNumber总数”;
HTTP Status 404 - /MyProject/Startup
写入(临时);
换行符();
换行符();
对于(i=1;i
此错误告诉您,它找不到根据请求URL映射的资源。
加上
/我的项目*
这意味着它被映射到以下对象:
http://HOST:PORT/PROJECTNAME/MyProject
其中PROJECTNAME是部署它的目录名或您设置的上下文
如果希望将servlet映射为:
http://HOST:PORT/PROJECTNAME/STARTUP
您应该将其映射为:
<servlet-mapping>
<servlet-name>Startup</servlet-name>
<url-pattern>/Startup</url-pattern>
</servlet-mapping>
启动
/*
或
启动
/启动
我通过对doGet和doPost使用“@Override”并将我的Sartup.jsp放在WEB-INFO文件夹中解决了我的问题。下面是代码:
编辑:显然Startup.jsp也必须在WebContent文件夹中。这是为了让它可以在web.xml的欢迎文件列表中看到。你的项目目录结构是什么?我没有资源文件夹。我应该添加一个吗?目录结构在原始帖子的编辑中。谢谢回复。请参阅我的回答OK我会试试的。谢谢你的回复。我的项目名称请参见对我原始帖子的编辑。是的,根据当前的项目层次结构和servlet映射,这样做:这将调用servlet的doGet方法,但当你点击表单时,它将调用doPost,正如你在我的文章中提到的那样,我将更改为你列出的第二个选项…/Startup…b但我无法访问localhost上的Startup。我可以运行Startup.jsp,但我猜当我单击按钮输入表单时,它找不到Startup servlet。我猜这一直都是问题所在。如何解决此问题?我收到有关服务器冲突端口的弹出错误。说它们有时正在使用中…这可能相关吗?首先,您应该停止我是雄猫。