首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

404异常 The requested resource (/tp/HandleUpload) is not available.是什么有关问题

2013-07-04 
404错误 The requested resource (/tp/HandleUpload) is not available.是什么问题web.xml:?xml version

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>

热点排行