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

求教web数据库操作有关问题

2011-12-27 
求教web数据库操作问题D:\Tomcat5.0\webapps\sqlserver下有index.htmlD:\Tomcat5.0\webapps\sqlserver\WEB

求教web数据库操作问题
D:\Tomcat   5.0\webapps\sqlserver下有index.html
D:\Tomcat   5.0\webapps\sqlserver\WEB-INF下有web.xml
D:\Tomcat   5.0\webapps\sqlserver\WEB-INF\classes下有AddBook.java和AddBook.class
其中:
----------------------------------
index.html内容如下:
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN ">
<HTML>
<HEAD>
<TITLE>   添加图书到SQL   Server数据库 </TITLE>
<META   NAME= "Generator "   CONTENT= "EditPlus ">
<META   NAME= "Author "   CONTENT= " ">
<META   NAME= "Keywords "   CONTENT= " ">
<META   NAME= "Description "   CONTENT= " ">
</HEAD>

<BODY>
<h2> <B> 在下面输入图书信息后提交 </b> </h2> <Br>
<form   method= "post "   action= "/sqlserver/servlet/AddBook ">
图书名称: <input   type= "text "   name= "bookname "> <Br>
图书作者: <input   type= "text "   name= "bookauthor "> <Br>
图书价格: <input   type= "text "   name= "bookprice "> <Br>
图书介绍: <textarea   name= "bookintroduce "   rows=6> </textarea> <Br>
<input   type= "submit "   value= "提交 "> <input   type= "reset "   value= "重填 ">
</form>
</BODY>
</HTML>

-----------------------------------
web.xml内容如下:
<?xml   version= "1.0 "   encoding= "ISO-8859-1 "?>
<!DOCTYPE   web-app
        PUBLIC   "-//Sun   Microsystems,   Inc.//DTD   Web   Application   2.3//EN "
        "http://java.sun.com/dtd/web-app_2_3.dtd ">
<web-app>
    <display-name> Welcome   to   Tomcat </display-name>
    <description>
          Welcome   to   Tomcat
    </description>
<!--   JSPC   servlet   mappings   start   -->

<!--   实例6-1   -->
<servlet>  
<servlet-name> AddBook </servlet-name>  
<display-name> AddBook </display-name>  
<description> A   test   Servlet </description>  
<servlet-class> AddBook </servlet-class>  
</servlet>  

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

--------------------------

AddBook内容如下:
/*   AddBook.java添加一本图书到数据库   */
//导入相关的包
import   java.sql.*;
import   java.io.*;
import   javax.servlet.*;
import   javax.servlet.http.*;

public   class   AddBook   extends   HttpServlet
{

//定义servlet的post方法
public   void   doPost(HttpServletRequest   request,HttpServletResponse   response)   throws   ServletException,IOException
{

//获得用户输入的数据
String   bookName=new   String(request.getParameter( "bookname ").getBytes( "8859_1 "));


String   bookAuthor=new   String(request.getParameter( "bookauthor ").getBytes( "8859_1 "));
String   bookPrice=new   String(request.getParameter( "bookprice ").getBytes( "8859_1 "));
String   bookIntroduce=new   String(request.getParameter( "bookintroduce ").getBytes( "8859_1 "));
//定义数据库连接对象
java.sql.Connection   conn=null;

//定义数据库执行对象
java.sql.Statement   st=null;

//定义输出类型
response.setContentType( "text/html;charset=gb2312 ");
//定义输出对象out
PrintWriter   out=response.getWriter();
try
{
//查找SQL   Server的JDBC   Driver
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");  
/*
用URL,USERNAME,PASSWORD去连接本地的SQL   Server数据库
注意:SQL   Server的URL形式是:jdbc:microsoft:sqlserver://数据库服务器名称:数据库端口
*/
conn   =   DriverManager.getConnection( "jdbc:microsoft:sqlserver://localhost:1433;   DatabaseName=book ", "sa ", " ");    
//生成数据库执行对象
st=conn.createStatement();
//添加图书到数据库中
st.executeUpdate( "insert   into   bookInfo   values(‘ "+bookName+ "’,’ "+bookAuthor+ "’,’ "+bookPrice+ "’,’ "+bookIntroduce+ "’) ");

  /*
一定要注意关闭数据库
否则,数据库会因为连接满而拒绝服务
*/
conn.close();
out.println( "图书已经成功添加到数据库! ");
}
//捕获错误
catch(Exception   e)
{

//打印出错误信息
out.println( "发生如下错误: <Br> ");
out.println(e.getMessage());
}
}
}

------------------------------

问题:
jdbc驱动已有,环境变量已设置,数据库sql   server2000   升级sp4,数据库经测试可以通过程序连接
在index页面http://localhost:8080/sqlserver/index.html中按下提交按钮,页面转向:http://localhost:8080/sqlserver/servlet/AddBook
提示信息为:
HTTP   Status   404   -   /sqlserver/servlet/AddBook
type   Status   report
message   /sqlserver/servlet/AddBook
description   The   requested   resource   (/sqlserver/servlet/AddBook)   is   not   available.
Apache   Tomcat/5.0.28
请问应该怎样解决???

[解决办法]
把index.html里的
<form method= "post " action= "/sqlserver/servlet/AddBook ">
换成
<form method= "post " action= "/sqlserver/AddBook "> 试试

或者把Web.xml里的
<servlet-mapping>
<servlet-name> AddBook </servlet-name>
<url-pattern> /AddBook </url-pattern>
</servlet-mapping>
改成
<servlet-mapping>
<servlet-name> AddBook </servlet-name>
<url-pattern> /servlet/AddBook </url-pattern>
</servlet-mapping>

热点排行