为幸福写歌

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在Servlet中操作数据库跟普通Java文件操作数据库是一样的

注意连接数据库要将需要的jar包拷贝到Tomcat容器上,因为Servlet是在Tomcat上运行的,不是Eclipse。

具体有两种方法:

  1. 将.jar拷贝到%Tomcat%/lib文件夹上,这种方式所有的webapps都可以使用(公共lib库)
  2. 在自己的webapps目录的WEB-INF文件夹下建立一个lib文件夹,然后将.jar包拷贝到此文件夹内,这种方式只有放有jar包的webapps才能使用(独立lib库)
下面通过一个例子来说明怎么操作数据库,在之前的用户管理系统上添加在数据库上验证的功能:
先在SQL Server上新建TestServlet数据库:
create database TestServlet
go

use TestServlet
go

create table users (
userId int primary key identity(1,1),--用户id号
username varchar(20),--用户名
passwd varchar(20),--用户密码
email varchar(30),--电子邮件 
grade int)--用户的级别  
go 


insert into users values
('admin','admin','admin@sohu.com',1)

insert into users values
('shunping','shunping','shunping@sohu.com', 1)

insert into users values
('tester1','tester1','tester1@sohu.com',5)

insert into users values
('tester2','tester2','tester2@sohu.com',5)

insert into users values
('tester3','tester3','tester3@sohu.com',5)

insert into users values
('tester4','tester4','tester4@sohu.com',5)

insert into users values
('tester5','tester5','tester5@sohu.com',5)

insert into users values
('tester6','tester6','tester6@sohu.com',5)

insert into users values
('tester7','tester7','tester7@sohu.com',5)

insert into users values
('tester8','tester8','tester8@sohu.com',5)

insert into users values
('tester9','tester9','tester9@sohu.com',5)

insert into users values('tester10','tester10','tester10@sohu.com',5)

insert into users values('tester11','tester11','tester11@sohu.com',5)

insert into users values('tester12','tester12','tester12@sohu.com',5)

insert into users values('tester13','tester13','tester13@sohu.com',5)

insert into users values('tester14','tester14','tester14@sohu.com',5)

--显示用户表
select * from users;

 

然后在用户管理系统的LoginCl上添加数据库验证的代码:
/** 
 * @(#)HelloGen.java 
 * 
 *验证页面 
 * @author  
 * @version 1.00 2017/2/23 
 */  
package com.chongqing;  
  
import javax.servlet.http.*;  
import java.io.*;  
import java.sql.*;
  
public class LoginCl extends HttpServlet {  
      
    //处理get请求  
    public void doGet(HttpServletRequest req,HttpServletResponse res){  
          
          	Connection ct = null;  
       		PreparedStatement ps = null;  
        	ResultSet rs = null; 
          	 
            //业务逻辑  
            try {  
                //接收用户名和密码  
                String u = req.getParameter("username");  
                String p = req.getParameter("passwd");  
                	
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=TestServlet","sa","293313");  
            	ps = ct.prepareStatement("select * from users where username = ? and passwd = ?");  
            	ps.setString(1,u);
            	ps.setString(2,p);
		        rs = ps.executeQuery();    
 				
                if(rs.next()){
                	
                	 //合法,添加Session并跳转到欢迎界面  
                    HttpSession mySession = req.getSession(true);  
                    mySession.setMaxInactiveInterval(30);                   //指定Session存活的时间,单位是秒  
                    mySession.setAttribute("usname",u);                       //在Session中添加一个属性  
                      
                    res.sendRedirect("wel");//转到wel界面        	
                }else{  
                          
                     //不合法  
                     res.sendRedirect("login");//返回login界面  
                    }  
           
              
              /*    
                //验证  
                if(u.equals("zero")&&p.equals("123")){  
                      
                    //合法,添加Session并跳转到欢迎界面  
                    HttpSession mySession = req.getSession(true);  
                    mySession.setMaxInactiveInterval(30);                   //指定Session存活的时间,单位是秒  
                    mySession.setAttribute("usname",u);                       //在Session中添加一个属性  
                      
                    res.sendRedirect("wel");//写你要到的Servlet的URL  
                      
                    }else{  
                          
                        //不合法  
                        res.sendRedirect("login");//写你要到的Servlet的URL  
                    }  
                  */
  
            }  
            catch (Exception ex) {  
                ex.printStackTrace();  
            }finally{  
	            //关闭资源!!!  
	            //关闭顺序是,谁后创建谁先关闭  
	              
	            try {  
	                if(null != rs){  
	                    rs.close();  
	                }  
	                if(null != ps){  
	                    ps.close();  
	                }  
	                if(null != ct){  
	                    ct.close();  
	                }  
	            } catch (SQLException e) {  
	                // TODO: handle exception  
	                e.printStackTrace();  
	            }  
       		}  
        }  
          
    public void doPost(HttpServletRequest req,HttpServletResponse res){  
          
        this.doGet(req,res);  
    }  
}  

 

运行结果表明,只有在users表中有的用户而且密码正确才能进入wel界面。
 

 

posted on 2017-03-24 18:56  为幸福写歌  阅读(185)  评论(0编辑  收藏  举报