论述

MVC设计模式

MVC(model,view,controller),一种将业务逻辑、数据、界面分离的方法组织代码的框架。在改进界面及用户交互的同时,不用重写业务逻辑。MVC将传统的输入、处理和输出分离。

  • Model:模型,逻辑部分,也是表示应用程序的核心,比如说数据库的表和记录
  • View:视图,数据显示,也是表示界面,是用于显示的,比如说显示数据库的记录
  • Controller:控制器,用户交互,也是表示处理的,比如说处理/增删查改数据库的记录

MVC = JSP + Servlet + JavaBean(DAO)

​ 为了实现显示与数据的分离在M和V中间加了一个C,用户在V上只能通过C来实现对M的操作,一旦M(数据)有更新,,模型就会通知V(视图)更新。用户通过对事件的操作,可以触发视图的各种事件;通过控制器,以达到更新模型或数据的目的

MVC设计模式的优点

​ MVC将视图层和业务层分离,很容易改变应用程序的数据层和业务规则,耦合性低且可维护性高。
MVC中的模型可以被不同的视图使用,重用性高。

Spring MVC

基于JAVA实现MVC设计模式的请求驱动类型的轻量型WEB框架,即使用了MVC思想,将WEB层进行解耦。

执行流程:浏览器发送请求给控制器,控制器接收请求将请求委托给业务对象进行处理,然后将结果使用视图渲染返回到浏览器.

MVC设计模式代码分层

  • Controller——Servlet——控制器
  • Pojo——所有创建表的对象——JavaBean
  • DAO——用与数据库的关联与对数据库进行的操作
  • Service——业务逻辑层
  • Web页面——jsp/html——前端界面和表单之类的

JSP九大内置对象

  • 输入输出对象:out对象、response对象、request对象
  • 通信控制对象:pageContext对象、session对象、application对象
  • Servlet对象:page对象、config对象
  • 错误处理对象:exception对象

框架论述

JavaWeb现在常用的框架:SSM / SSH

SSH(Struts/SpringMVC+Spring+Hibernate),SSM(Struts/springMVC+Spring+Mybaits)

为什么要用框架

软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,非常广泛。这样开发出完善健壮的软件,对程序员的要求将会非常高。如果采用成熟,稳健的框架,那么一些基础的通用工作,比如,事物处理,安全性,数据流控制等都可以交给框架处理,那么程序员只需要集中精力完成系统的业务逻辑设计,可以降低开发难度。

从程序员角度看,使用框架最显著的好处是重用,由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。框架还能重用分析。所有的人员若按照框架的思想来分析事物,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。

一种技术,最终都是为业务发展而服务的。从业务的角度来讲。首先,框架的是为了企业的业务发展和战略规划而服务的,他服从于企业的愿景(vision);其次,框架最重要的目标是提高企业的竞争能力,包括降低成本、提高质量、改善客户满意程度,控制进度等方面。最后,框架实现这一目标的方式是进行有效的知识积累。软件开发是一种知识活动,因此知识的聚集和积累是至关重要的。框架能够采用一种结构化的方式对某个特定的业务领域进行描述,也就是将这个领域相关的技术以代码、文档、模型等方式固化下来。

合理的使用框架可以带来的好处

重用代码大大增加,软件生产效率和质量也得到了提高;
代码结构的规范化,降低程序员之间沟通以及日后维护的成本;
知识的积累,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;
软件设计人员要专注于对领域的了解,使需求分析更充分;
允许采用快速原型技术; 有利于在一个项目内多人协同工作;
大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。

JSP优缺点

缺点

  • JSP技术极大的增加了产品的复杂性,JSP的部署有一定难度
  • java的高效率运行需要占用大量的内存和硬盘空间. 占用大量资源对硬件要求较高
  • JSP程序调试困难,JSP页面执行时, 首先被转换为 .java文件(Servlet), 然后将.java文件编译为字节码文件. 这样,出错信息实际上指向的 是转换后的那个.java文件(Servlet), 而不是JSP本身.

优点

  • JSP代码跨平台, 即一次编写,处处运行
  • JSP组件跨平台,JSP组件都是跨平台可重用的,企业JavaBeans组件可以访问传统的数据库,并能以分布式系统模式工作于各大平台
  • 支持多种网页格式,JSP技术既可以支持HTML/DHTML格式,又可以支持PDA等设备的WML文件格式,还可以支持XML格式.
  • JSP标签可扩充性,使网页制作者降低了制作网页的复杂度
  • 健壮性与安全性,由于JSP页面使用的脚本语言是java语言, 因此,它就具有java技术的所有好处, 包括健壮的存储管理和安全性.

数据库ER


长方形是实体(即表),椭圆形是属性(即字段),菱形是关系

关系分类:

1—1 、 1—多(外键) 、 多—多(多个外键)

可以在ER图的主键上加下划线

代码

常用正则

1、匹配所有的正数:^[0-9]+$
2、匹配所有的小数:^\-?[0-9]*\.?[0-9]*$
3、匹配所有的整数:^\-?[0-9]+$
4、提取信息中的中文字符串: [\u4e00-\u9fa5]* ;
5、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
6、提取信息中的中国手机号码:(86)*0*13\d{9}
7、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
8、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
9、提取信息中的中国身份证号码:\d{18}|\d{15}
10、提取信息中的任何数字:(-?\d*)(\.\d+)?
11、匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
12、匹配邮箱:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/^[1-9]\d*$     //匹配正整数
^-[1-9]\d*$   //匹配负整数
^-?[1-9]\d*$   //匹配整数
^[1-9]\d*|0$   //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$    //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$   //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点 数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点 数 + 0)^[A-Za-z]+$  //匹配由26 个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母 的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^\w+$  //匹配由数字、26个 英文字母或者下划线组成的字符串

JSP

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><form id="Login" name="Login" method="post" action="input.do"><li class="login-item"><span>用户名:</span><input type="text" id="username" name="username" ></li><li class="login-item"><span>密 码:</span><input type="password" id="password" name="password"><input type="submit" name="Submit" value="登录" /></li></form>
</body>
</html>

Filter

public class MyFilter implements Filter {@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");chain.doFilter(request, response);//向下传递过滤器}
}

Servlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;public class InputServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");String username = request.getParameter("username");String password = request.getParameter("password");PrintWriter out = response.getWriter();       //获取向页面写的对象if(username == null || password == null)out.println("用户名或者密码为空");//res.sendRedirect(/login.jsp)if(!username.equals("abc") || !password.equals("123"))out.println("用户名或者密码不正确");elseout.println("登陆成功!");request.getRequestDispatcher("/welcome.jsp").forward(request,response);       //请求转发至welcome.jsp}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}
}

西安邮电大学JavaWeb考试复习相关推荐

  1. 西安邮电大学《面向对象与C++程序设计》PTA上机期末考试试题(随机)

    目录 考后感悟: 一.判断题 二.单选题 三.函数题 R6-1 编写一个函数模板Swap,实现两个变量交换. R6-2 从shape类派生出一个圆形类Circle R6-3 求正15边形的面积和周长 ...

  2. 西安邮电大学计算机学院转专业面试,2020年西安邮电大学转专业,大一新生转专业和入学考试...

    西安邮电大学转专业政策还没有出来,下面为大家介绍大学转专业的相关政策,以便参考. 第一种方法: 就是要求班级学习成绩前3-5名的允许转.个人申请---学院同意并推荐---拟转入专业的学院审核(个别的要 ...

  3. 西安邮电大学计算机学院考研专业课832(计算机基础综合)经验分享

    先贴成绩: 1.概述 目录及大纲: 西安邮电大学2023年硕士研究生招生专业目录-西安邮电大学研究生院 (xupt.edu.cn) 对应专业:081200计算机科学与技术,083500软件工程 试卷结 ...

  4. java实验文法报告_西安邮电大学编译原理LL文法分析器实验(java).doc

    西安邮电大学编译原理LL文法分析器实验(java) <编译原理>实验报告 题目: 语法分析器的制作 学生姓名: 班 级: 软件1202 学 号: 指导教师: 成 绩: 西安邮电大学计算机学 ...

  5. [渝粤教育] 西安邮电大学 成本会计学 参考 资料

    教育 -成本会计学-章节资料考试资料-西安邮电大学[] 第01章 单元测验 1.[单选题]构成商品的理论成本是( ). A.已耗费的生产资料转移的价值 B.劳动者为自己劳动所创造的价值 C.劳动者为社 ...

  6. 西安邮电大学计算机学院学生会,2017年度计算机学院教职工代表大会工作报告.doc...

    PAGE \* MERGEFORMAT 5 1 凝心聚力,开拓创新, 以主人翁的工作态度共谋计算机学院新发展 2017/2018学年计算机学院教代会学院工作报告 王忠民 各位代表:大家下午好! 今天, ...

  7. 2023西安邮电大学计算机考研信息汇总

    西安邮电大学研招网 http://gr.xiyou.edu.cn/xbwz.htm 西安邮电大学理学院 http://slx.xiyou.edu.cn/ 西安邮电大学计算机学院 http://cs.x ...

  8. 【20保研】西安邮电大学计算机学院关于举办2019年“优秀大学生夏令营”的公告...

    点击文末的阅读原文或者公众号界面左下角的保研夏令营或者公众号回复"夏令营"是计算机/软件等专业的所有保研夏令营信息集合,会一直更新的. 西安邮电大学计算机学院现有计算机科学与技术一 ...

  9. 所有计算机专业考研都变了!西安邮电大学计算机考研改考

    西安邮电大学是一所双非大学,位于陕西省西安市.虽然是双非,但是计算机学科评估C+,软件工程学科评估C,计算机实力在双非大学中还算不错.邮电类大学的计算机专业一般都比较强,比如北京邮电大学,南京邮电大学 ...

最新文章

  1. ORA-01747: user.table.column, table.column 或列说明无效 异常解决方法总结
  2. Python学习笔记:Io编程序列化
  3. Java面向对象之构造方法
  4. Linux命令修复方法,在Linux终端运行sudoedit -s /命令看未修复和已修复的效果
  5. springboot 远程调用shell脚本,环境为windows
  6. sqlite字段类型说明
  7. apache + subversion + Windows认证
  8. 原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  9. 一步步教你3个月打造10万IP的流量(实战演练)(admin9.com/波菜)
  10. 在线预览CAD 在线预览office 在线预览3D模型
  11. 微信小程序音乐播放器系统app毕业设计
  12. 论文笔记 EMNLP 2018|Jointly Multiple Events Extraction via Attention-based Graph Information Aggregation
  13. 2019年DevOps最新现状研究报告解读
  14. python饿了么商家开放平台模拟网页http请求实战
  15. ubuntn下串口工具minicom ,kermit的使用
  16. 基于微信小程序的todo番茄钟设计与实现源码
  17. BELLHOP 关于Actup冲激响应的绘制
  18. iphone热点蓝条闪烁
  19. Nature:学术造假者瑟瑟发抖,论文图像查重AI技术重拳出击
  20. Orphaned pod found - but volume paths are still present on disk的处理

热门文章

  1. 在Linux云服务器上搭建golang运行环境
  2. 【最短路问题】Til The Cows Come Hone HDU 2387
  3. 基于Pytorch实现的EcapaTdnn声纹识别模型
  4. Android 扫码器串口通讯
  5. frp内网穿透容器化快速部署
  6. 论坛的版主如何产生_论坛版主的生活指南-第1部分和第2部分
  7. Python中使用国内源头下载依赖
  8. 代码对上霸权主义:GitHub开始阻止面临美国贸易制裁的国家的开发商
  9. Galaxy S3刷机改内核的流水账(2)
  10. Android 官方多渠道打包