当前位置: 首页 > news >正文

javaweb不同用户登录不同页面的页面_Javaweb知识点小总结

Javaweb知识点小总结②

e37318fc864fa2e4a7de8de1cdb964d0.gif

六、Java WEB项目结构

一般来说,我们常说的Java项目基本上都是WEB项目(B/S架构),不是说Java不能做C/S程序,实际上Java的Swing就是画界面的,但是现在C#已经成为画界面最流行的语言,快速,简单,所以越来越少的人用Java来做C/S程序开发了。

e37318fc864fa2e4a7de8de1cdb964d0.gif

七、开发框架

前面提到客户端发起动态请求时,请求到Servlet进行处理,然后返回,整个请求处理的工作都是在Servlet中处理的,看起来比较简单,每当需要一个不同的请求就写一个Servlet,但实际开发的时候如果功能模块比较多,就需要写很多个Servlet,并且如果我们想修改一个请求的返回,也必须通过修改Java代码 (Servlet)的方式来实现。

这样对功能的扩展和维护来说,就比较麻烦了,所以也就推动了很多集成幵发框架的流行,比如Webwork,Struts,SpringMVC,Jfinal等都是主流的Java WEB开发框架。

使用框架有一个很笼统的优点概述,可以加快开发进程,在类似项目中重用代码将为开发者节省大量的时间和精力.框架为执行繁琐的代码任务提供预建模块。让使用者只关心核心业务的开发,框架帮你屏蔽原有技术跟业务开发无关的各类技术问题。但如果想要深入的了解一个框架,使用的更加熟练,还是需要了解底层的原理,找到其源头也就是Servlet。

以SpringMVC为例简单描述一下工作原理

SprfngMVC主要也是通过DispatcherServlet (Servlet调配器,在web_xml中配置)实现了Servlet这个接口,又叫前端控制器,来自前端的请求会先到达这里,它负责到后台去匹配合适的handler。DispatcherServlet的主要工作流程如下:

1、 客户端发出http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.

2、 DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器Controller (Handler)。

3、 DispatclierServlet 根据 HandlerMapping 找到对应的Handler,将处理权交给Handler ( Handler将具体的处理进行封装),再由具体的 HandlerAdapter对Handler进行具体的调用。

4、Handler对数据处理完成以后将返回一个ModeAndView对象给DispatcherServlet.

5、  Handler返回的ModelAndView只是一个逻辑视图并不是一个式的视图,Di spatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图view(这句话简单的就是返回一个要返回的页面的相对路径,通过试图解析器转换成具体那个页面)。

6、  Dispatcher通过model解析出ModeAndView中的参数进行解析最终展现出完整的view并返回给客户端。

25f319b0b07536d0b04591be4833f8f6.png

e37318fc864fa2e4a7de8de1cdb964d0.gif

八、用SpringMVC编写功能模块

由于框架配置工作量比较大,也需要对各方面的技术有所了解,暂时不做描述。我们简单的说一下实际开发中,如何在现有的框架基础上完成一个功能模块,了解功能的基本流程,以登录为例:

1、首先要有登录入口( JSP页面),在SpringMVC框架中我们不建议直接 访问JSP页面,所以我们登录页面的访问也是通过后台处理的;

2、编写丨ogin.jsp页面及登录返回页面index.jsp ;

3、编写LoginController,里面包含两个请求控制方法,一个preLogin(),一个doLogin() ,其中preLogin()负责处理请求登录页面的请求(返回到 login.jsp ), doLogin()处理登录请求返回到index.jsp。

4. login.jsp中需要通过表单或者ajax进行登录请求。

请求/preLogin业务逻辑处理返回到login.jsp à 输入用户名、密码…

请求/doLogin业务逻辑处理,返回登录结果index.jsp。

九、其他基础知识

数据库操作,Jdbc/Hibernate/Mybatis

JSP标签,EL表达式,Struts标签,C标签等

基本的前端技术CSS/JS/jQuery/Ajax

d48a09798238d1384f83b2968b3f1f3e.png

相关文章:

  • c语言选择排序_C语言必学的12个排序算法:简单选择排序(第6篇)
  • python合并视频和音频_Python实现五毛钱特效
  • gitlab账号密码登录不了_DevOps元素周期表—1号元素 Gitlab
  • python根据输入的三个数求平均分_Python 实现输入任意多个数,并计算其平均值的例子...
  • hive 字符串拼接_Hive行转列详解
  • idea 单元测试_java单元测试覆盖率统计
  • iframe 注入js_基于HTML注入的一种攻击思路
  • java多线程实例_Java 多线程三大核心点实例讲解
  • python安装依赖包经常出错怎么办_如何解决Python包依赖问题
  • python 定时播放音乐_python – 如何在第一首歌曲结束后安排音频文件在pygame中自动播放?...
  • jedis依赖_Jedis认知
  • python中lower的用法_Python string islower()用法及代码示例
  • 前端为什么有的接口明明是成功回调却执行了.catch失败回调_【微信支付】微信支付成功之后没有请求回调接口...
  • axture动画原型制作_新的工作流程如何将ZBrush雕刻的角色变成虚幻引擎的动画角色...
  • pip版本和python版本一样吗_windows下多版本python安装与pip安装和pip使用 吐血总结...
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Debian下无root权限使用Python访问Oracle
  • Java,console输出实时的转向GUI textbox
  • JavaWeb(学习笔记二)
  • Java应用性能调优
  • Laravel Mix运行时关于es2015报错解决方案
  • Markdown 语法简单说明
  • MD5加密原理解析及OC版原理实现
  • Python实现BT种子转化为磁力链接【实战】
  • spring boot下thymeleaf全局静态变量配置
  • 程序员该如何有效的找工作?
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • ionic入门之数据绑定显示-1
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ![CDATA[ ]] 是什么东东
  • # Panda3d 碰撞检测系统介绍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (06)金属布线——为半导体注入生命的连接
  • (52)只出现一次的数字III
  • (k8s中)docker netty OOM问题记录
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Ruby)Ubuntu12.04安装Rails环境
  • (八)Spring源码解析:Spring MVC
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十六)一篇文章学会Java的常用API
  • (转)linux 命令大全
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **PHP二维数组遍历时同时赋值
  • .a文件和.so文件
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net FrameWork简介,数组,枚举
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET大文件上传知识整理
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET中的Exception处理(C#)
  • .NET中两种OCR方式对比