学习Java Web有一段时间了,借此机会和大家分享一个小东西——在线留言系统,虽然low,小喷即可,大喷伤心,还是希望大家的指正和意见,话不多说,直接上:
第一步:
①.写一个注册页面,这一个页面主要是用户的输入,比较简单,代码如下:
regist.jsp
pageEncoding="GBK"%>
注册页面用户名:
密码:
效果如图:
这里写图片描述
②.下面这个页面主要负责用来处理业务逻辑以及显示注册的结果,代码如下:
registdo.jsp
pageEncoding="GBK"%>
留言板request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=gbk");
/* PrintWriter out = response.getWriter(); */
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
ServletContext ctx = this.getServletContext();
String server = ctx.getInitParameter("server");
String dbname = ctx.getInitParameter("dbname");
String dbuser = ctx.getInitParameter("dbuser");
String dbpwd = ctx.getInitParameter("dbpwd");
UserDao dao = new UserDao();
User user = new User();
user.setUsername(username);
user.setUserpass(userpass);
try{
dao.getConn(server, dbname, dbuser, dbpwd);
if(dao.addUser(user)){
out.println("注册成功");
out.println("返回登陆");
}else{
out.println("注册失败");
out.println("返回注册");
}
}catch(Exception e){
e.printStackTrace();
}
%>
效果如图:
这里写图片描述
①.这一步写个登录页面,主要用来接收用户输入的登录信息:代码如下:
login.jsp
pageEncoding="GBK"%>
留言板用户名:
密码:
效果如图
这里写图片描述
②.这一步是需要写登录的逻辑及验证,并显示登录的结果,代码如下
logindo.jsp
pageEncoding="gbk"%>
留言板request.setCharacterEncoding("GBK");
response.setContentType("text/html;charset=GBK");
String username = request.getParameter("username");
String userpass = request.getParameter("userpass");
ServletContext ctx = request.getServletContext();
String server = ctx.getInitParameter("server");
String dbname = ctx.getInitParameter("dbname");
String dbuser = ctx.getInitParameter("dbuser");
String dbpwd = ctx.getInitParameter("dbpwd");
DBOper db = new DBOper();
String sql = "SELECT * FROM user Where username = ? AND userpass = ?";
try{
db.getConn(server, dbname, dbuser, dbpwd);
ResultSet rs = db.executeQuery(sql, new String[]{username,userpass});
if(rs!= null && rs.next()){
session.setAttribute("username", username);
Cookie cookie = new Cookie("username",username);
cookie.setMaxAge(60*60*24*30);
response.addCookie(cookie);
RequestDispatcher dispatcher = request.getRequestDispatcher("userlist.jsp");
dispatcher.forward(request, response);
}else{
out.println("登录失败!");
out.println("重新登录");
}
}catch(Exception e){
e.printStackTrace();
}finally{
db.closeAll();
}
%>
效果如图
这里写图片描述
前台的注册及登录页面到此已完成,下面我们接着做后台的数据
第二步
①.我们需要User类封装用户的信息,代码如下:
User.Java
package com.szx.jnmc;
public class User {
private int id;
private String username;
private String userpass;
private String phone;
private String email;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
②.有了User类,就需要进行数据库的访问,这时候我们需要一个连接数据库的基础类,所有与连接数据库的类都要 继承于此,代码如下:
DBOper.Java
public Connection conn = null;
public PreparedStatement ps = null;
public ResultSet rs = null;
/**
* 连接数据库
* @param server
* @param dbname
* @param dbuser
* @param dbpwd
* @return
* @throws SQLException
* @throws ClassNotFoundException
*/
public Connection getConn(String server,String dbname,String dbuser,String dbpwd) throws SQLException, ClassNotF