写在前面:菜鸟拙见,望请纠正

学过servlet的都知道,书本上一直说servlet一直作为控制器使用,它不实现view层,也不做具体的事务处理,那servlet到底是干什么的哪?怎么合理的用它呐??

1:首先我们先写一个登陆界面(源码下方有链接,这里谈谈效果)

1 <form class="login-from" action="${pageContext.request.contextPath }/user" id="loginfrom" method="post">
2 <input type="hidden" name="method" value="login">
3 。。。。。。
4 </form>

  提交的表单要注意,为了将整个表单的数据往一个servlet提交,这里我采用一个隐藏字段,添加method为login的方法

2:我们新建servlet并在web.xml中进行配置:通过配置表单由

<url-pattern>/user</url-pattern>----><servlet-name>UserServlet</servlet-name>----><servlet-name>UserServlet</servlet-name>---->
<servlet-class>com.xqc.chatroom.action.UserServlet</servlet-class>被传给了UserServlet
1   <servlet>
2 <servlet-name>UserServlet</servlet-name>
3 <servlet-class>com.xqc.chatroom.action.UserServlet</servlet-class>
4 </servlet>
5
6 <servlet-mapping>
7 <servlet-name>UserServlet</servlet-name>
8 <url-pattern>/user</url-pattern>
9 </servlet-mapping>

在新建的Userservlet中

看代码:Userservlet为了甩锅,说“这些小事我不能干啊,我是控制器,那UserService你来干吧!”然后顺利甩锅给Service

我们打开Service

1 public class UserService {
2
3 public User login(User user) {
4 UserDao dao = new UserDaoImple();
5 return dao.login(user);
6 }
7 }

Service一看,“妈呀这要访问数据库啊!我干不了,我也得找个人干这事!”于是Service来到了dao层找到UserDao

1 public interface UserDao {
2
3 public User login(User user);
4
5 }

UserDao听到说“我就是个空架子,你有事去找‘实现’去!”所以UserService就new UserDaoImple()

 1     public User login(User user) {
2 QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
3 String sql = "select * from user where username = ? and password = ?";
4 User existUser;
5 try {
6 existUser = queryRunner.query(sql, new BeanHandler<User>(User.class), user.getUsername(),user.getPassword());
7 } catch (SQLException e) {
8 e.printStackTrace();
9 throw new RuntimeException("用户登录失败!");
10 }
11 return existUser;
12
13 }

于是UserDaoImpl就联合JDBCUtils和老朋友c3p0实现了和数据库的交互然后把结果返回Service,Service也直接就把拿到的结果直接返回给servlet,然后servlet拿到结果,说“我明白了!控制就交给我吧!是有效的用户我就让他去main.jsp,不是我就让他滚蛋!”这次终于办了点正事不甩锅了!

1111

以登录实现理解Servlet+jsp+JavaBean开发的更多相关文章

  1. javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  2. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  3. 基于Servlet+JSP+JavaBean开发模式的用户登录注册

    http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...

  4. javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  5. Servlet+JSP+JavaBean开发模式(MVC)介绍

    好伤心...写登陆注册之前看见一篇很好的博文,没有收藏,然后找不到了. 前几天在知乎上看见一个问题,什么时候感觉最无力. 前两天一直想回答:尝试过google到的所有solve case,结果bug依 ...

  6. javaweb开发3.基于Servlet+JSP+JavaBean开发模式的用户登录注册

    转载孤傲苍狼博客http://www.cnblogs.com/xdp-gacl/p/3902537.html 1.层次比较分明的项目结构图

  7. JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  8. 咸鱼入门到放弃11--Servlet+JSP+JavaBean开发模式

    本篇搬运了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servle ...

  9. MVC开发模式之Servlet+jsp+javaBean

    Servlet+jsp+JavaBean组合开发是一种MVC开发模式,控制器Controller采用Servlet.模型Model采用JavaBean.视图View采用JSP. 1.Web开发的请求- ...

随机推荐

  1. 对象的数据属性(Object)

    value: 对象属性的默认值,默认值为undefined configurable: 能否使用delete.能否需改属性特性.或能否修改访问器属性.,false为不可重新定义,默认值为true en ...

  2. windows下php使用zerophp

    官网地址:http://zeromq.org/ 下载windows版本安装(不过php可以不用安装,直接使用扩展包就可以了) 然后下载php的zmq扩展包:https://pecl.php.net/p ...

  3. eclipse安装lua

    单击Eclipse->Help->Install New Software… 在Work with中输入网址 Kepler - http://download.eclipse.org/re ...

  4. Visual Studio 下nuget命令的使用

    从Visual Studio 2012版本开始默认集成了Nuget扩展,在Visual Studio 2010或以下的版本需要单独安装,安装方法如下: 1. “工具”→“扩展和更新...”,弹出扩展管 ...

  5. java中如何打war包

    1.利用jdk里的工具   例如我们要打包的文件在D:\Project:运行 cmd: cd D:\Project 进入D:\Project ,然后输入jar -cvf  Project.war *回 ...

  6. 使用Docker构建AspNetCore应用

    #Build Image Stage FROM microsoft/aspnetcore-build:2 AS build-env WORKDIR /api # 以下为优化还原,因为项目文件不常变动D ...

  7. 可以触发点击事件并变色的UILabel

    可以触发点击事件并变色的UILabel 谁说UILabel不能够当做button处理点击事件呢?今天,笔者就像大家提供一个改造过的,能够触发点击事件并变色的UILabel:) 效果图: 还能当做计时器 ...

  8. 固定UILabel宽度分行显示

    固定UILabel宽度分行显示 这种小伎俩估计都被用烂了,笔者给大家提供一个category文件,供大家简单设置哦. 各种富文本效果哦(普通文本也是可以用的呢): 3行,固定宽度200 2行,固定宽度 ...

  9. Configuration Manager 和内容位置(包源文件)

    Configuration Manager 2007 中的内容位置涉及 Configuration Manager 2007 客户端如何查找播发和软件更新的包源文件.当客户端需要查找内容时,它会将内容 ...

  10. magento2 重置后台密码

    项目根目录:运行如下命令 bin/magento admin:user:create --admin-user="admin" --admin-password="123 ...