1、3.1.2 jsp部分Jsp部分设计了8个页面,其中index页面用来跳转至login页面,login页面用来输入登录数据,welcome页面显示登录成功后可进行下一步操作的页面,logout页面显示用户登出后的状态,logo页面显示每页中都有的一个logo,message页面显示留言板的留言页面,showmessage页面显示留言板的内容。 3.1.3 servlet部分Servlet部分设计了3个,其中loginservlet用来处理用户登录时的数据,registerservlet用来处理用户注册时的数据,messageservlet用来处理用户运行留言板功能时的数据。3.1.4 java
2、bean部分Javabean部分设计了3个,其中databasebean用来连接access数据库,userdao用来进行用户在登录注册功能中对数据库的操作,messagedao用来进行用户在留言板功能中对数据库的操作。3.2 整个系统的结构,各模块之间的关系图 数据流图是对系统数据流向的一种描述,并从本质上让程序的使用者,大致了解系统的使用方法。本登录系统的大致流程图如下:图 3-2 数据流图3.3 系统中的MVC层次结构介绍MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系
3、统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。在这个登录系统中,视图(View)层为jsp,模型(Model)层为javabean,控制Controller)层为servlet。视图层用于与用户进行登录用户、密码的输入,注册用户、密码、电子邮件的输入等程序与用户之间的交互;模型层用于连接数据库并对按用户需求提取出的数据库信息的操作;控制层用于在用户输入数据后对输入数
4、据的处理及判断。3.4 各模块说明及介绍3.4.1 index.jsp此页面中仅有一句代码,用于跳转至login.jsp中。3.4.2 login.jsp此页面负责将用户输入的数据送给loginservlet处理或通过超链接进入register.jsp进行注册。 %=notice%/font% %用于将loginservlet中对用户输入的数据进行处理后的结果通过notice的文字表达方式送回本页面中来提示所输入的数据是否可用。3.4.3 register.jsp此页面与login.jsp页面基本一样,负责将用户输入的数据送给registerservlet处理。用于将servletservle
5、t中对用户输入的数据进行处理后的结果通过notice的文字表达方式送回本页面中来提示所输入的数据是否可用。3.4.4 welcome.jsp此页面为用户成功登陆后由login.jsp转至的页面,作用为进行登出或其他功能的操作。%String path = request.getContextPath(); String basePath = request.getScheme() + :/ + request.getServerName() + + request.getServerPort() + path + /;base href=%=basePath%这个标签在jsp中表示,该页所有的
6、默认连接时新窗口,还是当前页,还是框架页里打开新连接。%=(String) session.getAttribute(username)%用来取得在login.jsp中发出的username数据然后显示出来。a href=message.jsp点击进入留言板建立一个超链接连接至自行添加的功能留言板页面。3.4.5 logout.jsp此页面为用户登出后的界面。 已经退出登录用来接收前面所输入的username数据已显示。%session.removeAttribute(用来移除保存在session中的username数据,这样才可以在返回登陆页面后能重新输入用户数据进行登录。3.4.6 dat
7、abasebean.java此javabean用来连接数据库并定义一些变量来控制打开、更新、关闭数据库。定义class DatabaseBean控制整个databasebean中的整体变量,public DatabaseBean ()用来打开数据库,public boolean update(String sql)用来更新数据库中sql所指向的内容,public ResultSet query(String sql) 用来提取sql中所指向的内容,public boolean isThereAnyResult(String sql)用来判断sql在数据库中提取的内容和用户输入的数据的相同与否,
8、以ture和false返回。3.4.7 userdao.java此javabean用来定义数据库查询语句sql及进行相关的数据库操作。定义 public boolean isValid(String username, String password) 用来提取String sql = select * from user where username= + username + and password= + password +的内容并使用public boolean isThereAnyResult(String sql)进行判断后的返回值来操作用户输入的用户密码是否存在或密码是否错误。
9、定义public boolean isExist(String username) 用来提取String sql = select * from user where username=的内容并使用public boolean isThereAnyResult(String sql)进行判断后的返回值来操作用户在注册是输入的用户名是否存在。定义public void add(String username, String password, String email) 用来使用String sql = insert into user(username,password,email) valu
10、es(, + password + + email + )进行数据库的更新。3.4.8 loginservlet.java此servlet用来处理输入的登录数据。import javabean.UserDAO;添加userdao到此servlet中,使用 String username = request.getParameter(String password = request.getParameter(password用来提取在login.jsp中用户输入的数据,然后使用判断语句判断username = ,为真则返回notice为用户名未输入并传送至login.jsp,为假则使用user
11、dao中的userDao.isValid(username, password),返回为真则将username保存至session中并跳转至welcome.jsp页面以显示登录成功,为假则返回notice为用户名、密码输入错误并传送至login.jsp。3.4.9 registrerservlet.java此servlet用来处理输入的注册数据。String password1 = request.getParameter(password1String password2 = request.getParameter(password2String email = request.getPa
12、rameter(email用来提取在register.jsp中用户输入的用户名、密码、二次密码、电子邮件的数据,然后使用if (username.equals() | password1.equals() | password2.equals() 进行用户名、密码、二次密码是否为空,若判断为真则返回notice为信息未输入完整并传送至register.jsp中,判断为假则再进行if (!password1.equals(password2)判断密码与二次密码输入的数据是否相同,若判断为真则返回notice为两次输入密码不同并传送至register.jsp中,判断为假则使用userdao中的us
13、erDao.isExist(username),返回为真则返回notice为用户名已注册,请更换用户名并传送至registter.jsp中,为假则进行userDao.add(username, password2, email);的操作并返回notice为注册成功。4 系统界面截图 根据上面所介绍的本系统的各个模块及其需要实现的功能,下面详细设计如下:4.1.系统主界面截图 首先显示登录界面:若输入的用户名在数据库中不存在,则显示为:然后点击注册新用户进入注册页面:此处注册用户名为123,密码为123,email为123。若确认密码中输入的不是123则显示:注册成功则显示使用注册的用户名和密码
14、登录,显示weicome页面:点击进入留言板,显示:输入标题、留言内容后点击留言显示成功:点击查看留言板,显示留言板内的内容:5 新增代码说明新增代码为一个留言板功能,留言板的功能同样以MVC模型建立,其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,javabean则负责由servlet进行处理后所使用的功能。Jsp层中使用了两个jsp,message为留言板输入页面,showmessage为显示留言板页面。javabean层中使用了两个javabean,databasebean为连接数据库,messagedao用来进行用户在留言板功能中对数据库的操作。Servlet
15、层中使用了一个servlet,messageservlet用来处理用户运行留言板功能时的数据。在message.jsp中,String basePath = request.getScheme() + 用来取得在login.jsp中发出的username数据然后显示出来并发送至messageservlet中作为author的数据。showmessage.jsp点击查看留言板跳转至留言板查看页面。 在showmessage.jsp中,使用for (int i = 1; i + rs.getString(i) + out.print(/tr%的循环语句来循环提取在数据库中的留言板数据并打印在当前页
16、面中。在messagedao.java中,定义public void add(String title, String content,String author)用来将servlet发送出的数据添加到数据库中,定义public void show(String title,String content,String author)用来提取数据库中的数据。在messageservlet.java中,import javabean.UserDAO;添加userdao到此servlet中,使用String title = request.getParameter(titleString conte
17、nt=request.getParameter(contentString author = request.getParameter(author用来提取在message.jsp中用户输入的标题、内容和用户名的数据,然后使用if (title.equals() | content.equals() 进行标题、内容和用户名是否为空的判断,若判断为真则返回notice为未输入内容并传送至message.jsp中,判断为假则使用MessageDao中的 MessageDao.add(title,content,author),的操作并返回notice为已发表。添加新功能源代码如下:-message
18、.jsp-% page language=java import=java.util.* pageEncoding=UTF-8% String notice = (String) request.getAttribute(!DOCTYPE HTML PUBLIC -/W3C/DTD HTML 4.01 Transitional/ENhtmlheadtitle留言板/headbodycenterjsp:include page=logo.jsp/h2登录成功form name=form1 action=MessageServlet method=posttable width=300 borde
19、r=1td align=center 欢迎你,bluediv style=width: 500px; border: 1px solid; 留言标题:input type=text name= 用户: value=submit留 言/divtd colspan=2 align=退出/table/form/center/body/html-showmessage.jsp-DOCTYPE html% page import=.*java.sql.* String drv = sun.jdbc.odbc.JdbcOdbcDriver String url = jdbc:odbc:Driver=Mic
20、roSoft Access Driver (*.mdb);DBQ=d:j.mdb String usr = String pwd = String sql = select * from lyb order by title/order by id DESCinsert into message(TITLE,CONTENT,AUTHOR,COMPOSE_DATE) values ( + msg.getTitle() + , + msg.getContent() + + msg.getAuthor() + + msg.getStrDate() + delete from message where ID = + id + try Class.forName(drv); Connection conn = DriverManager.getConnection(url, usr, pwd); Statement stm = conn.createStatement(); ResultSet rs = stm.executeQuery(sql);HTMLBO
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1