《JAVAEE开发基于MVC模式的登陆应用.doc》由会员分享,可在线阅读,更多相关《JAVAEE开发基于MVC模式的登陆应用.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVAEE开发基于MVC模式的登陆应用姓名:刘义峰学号:0713003162009-11-21实验要求: 使用完整的MVC模式实现用户注册和登录应用。1.Model使用 JavaBean访问数据库;2.View使用JSP做登录页面和反馈页面;3.Controller使用Servlet做控制器,进行页面转换。实验内容:开发一个完整的MVC模式的Java web应用-类似login的应用。功能一: 一个有输入信息的登陆页面,提交给一个Servlet,Servlet调用javabean,javabean 访问数据库并验证用户是否合法,如果合法,Servlet转发给另一个web欢迎页面,如果非法,
2、提示用户登陆出错。 功能二: 一个有输入信息的注册页面,提交给一个Servlet,Servlet调用 javabean,javabean访问数据库并完成新用户的注册, 并提示用户注册是否成功, 然后在3秒钟后转向登陆界面。实验步骤:(1) .创建一个java web 工程 logon(2) .改写index.jsp, 具体内容见源码。(3) .创建一个Servlet userLogon,改写userLogon中的doGet()方法如下:response.setContentType(text/html);PrintWriter out = response.getWriter();String
3、 username = request.getParameter(username);String passwd = request.getParameter(password);UserChecker checker = new UserChecker(username, passwd);if(checker.check()out.println(welcome, + username + );elseout.println(username not exist or password is wrong);out.flush();out.close();(4) .创建一个javabean U
4、serChecker, 用于验证用户是否合法. 代码如下:package user;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import mysql.DBConn;public class UserChecker private String userName;private String password;private DBConn conn;private String sql;public UserChecker
5、();public UserChecker(String name, String passwd)userName = name;password = passwd;conn = new DBConn();sql = select * from usertable where username = + userName + and password = + password + ;public boolean check()Connection connection = conn.getConn();Statement st;ResultSet rs = null;try st = conne
6、ction.createStatement();rs = st.executeQuery(sql);if(rs.next()return true; catch (SQLException e) e.printStackTrace();return false;(5) .创建一个javabean DBConn, 用于连接数据库. 代码如下,具体的数据库连接信息按需修改.为了简便,这里采用MySql数据库:package mysql;import java.sql.Connection;import java.sql.DriverManager;public class DBConn /* *
7、Fields */private Connection dbConn;Private String dbUrl = jdbc:mysql:/localhost:3306/test;private String dbUser = root;private String dbPwd = lyfdj;private String err;/* * Constructor */public DBConn() err = ;dbConn = null;/* * get connectio method * return a connection to mysql */public Connection
8、getConn() try Class.forName(com.mysql.jdbc.Driver).newInstance();dbConn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); catch (Exception ex) dbConn = null;err = ex.toString();System.out.println(err);return dbConn;/* * get error message * return error message */public String getErr() return err;
9、(6) .创建一个jsp页面 register.jsp, 用于用户注册,具体内容见源代码。(7) .创建一个Servlet UserRegister,用于添加一个新用户,改写UserRegister中的doGet()方法. 代码如下:response.setContentType(text/html);PrintWriter out = response.getWriter();String username = request.getParameter(nick);String passwd = request.getParameter(password);NewUser register
10、= new NewUser(username, passwd);if(register.AddNewUser() = 0)out.println(register succeed);elseout.println(register failed);out.println(You will go back to index page after 3 seconds.);response.setHeader(Refresh, 3; URL = ./index.jsp);out.flush();out.close();(8) .创建一个javabean, 用于向数据库中加入一条用户记录. 代码如下:
11、package user;import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import mysql.DBConn;public class NewUser private String username;private String password;private DBConn conn;private String sql;public NewUser()public NewUser(String name, String password)this.username = n
12、ame;this.password = password;System.out.println(username: + username + password: + password);conn = new DBConn();sql = insert into usertable values( + username + , + password + );public int AddNewUser()Connection connection = conn.getConn();Statement st;try st = connection.createStatement();return s
13、t.executeUpdate(sql); catch (SQLException e) e.printStackTrace();return -1;(9)发布应用(10)应用测试在浏览器中输入http:/localhost:8080/logon/, 出现登陆界面点击下角的register链接,注册新用户:注册成功后出现如下界面:用刚注册的用户登陆, 成功后显示欢迎信息:应用里还用到了一些javascript, 用来检查提交时信息是否合法。比如注册时密码和验证密码不相符:实验总结:在本次实验中, 独立完成了包含登陆和注册两个功能的web应用。对MVC模式的各层都有了更深入的了解。不过, 也存在一些疑惑:同样是java文件, 为什么有的叫javabean, 有些又叫servlet。 可能是用法不同, 从而叫法不同吧。 但还是不明白为何要区分的这么细, 而不统称为javabeans. 相信随着应用JAVAEE的时间增长, 这些疑问会解决的。