一个<a href>连接servlet类路径出错,是不是这样方法是行不通的,还是其它的问题导致根本无法进入GetMessageServlet.java执行,错误如下:type Status reportmessage /servlet/getMessagesdescription The requested resource (/servlet/getMessages) is not available.
代码如下:addResult.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ include file="/header.jsp" %>
<style>
*{font-family:"宋体";font-size:14px}
</style>
<%=request.getAttribute("message") %>
<a href="/servlet/getMessages">查看所有留言的内容</a><br>
<%@ include file="/footer.htm" %>
GetMessageServlet.javapackage com.v512.guestbook;import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class GetMessageServlet extends HttpServlet {
private static final long serialVersionUID = -8349454122547148005L; public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@10.36.65.232:1521:oracle9i";
String username = "IAMS";
String password = "IAMS";
String sql = "select * from guestbook";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
int result = 0;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
request.setCharacterEncoding("GBK");
List list = new ArrayList();
while (rs.next()) {
Guestbook gb = new Guestbook();
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 (Exception e) {
String message = e.getMessage();
request.setAttribute("message", message);
request.getRequestDispatcher("/addResult.jsp").forward(request,
response);
} finally {
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}
web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="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/j2ee 
http://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>

解决方案 »

  1.   

    是不是oracle驱动没有加载成功
      

  2.   

    servlet/getMessages这样看看,去掉了“/”
      

  3.   

     你到你的addMessage.jsp  看看你转发时候 是否出错
      

  4.   

    这样改一下。
    addResult.jsp 
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
    <%@ include file="/header.jsp" %> 
    <style> 
    *{font-family:"宋体";font-size:14px} 
    </style> 
    <%=request.getAttribute("message") %> 
    <a href="./servlet/getMessages">查看所有留言的内容 </a> <br> 
    <%@ include file="/footer.htm" %> 
      

  5.   

    明显是的你路径不对拉!!如果你不知道你的JSP在什么路径下,就连接就用servlet的绝对路径拉!
    <a href="${pageContext.request.contextPath}/servlet/getMessages">查看所有留言的内容 </a>