项目名称:

拼饭后台管理系统

项目需求:

实现用户登录功能

实现用户退出功能

实现用户注册功能

功能分析:

用户登录:

根据用户名和密码查询客户信息。查到则登录成功,查不到则登录失败。

用户退出:

销毁session

用户注册:

将用户注册信息插入数据库

数据库设计:

用户表:t_user

用户id uid

用户名 uname

用户密码 pwd

用户性别 sex

用户年龄 age

出生日期 birthday

SQL语句设计:

用户登录:

select * from t_user where uname=? and pwd=?

用户注册:

insert into t_user values(default,?,?,?,?,?)

代码实现:

参照源码

------------------------------------------------------------

问题:

现在我们一个请求或者一个独立的业务逻辑都单独的进行一个Servlet的创建,进行请求处理。

但是一个网站的功能是非常多的,如果每个都创建单独的Servlet进行处理,这样就造成Servlet过多。

造成服务器内存资源浪费。

解决:

服务器在接收到浏览器的请求后会调用对应的Servlet进行请求处理。

然后调用Servlet中的service方法进行处理。

我们将不同功能的处理封装成不同的方法。

在service方法中调用其对应的功能处理方法进行请求处理。

这样Servlet我们只需要一个。

新的问题:

如何在service方法中如何动态的根据请求来调用对应的功能来处理?

解决:

使用反射。

注意:

请求中要附带需要执行的方法的名称。

------------------------------------------------------------

问题2:

现在使用反射我们实现了在service方法中动态的根据请求调用对应的方法进行请求处理。

但真实开发过程中,虽然不会每个功能都创建一个Servlet,但是也不会只使用一个Servlet,我们的servlet不只是一个。

一般是一个独立的功能模块一个Servlet。我们需要这些Servlet的service方法中都要将反射代码声明一遍。

解决:

向上抽取baseServlet类。

实现:

我们自己的Servlet--->

向上抽取父类(service方法)

注意:我们希望baseServlet不能被访问到(不能在web.xml中配置baseServlet)

我们希望baseServlet不能被实例化(改为抽象类)

--->HttpServlet

baseServlet使用:

1、创建Servlet继承baseServlet即可。

2、在自己的servlet中不要声明service方法,只需声明处理请求的方法即可。

3、正常访问我们自己的servlet即可。

注意:请求必须附带要被执行的方法名。

----------------------------------------------------------------

JSP+Servlet项目整合练习总结和期望:

总结:

1、套用模板进行页面快速构架

在自己的项目中创建jsp文件

然后将模板中的前端相关代码复制到自己的jsp文件中。

将静态资源复制到webroot下。

2、MVC开发流程

M:Model service dao pojo

V:View jsp css js html

C:Controller servlet

3、Servlet+jsp+jdbc的功能开发流程

1、浏览器发起请求直接给jsp

2、浏览器发起功能请求给servlet,servlet调用service,service进行业务处理,

service调用dao,dao层进行数据库操作(jdbc),dao层将处理结果返回给service,

service再将结果返回给servlet,请求转发或者重定向给jsp,

(或者继续请求转发或重定向其他servlet继续处理)jsp做出页面的响应。

4、request和session作用域的使用

request:请求转发流转数据的载体

session:重定向的数据流转的载体(但是session可以解决同一用户不同请求的数据共享问题)

5、浏览器发起请求到服务器 请求发起的方式(重点记忆)

非ajax请求:

form表单提交:action为数据提交地址,method为数据提交方式

超链接标签:href为数据提交地址,可以直接使用?拼接请求数据,类似form表单的get请求方式。

js中的window.location.href:href为数据提交地址,可以直接使用?拼接请求数据,类似form表单的get请求方式。

注意:

使用以上请求方式发起的请求,浏览器在接收到响应内容后会将原有内容覆盖,显示响应结果。

6、BaseServlet的抽取和使用

反射

抽象类

------------------------------------------------------------------------------

项目缺陷:

1、在JSP中获取从servlet中流转过来的数据特别麻烦

2、在JSP页面中使用java代码块进行逻辑处理书写和阅读极不方便

3、使用session进行数据流转是很方便的,但是session失效了,所有依赖session的功能都会失效

4、响应结果都是覆盖原有内容显示给用户

jsp调用servlet_053 JSP+Servlet整合练习:拼饭后台管理系统框架文档相关推荐

  1. jsp调用其他jsp中的js代码

    前言 在熟悉代码时,随便选了一个按钮,规则导出的功能. 在使用F12进行debug时,发现被调用的js方法和按钮不在一个jsp页面中,感觉很神奇的调用了! 正文: 第一阶段: 通过F12查看调用的路径 ...

  2. jsp 调用html,jsp怎么调用css样式?

    添加css样式会让你的jsp页面看上去更引人注目,更美观.那是如何在jsp中调用css样式的呢?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在jsp页 ...

  3. jsp SpringMVC 前台页面集成Markdown编辑器及在页面上实现文档编辑保存预下载

    首先在官网下载文档编辑插件 插件项目地址:Editor.md - 开源在线 Markdown 编辑器 将下载好的的插件项目解压,把解压好的包拷贝到我们项目的 webapp-static静态资源文件下. ...

  4. 计算机毕业设计java+jsp鲜花销售商城信息网站(源码+系统+mysql数据库+Lw文档)

    项目介绍 花卉,是人们生活的调剂品,它为人们的生活添加了更多的色彩和味道.花卉市场是一个对花卉进行集中展示和销售的地方,它有琳琅满目的花卉让人们去选择和购买.相对应的他在管理程度上也有一定的复杂性.如 ...

  5. springcloud微服务整合/集成swagger(knife4j-小刀)实现在线文档调试和查看功能

    1.在gateway网关层加入以下依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifact ...

  6. [FLASH IDE] [教程]Flash处理外部XML文档数据详细教程[ASP,JSP]

    准备: 首先你得有台电脑.其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档.就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的. XML扩展标记 ...

  7. JAVA调用PageOffice在线打开、编辑Word文档

    普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果. 下面我就简单的和大家分享一下如何实现Word文档的 ...

  8. java 调用office_JAVA调用PageOffice在线打开、编辑Word文档

    普通的MS Office Word只能在本地磁盘上打开和编辑保存,这使得程序员在开发项目时受到很多的约束,许多的功能无法实现或者无法达到理想的效果. 下面我就简单的和大家分享一下如何实现Word文档的 ...

  9. Qt文档阅读笔记-共享库的创建与调用

    使用共享库的符号 这个符号可以作用在变量.类.函数中,并且这些都可以被调用端使用. 在编译共享库中,需要使用export符号.在使用端调用的时候使用import符号. 这里是本人从文档中记录的笔记,大 ...

最新文章

  1. 特斯拉 model3 没有信号_Model 3在北京失控撞人,特斯拉:未发现任何系统故障
  2. 《 自动化测试最佳实践:来自全球的经典自动化测试案例解析》一一1.6 正确度量...
  3. Centos7 安装 tomcat9 后访问慢且 shutdown.sh 报错,提示 8005 端口未启用
  4. 散列表(哈希表)工作原理 (转)
  5. 百度顶会论文复现(2):GAN综述
  6. wow工程修理机器人图纸_工程的修理机器人图纸是哪里弄来的……
  7. YYH算组合数(NOIP模拟赛Round 6)
  8. SpringBoot(13)--- 数据库操作(集成MyBatis)
  9. 简述导线平差计算的五个步骤_RTK技术导线测量和全站仪导线测量有什么区别?...
  10. 工作5年后才明白:不起眼的技能中,藏着你的未来
  11. BUPT复试专题—最小距离查询(2013)
  12. maven 里的 repositories里空的_IntelliJ IDEA 结合 maven通过profile实现多环境
  13. html里面布局的优劣,HTML与CSS布局技巧总结
  14. linux中安装yum简单方法
  15. MySQL数据库锁机制
  16. GB50174《电子信息系统机房设计规范》(福建)贯标培训通知
  17. php调京东联盟接口,使用京东联盟API获取自定义促销链接
  18. 十个值得所有极客收藏的网站
  19. 计算机提示无法识别优盘,插入U盘显示无法识别怎么办
  20. vue3响应式原理-effect

热门文章

  1. XML_CPP_资料_libXml2_01
  2. 第一个简单APP设计图
  3. PowerShell 转码函数 Default-UTF8
  4. NSUserDefault的使用
  5. Java打包生成exe(使用exe4j和inno setup)
  6. (TOJ1248)Encoding
  7. 缺少ncurses包的解决办法
  8. CentOS 7.5 安装Zabbix4.4.4和Grafana6.4.4监控系统安装
  9. kettle 连接 Oracle 异常
  10. MyEclipse中解决“Save could not be completed”问题!