如何用jsp,servlet完成一个简单的用户登录的MVC模式设计的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用jsp,servlet完成一个简单的用户登录的MVC模式设计的实现相关的知识,希望对你有一定的参考价值。

首先,你要知道M,V,C分别是什么意思。

M是model,也就是模型,一般都是用javabean来表示,JavaBean有实体类,逻辑业务类两种,例如一个实体类对应数据库的一个表,我们对数据库的操作可以用逻辑类来做。

V是view,是现实显示层,也就是用jsp来做,注意,在jsp中要尽量少用java脚本,这也是我们的追求。

C是controller,也就是控制层,它负责接收由V层发过来的请求,然后根据请求调用JavaBean层的类,然后再将数据返回给页面或者选择跳转到哪个页面。

例如登陆系统,用户从V层看到登陆界面,然后用户填写ID和密码,发送请求,C层接收到请求,根据请求调用M层,查询数据库,如果存在该用户并且密码正确,责跳转到登陆成功页面或者其他的;如果用户名或者密码不存在或错误,就跳转到登陆失败提示页面。

呵呵,我已经尽量简洁的说出了MVC模式的开发,当然,如果去看书,肯定会比较详细的。

记得我刚开始学的时候也是什么也不懂,用多了就明白了。

记住,概念固然重要,但是,更重要的是实践,多敲代码才是最快的学习方法。

希望我的回答可以给你带来帮助,加油!

如下图所示:

参考技术A 简单的举一个例子, 只是希望你可以大致的通过它明白MVC每层的意义, 代码也只是随手写来, 并未debug过, 如有错误请见谅.

V: 一个jsp文件 里面有一个表单 大致内容有用户名, 密码等. form表单标
签头
<form action="ServLogin" method="post">
<input type="text" name="userName" value="" />
<input type="text" name="password" value="" />
</form>
C: 就是接收jsp请求的servlet ServLogin.java, 它接收参数,然后负责跳转到一个处理业务逻辑的bean, 假定此bean名为LoginBean
String userName = request.getParameter("userName");
String password = request.getParameter("password");
.....
LoginBean loginBean = new LoginBean();
boolean result = loginBean.validate(userName, password);

M: 就是LoginBean, 它里面有一个方法boolean validate(String userName, String password);它主要负责验证用户名,密码, 并返回一个布尔值.
class LoginBean
public boolean validate(String userName, String password)
......
return true;


参考技术B mvc意思就是model + view + controller
jsp 充当view
servlet充当controller
javaBean充当model
参考技术C 建议买本书看看

servlet 和 jsp 中的会话跟踪

【中文标题】servlet 和 jsp 中的会话跟踪【英文标题】:Session tracking in servlets and jsp 【发布时间】:2013-04-12 15:49:12 【问题描述】:

我首先在 jsp 中创建了一个登录面板(index.jsp),用户在其中输入用户名和密码,然后提交到一个 servlet(登录),该 servlet(登录)检查用户的真实性并在验证后将其带到主页(home.jsp)。 jsp)。

我想在他/她登录后存储用户信息,所以我在我的 servlet(login) 中实现了如下操作

response.sendRedirect("shome.jsp");
HttpSession sr=request.getSession(true);
sr.setAttribute("no", u);

(你是我的字符串变量)

现在如何在 home.jsp 中检索 no 的值?

【问题讨论】:

【参考方案1】:

no 应该在引号内。

sr.setAttribute("no", u);

在 JSP 中这样提供

<%
String username=(String)session.getAttribute("no");
%>

并在 JSP 的任何地方使用字符串username

例子

<H1>Your User name is: <%=username%>.</H1>

【讨论】:

在servlet中我们创建了一个会话,例如我创建了一个名为sr的会话,那么在jsp中使用会话时为什么不使用呢? @saumyaraj 实际上你并没有创建会话 ..你只是将会话附加到请求并在 jsp 中使用相同的会话 ..记住你只是在使用,而不是在创建。让我知道如果你还有杂耍.. :)

以上是关于如何用jsp,servlet完成一个简单的用户登录的MVC模式设计的实现的主要内容,如果未能解决你的问题,请参考以下文章

jsp+servlet+mysql 实现简单的银行登录转账功能

jsp+servlet怎样防止用户用URL直接访问页面

如何处理/限制用户对 servlet 和 jsp 的访问?

如何用servlet写一个简单的购物车系统

如何用把Arraylist中的结果在jsp页面中用分页显示?java+jsp语言

如何用java开发一个web系统