[TOC]

1.学习视频:web巩固(一) —— 直播课

2.学习内容:
1>servlet
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
2>简单了解Token
1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
2、Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
3、使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
(详情见 —-> https://www.jianshu.com/p/24825a2683e6)
—————————————————————————————————-
巩固一下的学习内容:
1< controller
service
2< 重定向

3< 一般情况下,4 开头的异常都是没找到
eg. 405
4< 网页拼接 — html.append(“”);
5< 静态关键字可以修饰

==============================================
* 本次课程使用的技术: Servlet + jdbc + mysql + 前端 + javase

  • his (医院管理系统)
    权限管理 : 实现不同的用户登录,可以不同的操作
    用户管理 zs ls 一个科室
    角色管理 医生
    功能管理 a , b , c , d
    基本信息管理
    医生管理 : 录入和管理医生信息 (增删改查)
    药品管理 :
    项目管理 : 检查项目,血常规,CT等
    药品单位管理
    供应商管理:
    门诊管理
    挂号
    划价 : 门诊医生治疗
    缴费
    退费
    药局管理
    出药
    退药
    进药
    药库管理
    住院管理
    申请单
    护士工作站
    病例
    。。。

    我们重点要实现的是his中的权限管理部分
    1. 不同的用户登录,可以有不同的操作菜单
    2. 不同的用户登录,在同一个页面有不同的操作按钮
    3. 不同的用户登录,在同一个页面,看到不同的数据

  • 登录
    创建web程序
    概要设计
    * 建表
    t_user(
    uid 主键
    uname 用户名
    upass 密码
    yl1 预留1 —>用户状态
    yl2 预留2 //防止未来需要增加的属性

    //delete 删除状态(假删除)
    )
    建实体
    设计登录页面
    回顾:
    1. web程序的运行和编写是2部分
    idea中那个web程序,是编写程序 (d:/workspace)
    运行的程序是需要从idea部署到服务器上 (c:/tomcat/webapps)
    有时会发发现明明写了这个网页,但服务器找不到,原因可能就是没从编写程序复制到运行程序
    2. idea并没有将web程序直接部署到tomcat/webapps中,而是通过配置写到了一个out文件夹中。
    3. 部署时,不是将web程序全到复制到tomcat(out)上,而是将web文件夹中的内容部署到服务器。
    url:localhost:8080 访问的是out目录中的程序

    注意:
    web程序编写时要明白
    html/jsp网页文件被写在了程序中。
    但这个网页的展示,实在浏览器中
    所以点击网页中的按钮,实在浏览器中点击的。
    请求映射
    web.xml配置,根据请求,匹配对应的Servlet(Controller)
    注意:导入servlet相关的jar文件。
    jdbc查询数据库,结果集处理

image.png
需要写web程序,框外面的是需要了解的

===============================================================================================
* 回顾B/S结构,内部访问过程

  • 完善了登录验证的过程

  • 优化界面
    尝试使用一个前端框架:layui
    官网下载工具包 : https://www.layui.com/
    将工具包中的layui文件夹复制到程序的web目录中
    在需要使用layui的网页中,引入layui的2个基本文件 css , js


    按需cv改
    使用layui-面板 设计登录页面

  • 登录失败以后,不但需要重新显示登录界面,还需要有一个错误提示(弹窗)
    可以使用 js 的 alert 对话框

    但这个提示不是每次都显示
    登录失败,给出提示,
    首次登录(没验证,要输入账号密码),不提示
    分析发现,这个提示需要由登录验证的结果决定是否显示
    这个登录页面应该是一个动态界面
    静态页面: 每次访问都是相同的效果
    动态页面: 随着后台数据,展现的效果不同
    如何编写动态页面呢?
    1. 使用Servlet拼装动态页面
    2. 使用jsp拼装动态页面
    3. 使用js拼装
    4. 使用jsp的替代品 freemarker拼装
    5. 使用jsp的替代品 thymeleaf拼装
    。。。。
    所以动态的页面内容,就不能写在html中了
    需要写在servlet中
    所以当我们要访问登录页面时,就不能请求html了,需要servlet

一般4开头的都代表没找到
405 : 表示处理请求的方法没有找到
service可以处理get和post请求
doGet可以处理get请求
doPost可以处理post请求

servlet 和 jsp都可以拼装动态网页
servlet = java(主场) + html
jsp = java + html(主场)

  • 使用layui-布局 设计主页面

3.编码练习:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <servlet>
        <servlet-name>login</servlet-name>
        <servlet-class>controller.LoginController</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

</web-app>
public class LoginController extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //逻辑
        //1.获取请求发送过来的账号和密码
        String aname = request.getParameter("aname");
        String apassword = request.getParameter("apassword");
        System.out.println("接受到了浏览器发送过来的请求信息"+aname+"--"+apassword);
        //2.负责处理一个业务判断---调用业务层的登录方法
        AtmService service = new AtmService();
        String result = service.login(aname,apassword);
        //3.根据业务方法的执行结果  给予响应
    }
}
public class AtmService {
    //业务层   负责数据的处理    比较 判断 计算 等等一些逻辑
    public String login(String aname,String apassword){
        //查询数据库中真实的账号和密码
        //做对比
        return "";
    }
}

4.学习总结:
通过听dmc老师直播课讲解,对 his (医院管理系统)中的权限管理部分有了一定的了解,也跟着简单复习了servlet的部分代码。
(在此夸赞dmc老师,给予我非常非常多的收获,听董老的课很开心,在此省略超级超级多的字……就是很棒!)