jsp+servlet+bean+mysql例子

mysql数据库是demo,表是stu,只有id和name字段。

本例子中jsp有添加和查询功能。命名有点乱,只是为了实现功能,回忆下基础内容。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
	<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
	<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
	<body>
	  <form id="fm">
	  	学号:<input type="text" id="id" name="id"><br>
	  	姓名:<input type="text" id="name" name="name"><br>
	  	<input type="button" id="btn" value="添加学生">
	  </form>
	  <br>
	 
	  <form>
	  	 学生id:<input type="text" id="idd" name="idd">
	  	 <input type="button" id="btnn" value="查询姓名">
	  </form>
	  <p id="p"></p>
    
  
		<script type="text/javascript">
		$(function(){
			$("#btn").click(function(){
				$.ajax({
					type:"post",
					datatype:"text",
					data:{
						id:$("#id").val(),
						name:$("#name").val(),
						i:"add"
					},
					url:"MyServlet",
					success:function(data){
						if(data==1){
							alert("添加成功");
						}
						else
							alert("添加失败");
					}
				});
			});
			
			
			$("#btnn").click(function(){
				$.ajax({
					type:"post",
					datatype:"text",
					data:{
						idd:$("#idd").val(),
						i:"query"
					},
					url:"MyServlet",
					success:function(data){
						if(data=="zero"){
							$("#p").html("无此学生");
						}
						else
							alert(data);
							$("#p").html(""+data);
					}
				});
			});
			
		});
		</script>
	</body>
</html>
下面是servlet

package demo;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public MyServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html");
		PrintWriter out=response.getWriter();
		String ii=request.getParameter("i");
		if(ii.equals("add"))
		{
			int id=Integer.parseInt(request.getParameter("id"));
			String name=request.getParameter("name");
			
			int i=UserDao.add(new User(id,name));
			if(i==1){
				out.print(1);
			}
			else{
				out.print(0);
			}
		}
		else if(ii.equals("query"))
		{
			int idd=Integer.parseInt(request.getParameter("idd"));
			User u=UserDao.find(idd);
			if(u==null)
			{
				out.print("zero");
			}
			else
			{
				String name=u.getname();
				out.print(name);
			}
		}
		return;
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}
然后是业务层的bean

package demo;

public class User {
	private int id;
	private String name;
	User()
	{
		
	}
	User(int id,String name)
	{
		this.id=id;
		this.name=name;
	}
	public int getid()
	{
		return this.id;
	}
	public void setid(int id)
	{
		this.id=id;
	}
	public String getname()
	{
		return this.name;
	}
	public void setname(String name)
	{
		this.name=name;
	}
}
再是数据访问接口dao

package demo;

import java.sql.*;

public class UserDao {
	public static int add(User user)
	{
		int flag=0;
		Connection conn=null;
		PreparedStatement ps=null;
		try{
			conn=JdbcUtil.getConn();
			String sql="insert into stu(id,name) values(?,?)";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, user.getid());
			System.out.println(user.getid());
			System.out.println(user.getname());
			ps.setString(2, user.getname());
			flag=ps.executeUpdate();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		finally
		{
			JdbcUtil.free(null,ps,conn);
		}
		return flag;
	}
	
	public static User find(int id)
	{
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		User user=null;
		try{
			conn=JdbcUtil.getConn();
			String sql="select * from stu where id=?";
			ps=conn.prepareStatement(sql);
			ps.setInt(1, id);
			rs=ps.executeQuery();
			if(rs.next())
			{
				user=new User();
				user.setid(rs.getInt("id"));
				user.setname(rs.getString("name"));;
			}
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		finally
		{
			JdbcUtil.free(rs,ps,conn);
		}		
		return user;
	}
	
}
最后是连接数据库的类

package demo;

import java.sql.*;

public class JdbcUtil {
	static String driverName=null;
	static String url=null;
	private JdbcUtil(){}
	static{	
		try{
			driverName="com.mysql.jdbc.Driver";
	    		String url1="jdbc:mysql://localhost:3306/demo";
	    		String url2="?user=root&password=rootroot";
	    		String url3="&useUnicode=true&characterEncoding=UTF-8";
	    		url=url1+url2+url3;
	    		Class.forName(driverName);

		}catch(Exception e)
		{
			throw new ExceptionInInitializerError(e);
		}
	}
	public static Connection getConn() throws SQLException
	{
		return DriverManager.getConnection(url);
	}
	public static void free(ResultSet rs,Statement st,Connection conn)
	{
		try
		{
			if(rs!=null) rs.close();
		}
		catch(SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				if(st!=null) st.close();
			}
			catch(SQLException e)
			{
				e.printStackTrace();
			}
			finally
			{				
				if(conn!=null)
				{
					try
					{
						conn.close();
					}
					catch(SQLException e)
					{
						e.printStackTrace();
					}
				}
			}
		}
	}
}
最后的结果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A. 本留言本采用jsp+javabean+servlet+mysql B. 本系统运行环境: windows/linux+ jdk1.4+resin(或tomcat)+jdbc+mysql 5.0 目录结构如下: 本版本数据库采用的是MYSQL,使用JDBC驱动,所以要求有MYSQL的JDBC的驱动程序;将驱动程序放在lib目录下,将WEB-INF目录下的web.xml文件考到你的发布目录下,web.xml是一些servlet的指向 同时将打包的note.jar文件放在lib目录下 本程序的所有的javabean和servlet类文件在src目录下 3、配置文件 修改本软件的数据库连接的配置文件在classes目录下,其中“isLog=on”代表打开日志功能,如果是“isLog=off”的话就表示关闭日志, logPath=D:\\jsp\\com\\ntsky\\log日志路径,logFile=DBConnectionManager.log,日志名相关的请看db.properties(解释得很详细) 不过注意在windows下和linux下路径稍微有点区别,在linux下文档为logPath=/www/log 表示在/www/log目录下。 请填写好你的URL访问路径,比如你的jsp在你的发布目录的note下,就请将你的SiteBaseURL设置成“SiteBaseURL=http://127.0.0.1:8080/note/” 端口号可以改 注意note后还有个/ 4、 数据库 数据库采用mysql 数据库的源文件在sql下的mysql.txt 对应的在sql下还有一份note.sql,你可以通过mysql –u root –p note<note.sql文件路径还原note数据库(前提是你的数据库先有一个空的数据库名为note的库)。 5、 系统初始话 请先运行note目录下的jspInIt.jsp,进行后台密码的初始话,管理后台的密码进行了MD5加密,降低了了秘密被人盗用的几率 6、 此留言本实现了MVC模式,完全是通过servlet控制数据,而且使用了连接池,一些基本的类也是完全提供,对学习jsp的MVC模式有很大的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值