jsp连接Mysql数据库的问题

yuer1985 2007-08-16 05:13:46
前台的HTML页面接收用户输入的内容:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>MySQL 调用实例</title>
</head>

<body>
<form method="post" action="/mysql/servlet/Insert">
学生姓名:<input type="text" name="name"><br>
学生年龄:<input type="text" name="age"><br>
学生介绍:<textarea name="introduce" rows="5"></textarea><br>
<input type="submit" value="提交">
<input type="reset" value="重填">
</form>
</body>
</html>

后台具体的JAVA程序实现代码:
// Java Document
/*Insert.java*/
import java.io.*;
//导入JDBC相关的类
import java.sql.*;
//导入Mysql的JDBC的相关类
import org.gjt.mm.mysql.*;
//导入servlet的相关类
import javax.servlet.*;
import javax.servlet.http.*;
public class Insert extends HttpServlet{

//Servlet的dopost方法,来处理用户POST表单的请求
public void doPost(HttpSerletRequest request,HttpServletResponse response)
throws IOException,ServletException{

//设置输出类型text/html,并且编号GB2312,这样才不会出现中文的乱码
response.setContentType("text/html;charset=gb2312");
//定义输出对象
PrintWriter out=response.getWriter();
java.sql.Connection conn=null;
java.sql.Statement st=null;
//将用户输入转换为8859-1编码的字节,然后再转换成字符,这样就不会出现中文乱码了
String name=new String(request.getparameter("name").getBytes("8859-1"));
String age=new String(request.getparameter("age").getBytes("8859-1"));
String introduce=new String(request.getparameter("introduce").getBytes("8859-1"));
try{
//查找Mysql的JDBC驱动程序,如果找不到会出错
Class.forName("org.gjt.mm.mysql.Driver");
//连接数据库
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/person","root","123");
out.println("与Mysql数据库连接成功!<br>");
//生成数据库执行对象
st=conn.createStatement();
//执行添加学生的sql语句
st.executeQuery("insert into student values('"+name+"','"+age+"','"+introduce+"')");
out.println("学生添加成功!<br>");
//关闭数据库
conn.close();
out.println("数据库关闭成功!<br>");
}

//捕获错误
catch(Exception e)
{

//打印出错误信息
out.printin("发生了如下错误:<br>");
out.println(e.getMessage());
}
}
}
...全文
325 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuer1985 2007-08-17
  • 打赏
  • 举报
回复
呵呵,菜鸟一个,刚开始学

实现要求:
在Index.html页面的文本框中输入一些内容,然后单击"提交"按钮,会出现
"与Mysql数据库连接成功!
 学生添加成功!
 数据库关闭成功!"
且能在Mysql数据库查看到刚才的添加.

错误显示:
HTTP Status 404 - /mysql/servlet/Insert

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

type Status report

message /mysql/servlet/Insert

description The requested resource (/mysql/servlet/Insert) is not available.

路径设置问题,还没找到解决方法.
qiang029 2007-08-17
  • 打赏
  • 举报
回复
楼主的面向对像思想还要提高呀,代码看起来比较乱。另外最好不要用SERVLET,servlet本身比较难以控制,jsp页面编译完后就是个servlet,如果不用框架,可以直接写一个空的JSP页面,里面没有HTML代码。在这个页面里面调用相关的JAVA操作类。数据库连接,不用连接池,最好写个单态类来得到连接,再写一个操作类,里面有(增,删,改,查)等方法。在JSP页直接调这四个方法执行操作,完成后,跳转到相关操作页面。

还有,LZ说功能不能执行,错误信息要报一下。或是说明一下怎么个不能执行法。
yuer1985 2007-08-17
  • 打赏
  • 举报
回复
现在Insert已经可以编译了
// Java Document
/*Insert.java*/
import java.io.*;
//导入JDBC相关的类
import java.sql.*;
//导入Mysql的JDBC的相关类
import org.gjt.mm.mysql.*;
//导入servlet的相关类
import javax.servlet.*;
import javax.servlet.http.*;
public class Insert extends HttpServlet{

//Servlet的dopost方法,来处理用户POST表单的请求
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException{

//设置输出类型text/html,并且编号GB2312,这样才不会出现中文的乱码
response.setContentType("text/html;charset=gb2312");
//定义输出对象
PrintWriter out=response.getWriter();
java.sql.Connection conn=null;
java.sql.Statement st=null;
//将用户输入转换为8859-1编码的字节,然后再转换成字符,这样就不会出现中文乱码了
String name=new String(request.getParameter("name").getBytes("8859-1"));
String age=new String(request.getParameter("age").getBytes("8859-1"));
String introduce=new String(request.getParameter("introduce").getBytes("8859-1"));
try{
//查找Mysql的JDBC驱动程序,如果找不到会出错
Class.forName("org.gjt.mm.mysql.Driver");
//连接数据库
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/person","root","123");
out.println("与Mysql数据库连接成功!<br>");
//生成数据库执行对象
st=conn.createStatement();
//执行添加学生的sql语句
st.executeQuery("insert into student values('"+name+"','"+age+"','"+introduce+"')");
out.println("学生添加成功!<br>");
//关闭数据库
conn.close();
out.println("数据库关闭成功!<br>");
}

//捕获错误
catch(Exception e)
{

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

但还是不能实现功能,郁闷!
gongyali2005 2007-08-17
  • 打赏
  • 举报
回复
CLASSPATH里加入SERLET-API.JAR
yuer1985 2007-08-17
  • 打赏
  • 举报
回复
我也知道编译出错,可是一编译就说javax.servlet和javax.servlet.http软件包不存在.
不知道怎么解决!
yuer1985 2007-08-17
  • 打赏
  • 举报
回复
真是不知道怎么办了,这个都成鸡肋了!
yuer1985 2007-08-17
  • 打赏
  • 举报
回复
不会搞沉帖了吧
流浪汉促销员 2007-08-16
  • 打赏
  • 举报
回复
你那Insert能通过编译吗?
很多错误啊
yuer1985 2007-08-16
  • 打赏
  • 举报
回复
觉得应该是html里的action没有设置好
可不知道怎么解决
参考手册这样说的:
d:\tomcat\webapps\mysql\Index.html
d:\tomcat\webapps\mysql\WEB-INF\classes\Insert.java
然后将Mysql的JDBC包拷贝到tomcat的lib目录中

浏览器输入http://localhost:8080/mysql/
html显示正常,提交后出错
流浪汉促销员 2007-08-16
  • 打赏
  • 举报
回复
yuer1985 2007-08-16
  • 打赏
  • 举报
回复

运行就是这样的错误
type Status report

message /mysql/servlet/Insert

description The requested resource (/mysql/servlet/Insert) is not available.

是路径设置的问题不?
Moon 2007-08-16
  • 打赏
  • 举报
回复
LZ没把问题说清楚~


流浪汉促销员 2007-08-16
  • 打赏
  • 举报
回复
???

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧