如何将JSP页面中的表单信息保存到Mysql数据库?

如何将JSP页面中的表单信息保存到Mysql数据库?,第1张

获取表单中的信息,然后插入到Mysql中 

<%@ page language="java" contentType="text/html charset=gbk"

    pageEncoding="gbk"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%

int id = Integer.parseInt(request.getParameter("id"))

int rootid = Integer.parseInt(request.getParameter("rootid"))

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=gbk">

<title>Replay</title>

</head>

<body>

<form method="post" action="ReplayOK.jsp">

 <input type="hidden" name="id" value="<%=id %>">

 <input type="hidden" name="rootid" value="<%=rootid %>">

<table align="center">

 <tr>

  <td>

   <input type="text" name="title" size="80">

  </td>

 </tr>

 <tr>

  <td>

   <textarea cols="80" rows="20" name="cont"></textarea>

  </td>

 </tr>

 <tr>

  <td>

   <input type="submit" value="提交">

  </td>

 </tr>

</table>

</form>

</body>

</html>

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

下面接收上面表单中传过来的信息,并插入到mysql中

<%@ page language="java" contentType="text/html charset=gbk"

    pageEncoding="gbk"%>

<%@ page import="java.sql.*" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%

request.setCharacterEncoding("GBK")

int id = Integer.parseInt(request.getParameter("id"))

int rootid = Integer.parseInt(request.getParameter("rootid"))

String title = request.getParameter("title")

String cont = request.getParameter("cont").replaceAll("\n","<br/>")

Connection conn = null

Statement st = null

Class.forName("com.mysql.jdbc.Driver")

conn = DriverManager.getConnection("jdbc:mysql://localhost/bbs?user=root&password=690115399")

st = conn.createStatement()

conn.setAutoCommit(false)

String sql = "insert into article values(null,?,?,?,?,now(),0)"

PreparedStatement pstmt = conn.prepareStatement(sql)

pstmt.setInt(1,id)

pstmt.setInt(2,rootid)

pstmt.setString(3,title)

pstmt.setString(4,cont)

pstmt.executeUpdate()

st.executeUpdate("update article set isleaf = 1 where id = " + id)

conn.commit()

conn.setAutoCommit(true)

st.close()

pstmt.close()

conn.close()

%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html charset=gbk">

<title>Insert title here</title>

</head>

<body>

<%response.sendRedirect("ShowArticleTree.jsp") %>

</body>

</html>

当然最好的方法还是应该用jsp + JavaBean方式。

这里为了防止有心人注入SQL语句最好用预编译,并进行事物控制

从获得连接Connection

开始:

conn.setAutoCommit(false)

String

sql="insert

into

user

values(?,?,?)"

PreparedStatement

pStatement=connection.prepareStatement(sql)

pStatement.setString(1,

null)

pStatement.setString(2,uname)

pStatement.setString(3,

password)

int

ret=pStatement.executeUpdate()

if(ret!=0)

{

conn.commit()

}

else

{

conn.rollback()

}

eclipse,我用的是eclipse,也可以用其他的开发工具。

tomcat,tomcat是用来做服务器的,如果eclipse还没有配置tomcat服务器,就要先配置好tomcat服务器。

MySQL,本文用的是MySQL数据库,读者也可以尝试用其他的数据库,但是连接驱动就要换成相应数据库的连接驱动。

连接驱动 mysql-connector-java-3.1.14-bin.jar,可以从网上下载。

方法/步骤

打开eclipse,菜单栏下,File-new,打开Dynamic Web Project,创建一个jsp project,为方便起见,本文直接在jsp页面里写java代码进行数据库的连接。。大部分网友应该都可以看懂这段代码的涵义,这里就不赘述了。

其中需要注意的是  String url="jdbc:mysql://localhost:3306/mydb"  其中的3306是MySQL安装时的端口号,默认的是3306,如果你安装MySQL时更改了端口号就要在这里填写你更改的端口号。下面是我的jsp文档

<%@ page language="java" contentType="text/htmlcharset=UTF-8"

pageEncoding="UTF-8"%>

<%@page import="java.sql.Connection" %>

<%@page import="java.sql.*" %>

<%@page import="java.sql.DriverManager" %>

<!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/htmlcharset=UTF-8">

<title>Insert title here</title>

</head>

<body>

<table border="1" align="center">

<tr>

<td>书名</td>

<td>作者</td>

</tr>

<%

String driverClass="com.mysql.jdbc.Driver"

String url="jdbc:mysql://localhost:3306/mydb"

String user="root"

String password="1234"

String a="zhangsan"

Connection conn

try{

Class.forName(driverClass)

conn=DriverManager.getConnection(url,user,password)

Statement stmt=conn.createStatement()

String sql="select * from books"

ResultSet rs=stmt.executeQuery(sql)

while(rs.next()){

%>

<tr>

<td><%=rs.getString("bookname") %></td>

<td><%=rs.getString("writer") %></td>

</tr>

<%

}

}

catch(Exception ex){

ex.printStackTrace()

}

%>

</table>

</body>

</html>

然后在这个project的WebContent\WEB-INF\lib的文件夹里添加之前提到的连接驱动 mysql-connector-java-3.1.14-bin.jar,将其复制到lib的文件夹中。保存项目,然后运行,就会在网页中出现表格。

3

是不是很简单呢,希望这篇经验能够给大家带来方便。

END

注意事项

要确保在MySQL中存在mydb数据库,mydb中已创建books表格,不然会提示错误的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11630520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存