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

news/2024/5/19 0:49:23 标签: javaEE, javaWeb, JDBC, Tomcat, Servlet

 

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,并加上斜杠:"/资源路径"

 

 

 

 

 

 


http://www.niftyadmin.cn/n/1330451.html

相关文章

解决python初学问题TemplatesDoesNotExist

初学python,遇到TemplatesDoesNotExist问题 背景:为了实现如下功能 当初次访问http://127.0.0.1:8000/showPersons/时,报错TemplatesDoesNotExist 项目目录结构: 经查收原因: 应将,DIRS,由[ ]…

【JSP】JSP总结——html标签与java代码的巧妙缝合

JSP:Java Server Pages ▶ 概念:Java Server Pages: java服务器端页面 一个特殊的缝合怪页面——既可以写html标签,又可以写java代码 ▶ 原理:JSP本质上就是一个Servlet。 ▶ JSP脚本:Java代码写在哪 &…

2018 icpc网络赛-Nanjing 题解 J 题

原文链接:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Nanjing-online-J/ 题目链接: https://nanti.jisuanke.com/t/30999 A square-free integer is an integer which is indivisible by any square number except 11. For example, 6 2 \cdot 362⋅3…

【EL表达式 + JSTL标签库】—— 取代和简化JSP页面的java代码

EL:Expression Language ▶ 概念:Expression Language ,即 表达式语言 ▶ 作用:取代和简化jsp页面java代码的编写 ▶ 语法:${表达式} ▶ 注意:jsp页面默认支持el表达式。如果要忽略el表达式&#xff0c…

图解【MVC开发模式】【三层架构】

JSP演变历史 早期只有Servlet,什么都用response输出,尤其是大量的页面标签数据,是个棘手的问题后来有了jsp这个标签java代码的缝合怪,简化了Servlet开发——“简答题"变成了"填空题”,只是维护代码变成了噩…

2018 icpc网络赛-Nanjing 题解 L. Magical Girl Haze

题目链接:https://nanti.jisuanke.com/t/31001 There are NN cities in the country, and MM directional roads from uu to v(1\le u, v\le n)v(1≤u,v≤n). Every road has a distance c_ic i ​ . Haze is a Magical Girl that lives in City 11, she can choose no more…

【图解算法】这个课程表大不简单——拓扑排序

引言 >_< 现在需要为学生排好一张课表&#xff08;课程的学习顺序&#xff09; 可事情没有这么简单&#xff1a; 课程前驱课程课程0课程1课程0、课程4课程2课程3课程0课程4课程5课程3课程6课程3不妨画成一张图&#xff08;Graph&#xff09;试试看&#xff1f; 我们意…

2018 icpc网络赛-Nanjing 题解 A An Olympian Math Problem

题目链接&#xff1a;https://nanti.jisuanke.com/t/30990 1000ms 65536K Alice, a student of grade 66, is thinking about an Olympian Math problem, but she feels so despair that she cries. And her classmate, Bob, has no idea about the problem. Thus he wants y…