您的位置:首页 > Web前端 > JavaScript

JSP+SERVLET+MVC登录和注册的例子

2015-06-15 20:21 691 查看
登录和注册其实是简单的模块,但是有些地方如果需要深入的话也是蛮难的,现在只是初学者只能做最简单的事情了。

设计模块用的mvc模式。

用到的地方有model servlet jsp。

model:UserBean.java UserBeanBO.java

servlet: addpeople.java LoginCl.java

操作数据库:ConnDB.java

jsp页面:login.jsp register.jsp

登录模块

login.jsp:部分代码

<form action="LoginCl" method="post">
<div class="input-u cf">
<span class="input-name">邮箱/用户名</span>
<input type="text" id="uersname" name="username"           placeholder="邮箱/用户名/手机号" class="input-username input-one"/>
</div>
<br>
<div class="input-p cf">
<span class="input-name">密码</span>
<input type="password" id="password" name="password" placeholder="密码" class="input-password input-one"/>
</div>
<div class="input-b">
<input class="greenbtn" type="submit" value="登录">
</div>
</form>


点击登录进行servlet控制器处理

LoginCl.java

/**
*LoginCl中doGet的核心代码,其他就不拿出了
*/
String username = request.getParameter("username");
String password = request.getParameter("password");
UserBeanBO ubb = new UersBeanBO();
if(ubb.checkUser) {
request.getRequestDispatcher("checkout.jsp").forward(request, response);
} else{
request.getRequestDispatcher("login.jsp").forward(request, response);
}


看到上面if中调用了一个UserBeanBO中的方法,所以下面就开始写这个了

UserBeanBO.java部分代码

/*
*核心代码
*/
public boolean checkUser(String u, String p) {
boolean b = false;
try{
Connection ct = ConnDB.getConn();
PreparedStatement ps=ct.prepareStatement("select password from users where username=?");
ps.setString(1,u);
ResultSet rs = ps.executeQuery();
//得到数据库中的密码
if(rs.next){
String dbPassword = rs.getString(1);
if(dbPassword.equals(p)) {
b = true;
}
}
}catch (Exception e){
e.printStackTrace();
} finally{
//关闭资源
this.close();//close方法要自己写
}
return b;
}
//以上代码纯手打,可能出现出错。


下面贴出UserBean.java代码

public class UserBean {
private long userid ;
private String username;
private String truename;
private String password;
private String email;
private String phone ;
private String address;
private String postcode;
private int grade;

public long getUserid() {
return userid;
}
public void setUserid(long userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getTruename() {
return truename;
}
public void setTruename(String truename) {
this.truename = truename;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPostcode() {
return postcode;
}
public void setPostcode(String postcode) {
this.postcode = postcode;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}

}


接下到到了注册页面

register.jsp部分主要代码

<form action="addpeople" method="post">
<div class="input-u cf">
<span class="input-name">用户名</span>
<input type="text" id="username" name="username" placeholder="用户名" class="input-one"/>
</div>
<br>
<div class="input-u cf">
<span class="input-name">真实姓名</span>
<input type="text" id="truename" name="truename" placeholder="真实姓名" class="input-one"/>
</div>
<br>
<div class="input-p cf">
<span class="input-name">密码</span>
<input type="password" id="password" name="password" placeholder="密码" class="input-one"/>
</div>
<br>
<div class="input-u cf">
<span class="input-name">电子邮箱</span>
<input type="text" id="email" name="email" placeholder="电子邮箱" class="input-one"/>
</div>
<br>
<div class="input-u cf">
<span class="input-name">手机</span>
<input type="text" id="phone" name="phone" placeholder="手机" class="input-one"/>
</div>
<br>
<div class="input-u cf">
<span class="input-name">地址</span>
<input type="text" id="address" name="address" placeholder="地址" class="input-one"/>
</div>
<br>
<div class="input-u cf">
<span class="input-name">邮编</span>
<input type="text" id="postcode" name="postcode" placeholder="邮编" class="input-one"/>
</div>
<br>
<div class="input-b">
<input class="greenbtn" type="submit" value="注册">
</div>
</form>


然后是addpeople.java控制器

String username = request.getParameter("username");
String truename = request.getParameter("truename");
String password = request.getParameter("password");
String email = request.getParameter("email");
String phone = request.getParameter("phone");
String address = request.getParameter("address");
String postcode = request.getParameter("postcode");
UserBeanBO ubb = new UserBeanBO();

UserBean user = new UserBean();
user.setUsername(username);
user.setTruename(truename);
user.setPassword(password);
user.setEmail(email);
user.setPhone(phone);
user.setAddress(address);
user.setPostcode(postcode);
user = ubb.savaUser(user);

if(user!=null) {
request.getRequestDispatcher("login.jsp").forward(request, response);
}else{
request.getRequestDispatcher("register.jsp").forward(request, response);
}


然后还是UserBeanBO.java

public UserBean savaUser(UserBean user) {
Connection ct  = ConnDB.getConn();
String sql = "INSERT INTO users(username,truename,password,email,phone,address,postcode) values(?,?,?,?,?,?,?)";
try {
PreparedStatement ps=ct.prepareStatement(sql);
ps.setString(1, user.getUsername());
ps.setString(2, user.getTruename());
ps.setString(3, user.getPassword());
ps.setString(4, user.getEmail());
ps.setString(5, user.getPhone());
ps.setString(6, user.getAddress());
ps.setString(7, user.getPostcode());
ps.executeUpdate();

ps.close();
} catch (Exception e) {
e.printStackTrace();
}finally{

//关闭资源
this.close();
}
return user;
}


最后把ConnDB.java贴出来

public class ConnDB {

public static Connection getConn(){
Connection ct=null;
try {

Class.forName("com.mysql.jdbc.Driver");
ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名称","数据库账号","密码");

} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}

return ct;
}
}
我用的是mysql数据库


以上就是简单的登录和注册例子,本文仅供it初学者,大神勿喷。

下一篇我将把根据用户名查询一条记录的一个字段判断如何登录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  model 设计 模式 jsp