以登录实现理解Servlet+jsp+JavaBean开发

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

学过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

原文地址:https://www.cnblogs.com/nullering/p/7582665.html