这是我按照自己的想法写的,没有参考资料。有可能不太规范,但是还是实现了这一功能。但我还会继续完善。(在运行前要导入数据库中的包ojdbc14.jar包,我用的是oracle数据库)。
1.。。。。。设置页面,写html代码,给出你要用户填入的信息。(后面将给出页面的样式)
<body bgcolor="#FFF000">
调查表
<form action="s" method="POST">
您的姓名:
<input type=text name=youname><p>
性别:
<input type=radio value=man name=sex checked> 男
<input type=radio value=girl name=sex> 女 <p>
国籍:
<select name=nationality>
<option selected value=china>中国
<option value=xin>新加坡
<option value=usa>美国
<option value=canada>加拿大
</select><p>
爱好:
<input type=checkbox name=sport1 checked value=Bball> 篮球
<input type=checkbox name=sport2 value=Vball> 排球
<input type=checkbox name=sport3 value=Fball> 足球
<input type=checkbox name=sport4 value=my_favorite value=swim> 游泳<p>
简介:<p>
<textarea wrap=soft name=commente rows=5 cols=60>
</textarea> <p>
<input type=submit value="submit" name=submit>
<input type=reset>
</form>
</body>
用户看到的页面:(插入不了图片,不好意思。将html代码写入到文本,并将文件的后缀名改为 .html就行了)
2.。。。。。。。在数据库中建立表(存放用户的信息)
create table SJ_user
(
SJid number(4),
youname varchar2(26),
sex varchar2(10),
nationality varchar(20),
sport1 varchar2(10),
sport2 varchar2(10),
sport3 varchar2(10),
sport4 varchar2(10),
commente varchar2(200)
);
3.。。。。。。。javaBean(就是SJ_User类用来设置和得到用户的信息)
(我的理解就是实现servlet和JDBC数据的转换和调用)
package servlet_jdbc;
public class SJ_User {
private int SJid;
private String youname;
private String sex;
private String nationality;
private String sport1;
private String sport2;
private String sport3;
private String sport4;
private String commente;
public SJ_User()
{
youname="1";
sex="1";
nationality="1";
sport1="1";
sport2="1";
sport3="1";
sport4="1";
commente="1";
}
public void setSJid(int id)
{
SJid=id;
}
public void setYouname(String name)
{
youname=name;
}
public void setSex(String sex1)
{
sex=sex1;
}
public void setNationality(String na)
{
nationality=na;
}
public void setSport1(String s1)
{
sport1=s1;
}
public void setSport2(String s2)
{
sport2=s2;
}
public void setSport3(String s3)
{
sport3=s3;
}
public void setSport4(String s4)
{
sport4=s4;
}
public void setCommente(String com)
{
commente=com;
}
public int getSJid()
{
return SJid;
}
public String getYouname()
{
return youname;
}
public String getSex()
{
return sex;
}
public String getNationality()
{
return nationality;
}
public String getSport1()
{
return sport1;
}
public String getSport2()
{
return sport2;
}
public String getSport3()
{
return sport3;
}
public String getSport4()
{
return sport4;
}
public String getCommente()
{
return commente;
}
}
4.。。。。。。。JDBC类(连接数据库)
这部分功能写的比较少,想实现更多功能参考我前面的一篇文章(那里面比较全)。
package servlet_jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class JDBC {
private static Connection conn = null;
private Statement stmt = null;
private ResultSet rs = null;
public static Connection getConnect()
{
Connection conn1 = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn1=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora9i","scott","tiger");
if(conn1 == null)
{
System.out.println("AA");
}
} catch (Exception e) {
System.out.println("conn bad!");
e.printStackTrace();
}
return conn1;
}
//向数据库中增加信息
public void addUser(SJ_User user)
{
try {
stmt=JDBC.getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String strSQL="insert into SJ_user values("+maxId()+",'"+user.getYouname()+"','"+user.getSex()+"','"+user.getNationality()+"','"+user.getSport1()+"','"+user.getSport2()+"','"+user.getSport3()+"','"+user.getSport4()+"','"+user.getCommente()+"')";
try {
rs=stmt.executeQuery(strSQL);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
JDBC.rsClose(rs);
JDBC.stmtClose(stmt);
JDBC.connClose(conn);
}
// System.out.println("success!");
}
//查出所有用户的信息
public ArrayList listAlluser()
{
ArrayList aa=new ArrayList();
try {
stmt=JDBC.getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String strSQL;
strSQL="select * from SJ_user";
try {
rs=stmt.executeQuery(strSQL);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while(rs.next())
{
SJ_User user=new SJ_User();
user.setSJid(rs.getInt(1));
if(rs.wasNull())
{
user.setSJid(-1);
}
user.setYouname(rs.getString(2));
if(rs.wasNull())
{
user.setYouname(null);
}
user.setSex(rs.getString(3));
if(rs.wasNull())
{
user.setSex(null);
}
user.setNationality(rs.getString(4));
if(rs.wasNull())
{
user.setSex(null);
}
user.setSport1(rs.getString(5));
if(rs.wasNull())
{
user.setSport1(null);
}
user.setSport2(rs.getString(6));
if(rs.wasNull())
{
user.setSport2(null);
}
user.setSport3(rs.getString(7));
if(rs.wasNull())
{
user.setSport3(null);
}
user.setSport4(rs.getString(8));
if(rs.wasNull())
{
user.setSport4(null);
}
user.setCommente(rs.getString(9));
if(rs.wasNull())
{
user.setCommente(null);
}
aa.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
JDBC.rsClose(rs);
JDBC.stmtClose(stmt);
JDBC.connClose(conn);
}
return aa;
}
//查询指定id的用户的信息
public SJ_User queryUser(int id)
{
SJ_User user=new SJ_User();
try {
stmt=JDBC.getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String strSQL="select * from SJ_user where SJid="+id;
try {
rs=stmt.executeQuery(strSQL);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
while(rs.next())
{
user.setSJid(rs.getInt(1));
if(rs.wasNull())
{
user.setSJid(-1);
}
user.setYouname(rs.getString(2));
if(rs.wasNull())
{
user.setYouname(null);
}
user.setSex(rs.getString(3));
if(rs.wasNull())
{
user.setSex(null);
}
user.setNationality(rs.getString(4));
if(rs.wasNull())
{
user.setSex(null);
}
user.setSport1(rs.getString(5));
if(rs.wasNull())
{
user.setSport1(null);
}
user.setSport2(rs.getString(6));
if(rs.wasNull())
{
user.setSport2(null);
}
user.setSport3(rs.getString(7));
if(rs.wasNull())
{
user.setSport3(null);
}
user.setSport4(rs.getString(8));
if(rs.wasNull())
{
user.setSport4(null);
}
user.setCommente(rs.getString(9));
if(rs.wasNull())
{
user.setCommente(null);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
JDBC.rsClose(rs);
JDBC.stmtClose(stmt);
JDBC.connClose(conn);
}
return user;
}
//获取数据库中最大的行数
public int maxId()
{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
int a=0;
try {
stmt=JDBC.getConnect().createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String strSQL="select max(SJid) maxid from SJ_user";
// System.out.println(strSQL);
try {
rs=stmt.executeQuery(strSQL);
while(rs.next())
{
int t=rs.getInt("maxid");
a=t;
// System.out.println(t+"+++++");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
JDBC.rsClose(rs);
JDBC.stmtClose(stmt);
JDBC.connClose(conn);
}
// System.out.println(a+"------");
return ++a;
}
//关闭结果集
public static void rsClose(ResultSet rs)
{
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//关闭语句对象
public static void stmtClose(Statement stmt)
{
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//关闭连接
public static void connClose(Connection conn)
{
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* public static void main(String [] args){
SJ_User user = new SJ_User();
new JDBC().addUser(user);
}
}
*/
5.。。。。。。。servlet(这部分比较重要,要结合前面两个类来看)
在这里面要实现的就是把servlet得到的用户的信息写入数据库,并根据具体要求从数据库中查询用户的信息并输出出来。(我在这里面封装了两个方法,还可以根据具体要求再加)。
package servlet_jdbc;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class serv_JDBC extends HttpServlet {
/**
* Constructor of the object.
*/
private String youname;
private String sex;
private String nationality;
private String sport1;
private String sport2;
private String sport3;
private String sport4;
private String commente;
public serv_JDBC() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @return
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("chenggong!");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
youname=request.getParameter("youname");
sex=request.getParameter("sex");
nationality=request.getParameter("nationality");
sport1=request.getParameter("sport1");
sport2=request.getParameter("sport2");
sport3=request.getParameter("sport3");
sport4=request.getParameter("sport4");
commente=request.getParameter("commente");
SJ_User sj=new SJ_User();
sj.setYouname(youname);
sj.setSex(sex);
sj.setNationality(nationality);
sj.setSport1(sport1);
sj.setSport2(sport2);
sj.setSport3(sport3);
sj.setSport4(sport4);
sj.setCommente(commente);
JDBC jdbc=new JDBC();
jdbc.addUser(sj);
//查询所有人的信息
printUser(jdbc.listAlluser());
//查询指定id的用户的信息
findUser(jdbc.queryUser(10));
out.flush();
out.close();
}
public SJ_User returnUser()
{
SJ_User sj=new SJ_User();
sj.setYouname(youname);
sj.setSex(sex);
sj.setNationality(nationality);
sj.setSport1(sport1);
sj.setSport2(sport2);
sj.setSport3(sport3);
sj.setSport4(sport4);
sj.setCommente(commente);
System.out.println("hdhdhhdhd ");
return sj;
}
public void printUser(ArrayList aa)
{
// JDBC jd=new JDBC();
//ArrayList aa=jd.listAlluser();
for(int i=0;i<aa.size();i++)
{
Object o=aa.get(i);
SJ_User user=(SJ_User) o;
System.out.println(user.getSJid()+" "+user.getYouname()+" "+user.getSex()+" "+user.getNationality()+" "+user.getSport1()+" "+user.getSport2()+" "+user.getSport3()+" "+user.getSport4()+" "+user.getCommente());
}
}
public void findUser(SJ_User user)
{
System.out.println(user.getSJid()+" "+user.getYouname()+" "+user.getSex()+" "+user.getNationality()+" "+user.getSport1()+" "+user.getSport2()+" "+user.getSport3()+" "+user.getSport4()+" "+user.getCommente());
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}