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查询数据库,结果集处理

需要写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老师,给予我非常非常多的收获,听董老的课很开心,在此省略超级超级多的字……就是很棒!)
