用户登录界面的实现与部署——思路与结构分析

 

Hello,JavaWeb

 

这是一个简单的账户密码登录界面。

很简单,如果登录成功,显示"登录成功! + 账户名";登录失败显示"登录失败,用户名或密码错误"
在这里插入图片描述
 

思路分析

  1. 创建JavaEE项目
  2. 编辑配置Tomcat —— 此时服务器应该是可运行的
  3. login.html界面 —— 写一个post方式提交的表单就行
  4. 数据库连接池框架(JDBCTemplate),连接与操作数据库
  5. 一个Servlet类对应loginServlet资源路径,failServletsuccessServlet通过请求转发实现

 

结构分析

在这里插入图片描述

  1. 创建JavaEE项目时可指定工作空间位置,该工作空间对应IDEA左侧的目录。"真正的Web项目"是其中的web文件夹——tomcat文件夹会引用到那里
  2. src与web并列,这不必多说
  3. dao数据持久层,用来具体操作数据库,进行增删改查。
    这里的UserDao类使用了JDBCTemplate对象(框架),获取该对象需要传参连接池DataSourse),而连接池通过JDBCUtils工具类的静态方法获得。而JDBCUtils工具类不是从最底层实现的,而是使用了Druid自动注册驱动,获取连接池。
  4. 上面说到的JDBCUtils工具类放在utils目录下。因为这个JDBCUtils工具类是通过Druid实现的,因此把用到的druid.properties配置文件放在src下
  5. domain目录下放的是javaBean标准类,用于封装数据。
  6. servlet目录业务逻辑层,通过调用dao层来对数据库进行访问。loginServlet中,调用UserDao判断数据库中是否存在某个账户密码(请求参数),请求转发到failServlet或successServlet
  7. test目录不必多说。
  8. web根目录下是WEB-INF目录 + 其他资源(默认的是index.jsp)
  9. WEB-INF目录是web项目的安全目录,下面有web.xml(配置文件,高版本不需要)、classes(上面src目录下的类们,其字节码class文件都被放在此处)、lib(jar包通常放在这里)
  10. 重要的一点是,jar包一般都放在WEB-INF目录下的lib中;另外,WEB-INF的目录结构非常严格,lib写成libs也会出问题

 

 

BUG

 
form表单的action路径的写法

虚拟目录 + 对应Servlet的资源路径(目的是调用到对应的Servlet资源,完成逻辑)

 

JavaBean——标准的Java类

▶ 要求:

  1. 类必须被public修饰
  2. 必须提供空参的构造器
  3. 成员变量必须使用private修饰
  4. 提供公共setter和getter方法

▶ 理解:这种类通常放在domain包(目录)下。因为其标准性,因此可以用BeanUtilspopulate()方法实现由键值对到对象的封装。当然本质作用还是存储数据。
 

BeanUtils封装map失败的bug

不小心重写了toString()方法。删掉即可。
 

jar包导入问题

通常是把jar包放在WEB-INF目录下的lib中。
WEB-INF的目录结构十分严格,写成libs是不行的。
 
使用druid数据库连接池技术时的bug

通常是由于druid.properties配置文件的问题造成的——
一来把druid.properties配置文件放在src目录下就可以;二来不要忘记修改配置(Driver全类名写新版本的、时区问题、账户密码问题)
 
易错点

使用注解资源路径Servlet资源进行映射时,资源路径忘了改(默认的是name="xxxxx"
需要把name删掉直接省略默认的value,并加上斜杠:"/资源路径"

 

 

 

 

 

 

©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页