day_5 使servlet小程序连接数据库

来源:互联网 发布:常用的网络拓扑结构是 编辑:程序博客网 时间:2024/06/04 01:22

需求:上一day所编写的servlet网页程序已经实现了用户名登录以及cookie技术,

那么,怎样让servlet网页程序使用数据库中的表作为登录依据呢?

今天实现的便是连接数据库这一功能

首先,我们先做好准备,安装驱动

参考教程:  http://wenku.baidu.com/link?url=w3Aks8OPj6XfbQpfra8o-35fCWULbYVABPCcwdJ708z8XO_Sqb_mVAG1PX2H_uve9w-OOS5n9AqaPnYmebV-MpL8TNyaSKeXO7jBN6r_HhK

此项最为费时间,请耐心一步一步完成

其中如果用的java编辑器不是eclipse,只需按照你所用的编辑器的方式导入jdbc4.jar

驱动顺利安装完成之后


让我们给logincl做些改变

//登录控制文件的servletpackage test1;import javax.servlet.http.*;import java.io.*;import java.sql.*;public class LoginCl extends HttpServlet{public void doGet(HttpServletRequest req,HttpServletResponse res){this.doPost(req,res);}public void doPost(HttpServletRequest req,HttpServletResponse res){Connection ct = null;ResultSet rs = null;Statement sm = null;try{//服务器接收login页面发来的用户名和密码,要用到req。String u = req.getParameter("username");//此处填写组件名String p = req.getParameter("passwd");//此处填写组件名//连接到数据库(运行驱动) Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  //得到链接  ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=数据库名","数据库用户名","数据库密码");  //创建Statrment sm=ct.createStatement(); rs=sm.executeQuery("select top 1 passwd from users where username ='"+u+"'"); if(rs.next())//查询到了{//说明用户是存在的String dbPasswd=rs.getString(1);if(dbPasswd.equals(p)){//密码和数据库中的一致HttpSession hs = req.getSession(true);hs.setMaxInactiveInterval(20);hs.setAttribute("pass","ok");//连接登录后的欢迎界面 //sendRedirect的作用是跳转界面 res.sendRedirect("wel?username="+u+"&passwd="+p);//该处填写域名}elseres.sendRedirect("login");}else{//说明连用户名都没有输对,跳转res.sendRedirect("login");}}catch(Exception ex){ex.printStackTrace();}finally{try{
//打开的数据库对象要关闭(和打开的顺序相反)if(rs!=null){rs.close();}if(sm!=null){sm.close();}if(ct!=null){ct.close();}}catch (Exception ex){ex.printStackTrace();}}}}


打开tomcat来一把,

输入你数据库中有的账户名和密码,顺利登录!

之后,直接在数据库表中添加或修改用户信息,servlet程序会直接读取,用不着修改程序。

0 0