读书人

404异常 The requested resource (/tp

发布时间: 2013-07-04 11:45:33 作者: rapoo

404错误 The requested resource (/tp/HandleUpload) is not available.是什么问题
web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>HandleUpload</servlet-name>
<servlet-class>myservlet.control.HandleUpload</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HandleUpload</servlet-name>
<url-pattern>/servlet/HandleUpload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

访问路径:
http://localhost:8080/tp/HandleUpload


servlet:
HandleUpload.java:
package myservlet.control;
import mybean.data.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HandleUpload extends HttpServlet{
public void init(ServletConfig config) throws ServletException{
super.init(config);
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){}
}

public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
HttpSession session=request.getSession(true);
}

public void uploadFileMethod(HttpServletRequest request,
HttpServletResponse response,String logname)


throws ServletException,IOException{
UploadFile upFile=new UploadFile();
String backNews="";
try{
HttpSession session=request.getSession(true);
request.setAttribute("upFile",upFile);
String tempFileName=(String)session.getId();
File f1=new File(tempFileName);
FileOutputStream o=new FileOutputStream(f1);
InputStream in=request.getInputStream();
byte b[]=new byte[10000];
int n;
while( (n=in.read(b))!=-1)
o.write(b,0,n);
o.close();
in.close();
RandomAccessFile random=new RandomAccessFile(f1,"r");
int second=1;
String secondLine=null;
while(second<=2){
secondLine=random.readLine();
second++;
}
int position=secondLine.lastIndexOf('\\');
if(position==-1){
response.sendRedirect("upload.jsp");
return;
}
String fileName=secondLine.substring(position+1,secondLine.length()-1);


byte cc[]=fileName.getBytes("ISO-8859-1");
fileName=new String(cc);
fileName=fileName.replaceAll(" ","");
String checkedStr=fileName.substring(0,fileName.indexOf("."));
boolean isLetterOrDigit=true;
for(int i=0;i<checkedStr.length();i++){
char c=checkedStr.charAt(i);
if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0'))){
isLetterOrDigit=false;
break;
}
}
if(isLetterOrDigit==false){
response.sendRedirect("upload.jsp");
return;
}
String savedFileName=logname.concat(fileName);
random.seek(0);
long forthEndPosition=0;
int forth=1;
while((n=random.readByte())!=-1&&(forth<=4)){
if(n=='\n'){
forthEndPosition=random.getFilePointer();
forth++;
}
}
File dir=new File("D:/Workspaces/MyEclipse 8.5/tp/image");


dir.mkdir();
File file[]=dir.listFiles();
for(int k=0;k<file.length;k++){
if(file[k].getName().startsWith(logname))
file[k].delete();
}
File savingFile= new File(dir,savedFileName);
RandomAccessFile random2=new RandomAccessFile(savingFile,"rw");
random.seek(random.length());
long endPosition=random.getFilePointer();
long mark=endPosition;
int j=1;
while((mark>=0)&&(j<=6)){
mark--;
random.seek(mark);
n=random.readByte();
if(n=='\n'){
endPosition=random.getFilePointer();
j++;
}
}
random.seek(forthEndPosition);
long startPoint=random.getFilePointer();
while(startPoint<endPosition-1){
n=random.readByte();
random2.write(n);
startPoint=random.getFilePointer();
}


random2.close();
random.close();
String uri="jdbc:sqlserver:d";
Connection con=DriverManager.getConnection(uri,"sa","123");
Statement sql=con.createStatement();
ResultSet rs=
sql.executeQuery("SELECT * FROM member where logname=a");
if(rs.next()){
if(isLetterOrDigit){
int mm=sql.executeUpdate("UPDATE member SET pic= '"+savedFileName+
"' where logname = a");
if(mm!=0){
backNews=fileName+"成功上传";
upFile.setFileName(fileName);
upFile.setSavedFileName(savedFileName);
upFile.setBackNews(backNews);
}
}
}
con.close();
f1.delete();
}
catch(Exception exp){
backNews=""+exp;
upFile.setBackNews(backNews);
}
RequestDispatcher dispatcher=
request.getRequestDispatcher("showUploadMess.jsp");


dispatcher.forward(request, response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doPost(request,response);
}
}


jsp:
upload.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HEAD></HEAD>
<HTML>
<BODY bgcolor=yellow>
<Font size=2 color=blue>
<CENTER>
<BR>文件将被上传到 Web服务目录mkfrend的子目录image中。
<BR>选择要上传的图像照片文件(名字不可以含有非ASCII码字符,比如汉字等):
<FORM action="HandleUpload" method="post" ENCTYPE="multipart/form-data">
<INPUT type=FILE name="fileName" size="40">
<BR><INPUT type="submit" name ="g" value="提交">
</FORM>
</CENTER>
</Font>
</BODY>
</HTML>

showUploadMess.jsp


<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="mybean.data.UploadFile"%>

<HEAD></HEAD>
<HTML>
<BODY bgcolor=cyan>
<CENTER>
<Font size=2 color=blue>
<BR>
</Font>
<BR><font size=2>
上传的文件名字:
<%UploadFile upFile= (UploadFile)request.getAttribute("upfile");
upFile.getFileName();%>
<BR>保存后的文件名字:>
<BR>

</FONT>
</CENTER>
</BODY>
</HTML>






[解决办法]
lz这里有两个问题:1、路径不对;2、文件上传只能用doPost。
1、/servlet/HandleUpload 上传页面action错了


2、 public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
HttpSession session=request.getSession(true);
}
[解决办法]
地址错了
直接访问

http://localhost:8080/tp/servlet/HandleUpload

跟你web的配置有关系


<servlet-mapping>
<servlet-name>HandleUpload</servlet-name>
<url-pattern>/servlet/HandleUpload</url-pattern>
</servlet-mapping>

读书人网 >Java Web开发

热点推荐