JAVAEE开发基于MVC模式的登陆应用
姓名:刘义峰学号:071300316 2009-11-21
实验要求:
使用完整的MVC模式实现用户注册和登录应用。
1.Model使用 JavaBean访问数据库;
2.View使用JSP做登录页面和反馈页面;
3.Controller使用Servlet做控制器,进行页面转换。
实验内容:
开发一个完整的MVC模式的Java web应用------类似login的应用。
功能一: 一个有输入信息的登陆页面,提交给一个Servlet,Servlet调用javabean,javabean 访问数据库并验证用户是否合法,如果合法,
Servlet转发给另一个web 欢迎页面,如果非法,提示用户登
陆出错。
功能二: 一个有输入信息的注册页面,提交给一个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 username = request.getParameter("username");
String passwd = request.getParameter("password");
UserChecker checker = new UserChecker(username, passwd);
if(checker.check()){
out.println("
welcome," + username + "
");}
else{
out.println("
username not exist or password is
wrong
");}
out.flush();
out.close();
(4).创建一个javabean UserChecker,用于验证用户是否合法. 代码如下: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(){
;
}
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 = connection.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 {
/**
*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 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;
}
}
(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 = new NewUser(username, passwd);
if(register.AddNewUser() >= 0){
out.println("
register succeed
");}
else{
out.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, 用于向数据库中加入一条用户记录. 代码如下:
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){
https://www.wendangku.net/doc/f63223981.html,ername = name;
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 st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
}
(9)发布应用
(10)应用测试
在浏览器中输入http://localhost:8080/logon/, 出现登陆界面
点击下角的register链接,注册新用户:
注册成功后出现如下界面:
用刚注册的用户登陆,成功后显示欢迎信息:
应用里还用到了一些javascript,用来检查提交时信息是否合法。
比如注册时密码和验证密码不相符:
实验总结:
在本次实验中,独立完成了包含登陆和注册两个功能的web应用。对MVC模式的各层都有了更深入的了解。不过, 也存在一些疑惑:同样是java文件,为什么有的叫javabean,有些又叫servlet。可能是用法不同,从而叫法不同吧。但还是不明白为何要区分的这么细,而不统称为javabeans. 相信随着应用JAVAEE的时间增长,这些疑问会解决的。