架构实例之Demo_JSP_JavaBean
1、开发工具和开发环境
开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13
开发环境:WIN10
2、Demo_JSP_JavaBean实现功能
用户登录、用户注册、退出登录。
3、Demo_JSP_Java_Bean使用技术
本实例使用了JSP、JavaBean和JDBC来实现用户登录、用户注册和退出登录功能。系统架构图如图一所示:
图一:Demo_JSP_Java_Bean系统架构图
下面请看图二(系统中JSP与JavaBean之间的逻辑关系图):
图二:系统中JSP与JavaBean之间的逻辑关系图
4、具体实现
(1)在MyEclipse中新建一个Web project项目,并命名为Demo_JSP_JavaBean;
(2)向Demo_JSP项目中导入mysql-connector-java-5.1.6-bin.jar,这个包是实现Java连接数据库功能的包(不会导入包的同学,可以百度哟);
附:mysql-connector-java-5.1.6-bin.jar百度云下载链接:http://pan.baidu.com/s/1i5psdDF 密码:meyg
(3)在Demo_JSP项目中新建以下JavaBean文件和JSP文件(PS:其中JSP文件代码此处只贴出部分代码,其他JSP文件代码请参考本人上一篇博客哦(链接地址:http://www.cnblogs.com/liuzhen1995/p/5700409.html)):
1)创建Java类DBAccess,包名取为liu,该类实现数据库登录连接的功能,具体代码如下:
packageliu;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classDBAccess {private String drv = "com.mysql.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/library_system";private String usr = "root";private String pwd = "root";private Connection conn = null;private Statement stm = null;private ResultSet rs = null;public booleancreateConn() {boolean b = false;try{
Class.forName(drv).newInstance();
conn=DriverManager.getConnection(url, usr, pwd);
b= true;
}catch(SQLException e) {
}catch(ClassNotFoundException e) {
}catch(InstantiationException e) {
}catch(IllegalAccessException e) {
}returnb;
}public booleanupdate(String sql) {boolean b = false;try{
stm=conn.createStatement();
stm.execute(sql);
b= true;
}catch(Exception e) {
System.out.println(e.toString());
}returnb;
}public voidquery(String sql) {try{
stm=conn.createStatement();
rs=stm.executeQuery(sql);
}catch(Exception e) {
}
}public booleannext() {boolean b = false;try{if(rs.next())b = true;
}catch(Exception e) {
}returnb;
}publicString getValue(String field) {
String value= null;try{if(rs!=null)value =rs.getString(field);
}catch(Exception e) {
}returnvalue;
}public voidcloseConn() {try{if (conn != null)
conn.close();
}catch(SQLException e) {
}
}public voidcloseStm() {try{if (stm != null)
stm.close();
}catch(SQLException e) {
}
}public voidcloseRs() {try{if (rs != null)
rs.close();
}catch(SQLException e) {
}
}publicConnection getConn() {returnconn;
}public voidsetConn(Connection conn) {this.conn =conn;
}publicString getDrv() {returndrv;
}public voidsetDrv(String drv) {this.drv =drv;
}publicString getPwd() {returnpwd;
}public voidsetPwd(String pwd) {this.pwd =pwd;
}publicResultSet getRs() {returnrs;
}public voidsetRs(ResultSet rs) {this.rs =rs;
}publicStatement getStm() {returnstm;
}public voidsetStm(Statement stm) {this.stm =stm;
}publicString getUrl() {returnurl;
}public voidsetUrl(String url) {this.url =url;
}publicString getUsr() {returnusr;
}public voidsetUsr(String usr) {this.usr =usr;
}
}
2)在上一步中创建的包下,再创建一个Java类UserBean,该类实现数据库查询和写入功能,具体代码如下:
packageliu;public classUserBean {public booleanvalid(String username, String password) {boolean isValid = false;
DBAccess db= newDBAccess();if(db.createConn()) {
String sql= "select * from userInfo where username='"+username+"' and password='"+password+"'";
db.query(sql);if(db.next()) {
isValid= true;
}
db.closeRs();
db.closeStm();
db.closeConn();
}returnisValid;
}public booleanisExist(String username) {boolean isExist = false;
DBAccess db= newDBAccess();if(db.createConn()) {
String sql= "select * from userInfo where username='"+username+"'";
db.query(sql);if(db.next()) {
isExist= true;
}
db.closeRs();
db.closeStm();
db.closeConn();
}returnisExist;
}public voidadd(String username, String password, String email) {
DBAccess db= newDBAccess();if(db.createConn()) {
String sql= "insert into userInfo(username,password,mail) values('"+username+"','"+password+"','"+email+"')";
db.update(sql);
db.closeStm();
db.closeConn();
}
}
}
3)login_action.jsp,接收login.jsp页面中用户输入的用户名和密码,通过调用JavaBean实现登录认证,具体代码如下:
//get parameters
String username = request.getParameter("username");
String password= request.getParameter("password");//check null
if (username == null || password == null) {
response.sendRedirect("login.jsp");
}//validate
UserBean userBean = newUserBean();boolean isValid =userBean.valid(username, password);if(isValid) {
session.setAttribute("username", username);
response.sendRedirect("welcome.jsp");
}else{
response.sendRedirect("login.jsp");
}%>
My JSP 'login_action.jsp' starting page4)register_action.jsp,通过调用JavaBean实现注册,并把数据写入数据库,具体代码如下:
String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
//get parameters
String username = request.getParameter("username");
String password1= request.getParameter("password1");
String password2= request.getParameter("password2");
String email= request.getParameter("email");//check null
if (username == null || password1 == null || password2 == null || !password1.equals(password2)) {
response.sendRedirect("register.jsp");
}//validate
UserBean userBean = newUserBean();boolean isExist =userBean.isExist(username);if(!isExist) {
userBean.add(username, password1, email);
response.sendRedirect("login.jsp");
}else{
response.sendRedirect("register.jsp");
}%>
My JSP 'register_action.jsp' starting page5、运行结果展示
具体运行结果请参考本人上一篇博客哦,运行结果是一模一样的(链接地址:http://www.cnblogs.com/liuzhen1995/p/5700409.html)~~~
附:Demo_JSP_JavaBean项目源码文件百度云下载链接:http://pan.baidu.com/s/1sl1nd9r 密码:lrdk; 本实例所使用数据库建表sql语句文件下载链接:http://pan.baidu.com/s/1eS0n9aM 密码:7ttd