问题描述
一个<ahref>连接servlet类路径出错,是不是这样方法是行不通的,还是其它的问题导致根本无法进入GetMessageServlet.java执行,错误如下:typeStatusreportmessage/servlet/getMessagesdescriptionTherequestedresource(/servlet/getMessages)isnotavailable.代码如下:addResult.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%@includefile="/header.jsp"%><style>*{font-family:"宋体";font-size:14px}</style><%=request.getAttribute("message")%><ahref="/servlet/getMessages">查看所有留言的内容</a><br><%@includefile="/footer.htm"%>GetMessageServlet.javapackagecom.v512.guestbook;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassGetMessageServletextendsHttpServlet{privatestaticfinallongserialVersionUID=-8349454122547148005L;publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringdriver="oracle.jdbc.driver.OracleDriver";Stringurl="jdbc:oracle:thin:@10.36.65.232:1521:oracle9i";Stringusername="IAMS";Stringpassword="IAMS";Stringsql="select*fromguestbook";Connectionconn=null;PreparedStatementpstmt=null;ResultSetrs=null;intresult=0;try{Class.forName(driver);conn=DriverManager.getConnection(url,username,password);pstmt=conn.prepareStatement(sql);rs=pstmt.executeQuery();request.setCharacterEncoding("GBK");Listlist=newArrayList();while(rs.next()){Guestbookgb=newGuestbook();gb.setName(rs.getString("name"));gb.setEmail(rs.getString("email"));gb.setPhone(rs.getString("phone"));gb.setTitle(rs.getString("title"));gb.setContent(rs.getString("content"));gb.setTime(rs.getString("time"));list.add(gb);request.setAttribute("gblist",list);request.getRequestDispatcher("/getMessages.jsp").forward(request,response);}}catch(Exceptione){Stringmessage=e.getMessage();request.setAttribute("message",message);request.getRequestDispatcher("/addResult.jsp").forward(request,response);}finally{try{pstmt.close();conn.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><servlet><servlet-name>GetMessagesServlet</servlet-name><servlet-class>com.v512.guestbook.GetMessagesServlet</servlet-class></servlet><servlet-mapping><servlet-name>GetMessagesServlet</servlet-name><url-pattern>/servlet/getMessages</url-pattern></servlet-mapping><welcome-file-list><welcome-file>addMessage.jsp</welcome-file></welcome-file-list></web-app>
解决方案
解决方案二:
是不是oracle驱动没有加载成功
解决方案三:
servlet/getMessages这样看看,去掉了“/”
解决方案四:
你到你的addMessage.jsp看看你转发时候是否出错
解决方案五:
这样改一下。addResult.jsp<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%@includefile="/header.jsp"%><style>*{font-family:"宋体";font-size:14px}</style><%=request.getAttribute("message")%><ahref="./servlet/getMessages">查看所有留言的内容</a><br><%@includefile="/footer.htm"%>
解决方案六:
明显是的你路径不对拉!!如果你不知道你的JSP在什么路径下,就连接就用servlet的绝对路径拉!<ahref="${pageContext.request.contextPath}/servlet/getMessages">查看所有留言的内容</a>