好文档 - 专业文书写作范文服务资料分享网站

毕业论文-基于JSP的BBS论坛管理系统设计

天下 分享 时间: 加入收藏 我要投稿 点赞

如果输入的密码不正确,则不能进行发表新帖和回复。如果用户以浏览者的身份进入网站,则只能进行一般的帖子浏览和搜索,而不能发表新帖和回复,在点击发表新帖后,系统会判断该用户是否是登陆用户,如果不是则进入登陆页面,如果是第一次登陆,请先注册。

登陆的具体实现要通过一个全程变量,即Session变量来实现,用户登录的界面userlogin.jsp,从user表查得用户提交的帐户名和密码正确后,用一个全局变量,即Session变量保存这一消息该变量称为session.setAttribute(\, \);。具体的判断过程为:

表4.2用户登陆代码实现 <% request.setCharacterEncoding(\); String action = request.getParameter(\); String username; String pwd; if (action != null && action.trim().equals(\)) { username = request.getParameter(\); pwd = request.getParameter(\); try { //创建一个用户表数据库读写类 UserMgr userdb=new UserMgr(); //通过用户名查找用户 此方法在封装在UserMgr.java中 User user1=userdb.get(username); if (user1 == null) { // 如果记录集为空,表明没有相匹配的用户名,注册失败: try { //转发至注册错误页面 response.sendRedirect(\); } catch (Throwable t) { //写异常日志 getServletContext().log(t.getMessage()); } } else if (user1.getPassword().equals(pwd)){ try { //转发至注册成功页面

18

} catch (Throwable t) { //写异常日志 getServletContext().log(t.getMessage()); } } } catch (Exception e) { e.printStackTrace(); } } %> boolean ulog = false; //判断用户是否登陆

String u = (String)session.getAttribute(\); if (u != null && u.trim().equals(\)) ulog = true;

//设置session判断用户是否登陆如果已登陆则为true session.setAttribute(\, \); //设置session用来得到用户名 session.setAttribute(\, username); response.sendRedirect(\);//跳转到住页面 若ulog为false,表明没有经过登陆与否的验证,则只能已游客的生份浏览和搜索帖子如果想留言和发表帖子,只有登录或注册用户才可以。

若ulog为true则表名用户已经登陆,而且可以用session得到用户名(String)session.getAttribute(\,显示在主页上。

如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即user表,并提示用户注册成功。就可以进行其它有效的操作了。

系统对用户的注册信息的验证实现如下:

19

首先是用正则表达式对表单的控制

表4.3 正则表达式对表单的控制

表4.4 用户注册代码实现 <%@ page pageEncoding=\%> <%@ page import=\%> <%@ page import=\%>

20

<%@ page import=\%> <% request.setCharacterEncoding(\); String action = request.getParameter(\);//提交到自身所以需要做判断 String username; if (action != null && action.trim().equals(\)){ username = request.getParameter(\);//得到表单信息 String pwd = request.getParameter(\); String confpwd = request.getParameter(\); String email = request.getParameter(\); String sex = request.getParameter(\); try { //创建一个用户表数据库读写类 UserMgr userdb=new UserMgr(); User user=userdb.get(username); if (user != null) { // 如果记录集为非空,表明有相匹配的用户名,注册失败 try { //转发至注册错误页面 response.sendRedirect(\); } catch (Throwable t) { //写异常日志 getServletContext().log(t.getMessage()); } } else { user=new User(); user.setUsername(username); user.setPassword(pwd); user.setEmail(email); user.setsex(sex); //写入数据库 int i=userdb.add(user); // 注册成功 try { //设置session 判断是否注册成功 session.setAttribute(\,\); //设置session用来在主页获取用户名 session.setAttribute(\,username); //注册成功跳转到主页 response.sendRedirect(\); } catch (Throwable t) { //写异常日志

21

} %> getServletContext().log(t.getMessage()); } } } catch (Exception e) { e.printStackTrace(); } 4.2.3分页显示的功能实现

这里是分页功能的实现,这里把每页几条记录设为一个常量便于修改。

表4.5 分页显示代码实现 <% final int PAGE_SIZE = 4; // 每页几条记录 int pageNo = 1; String strPageNo = request.getParameter(\);//当前页 if (strPageNo != null && !strPageNo.trim().equals(\)) { try { pageNo = Integer.parseInt(strPageNo); } catch (NumberFormatException e) { pageNo = 1; //异常处理如果当前为空pageNo = 1 } } if (pageNo <= 0)//如果小于0 pageNo = 1 pageNo = 1; int totalPages = 0;//总页数 List

articles = new ArrayList
();//定义一个数组链表 Connection conn = DB.getConn(); Statement stmtCount = DB.createStmt(conn); ResultSet rsCount = DB.executeQuery(stmtCount, \); // 显示所有pid=0的帖子 rsCount.next(); int totalRecords = rsCount.getInt(1);//总记录数 totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE; if (pageNo > totalPages) pageNo = totalPages; Statement stmt = DB.createStmt(conn); int startPos = (pageNo - 1) * PAGE_SIZE;

22

毕业论文-基于JSP的BBS论坛管理系统设计

如果输入的密码不正确,则不能进行发表新帖和回复。如果用户以浏览者的身份进入网站,则只能进行一般的帖子浏览和搜索,而不能发表新帖和回复,在点击发表新帖后,系统会判断该用户是否是登陆用户,如果不是则进入登陆页面,如果是第一次登陆,请先注册。登陆的具体实现要通过一个全程变量,即Session变量来实现,用户登录的界面userlogin.jsp,从user表查得用户提
推荐度:
点击下载文档文档为doc格式
1idbc9ttmi3fmdy9ul8q7b8vd5385a00y2d
领取福利

微信扫码领取福利

微信扫码分享