我写了一个form表单提交的jsp内容如下<html>
  <body>
<form action="post" method="get">
<table border="1">
<tr>
<td>
<input type="text" name="title" size="81">
</td>
</tr>
<tr>
<td>
<textarea cols="80" rows="12" name="cont"></textarea>
</td>
</tr>
<tr>
<td>
<input type="reset" value="重置">
<input type="submit" value="提交">
</td>
</tr>
</table>
</form>
  </body>
</html>web.xml 配置文件信息
  <servlet>
    <servlet-name>post</servlet-name>
    <servlet-class>will.post</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>post</servlet-name>
    <url-pattern>/post</url-pattern>
  </servlet-mapping>myeclipse工具 src目录下的will包下的post.java 的servlet 内容:
public class post extends HttpServlet { public post() {
super();
}
public void destroy() {
super.destroy(); 

} public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
response.setContentType("text/html;charset=gbk");
//PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String cont = request.getParameter("cont");
cont = cont.replaceAll("\n", "<br>");
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
e.printStackTrace();
}
try{
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/BBS","root","1234");
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
PreparedStatement pstmt = conn.prepareStatement("insert into article values(null,0,?,?,?,now(),0)",Statement.RETURN_GENERATED_KEYS);
pstmt.setInt(1, -1);
pstmt.setString(2, title);
pstmt.setString(3, cont);
pstmt.executeUpdate();

ResultSet rs = pstmt.getGeneratedKeys();
rs.next();
int key = rs.getInt(1);
rs.close();
stmt.executeUpdate("update article set rootid="+key+" where id="+key);
conn.commit();
conn.setAutoCommit(true);
pstmt.close();
stmt.close();
conn.close();
response.sendRedirect("/will/T.jsp");
}catch(SQLException e){
e.printStackTrace();
}
}

public void init() throws ServletException {
// Put your code here
}}
为什么报 404 找不到文件错误,是我的web.xml配置文件 陪错了吗,请大侠们帮忙看看哈.

解决方案 »

  1.   

    直接在网址里打servlet的地址能访问么?   试着重启下服务器
      

  2.   

    http://localhost:8888/BBS/will/post  访问servlet网址 也是报404错误 找不到文件.
      

  3.   

    地址应该是http://localhost:8888/BBS/post
      

  4.   

    http://localhost:8888/BBS/post  输入这个报的是该网页无法访问 ( 错误代码:400 )
      

  5.   

    对了  你的
    public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {
    改为 
    用的是get的方法
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      

  6.   

    报的400错误 
    该网页无法访问 ( 错误代码:400 )http://localhost:8888/BBS/postHTTP 400: 请求出现语法错误用“搜狗快照”尝试打开该网页 
    重新打开该网页  
    搜索网页中的相关信息      搜索网页中的相关信息    是不是我的代码写错了 我改成doGet 方法 也是无法 访问 .. 愁死我了
      

  7.   

    找到问题的 根源了 是response.sendRedirect("/will/T.jsp"); 这段代码的跳转 有问题  改了路径就好了. 哎  弄了2个小时 终于被我搞定了.