Javaweb学习笔记第十三弹--JSP和Servlet
JSP = HTML + Java
目的是为了简化开发,其本质是一个Servlet
快速入门
步骤:
1、导包
2、创建文件
3、编写程序
得到结果:
JSP脚本(用于在JSP页面里面定义Java代码)
JSP脚本分类:
1、<%...%>——内容会直接放到_jspService()方法中
2、<%=...%>——内容会放到out.print()中,作为out.print()的参数
3、<%!...%>——内容会放到_jspService()方法之外,被类直接包含
JSP脚本里面的Java代码是可以截断的
案例:使用JSP脚本展示品牌数据
<%
for(int i=0;i<length;i++)
{
%>
放置表单相关代码
例如:
<td><%=brand.getId()%></td>获取相应内容
<%
}
%>
JSP缺点
1、书写麻烦,有时需要将Java代码切断
2、阅读性低
3、复杂度高:运行需要依赖于各种环境
4、占内存和磁盘
5、调试困难
6、不利于团队协作
目前主要利用Servlet+JSP的应用方式
EL表达式
主要功能:获取数据
Javaweb中的四大域对象:
1、page:当前页面有效
2、request:当前请求有效
3、session:当前会话有效
4、application:当前应用有效
el表达式获取数据,会依次从这4个域中寻找,直到找到为止
JSTL标签
需要导入相关导包
c:if标签——来完成逻辑判断,替换Java if else
c:forEach标签——相当于for循环(items:被遍历的容器==========var:遍历产生的临时变量)
JSTL标签用${引用的元素名称}代替了JSP中<%=函数名称%>
对于forEach循环,在JSTL中有两种表示方法:
1、
<c:forEach items="${}" var="a">
<tr align="center">
<td>${a.id}</td>
<td>${a.name}</td>
</tr>
</c:forEach>
2、
<c:forEach begin="1" end="10" step="1" var="i">
${i}
</c:forEach>
MVC模式和三层架构
MVC是一种分层开发的模式
优点:职责单一,互不影响;有利于分工合作;有利于组件重用
三层架构
三大框架
javaweb代码需要遵循MVC模式和三层架构的思想
准备环境
在创建完成Maven项目之后,记得将需要用到的包根据之前的那个网站导入到pom.xml文件中,,,对了,一定要记得刷新哦!
接着,为了保证代码的完整性、规范性和可读性,需要根据上述要求,创建三层架构,如图所示:
Web层······Service层······Dao层
Dao层
Brandmapper:List selectAll();
Service层
BrandService:调用brandMapper:List selectAll();
Web层
调用service查询,将数据存入request,转发到brand.jsp;然后用c:forEach来遍历(在brand.jsp里面)
Javaweb学习笔记第十三弹--JSP和Servlet的更多相关文章
- Javaweb学习笔记——(十三)——————JSTL、JSTL核心标签库、自定义标签、有标签体的标签、带有属性的标签、MVC、Javaweb三层框架
JSTLApache提供的标签库 jar包:jstl-1.2.jar,如果传MyEclipse,他会在我们导入jar包,无需自己导入,如果没有使用MyEclipse那么需要自行导入.--------- ...
- Javaweb学习笔记——(十一)——————JSP、会话跟踪、Cookie、HttpSession
JSP1.什么是JSP jsp即java server pages,它是Javaweb的动态资源. jsp = html + java脚本 + jsp动态标签(包含EL表达式)2.JSP中java脚本 ...
- JavaWeb学习笔记(七)—— JSP
一.什么是JSP JSP全名是Java Server Pages,它是建立在Servlet规范之上的动态网页开发技术.在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页 ...
- JavaWeb学习笔记(六)jsp
第六章.jsp 1.什么是jsp jsp:java server pages,java的服务器页面 作用:代替Servlet回传HTML页面的数据 因为Servlet程序回传HTML页面的数据很繁琐, ...
- JavaWeb学习笔记(十三)—— JDBC时间类型的处理
一.Java中的时间类型 Java中用类java.util.Date对日期/时间做了封装,此类提供了对年.月.日.时.分.秒.毫秒以及时区的控制方法,同时也提供一些工具方法,比如日期/时间的比较,前后 ...
- VSTO 学习笔记(十三)谈谈VSTO项目的部署
原文:VSTO 学习笔记(十三)谈谈VSTO项目的部署 一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练.因此如果能将产品的一些功能集成在Office中, ...
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- javaweb学习笔记整理补课
javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...
- Python学习笔记(十三)
Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
随机推荐
- elmentui 表单验证问题
<template> <div class="container"> <el-form ref="ruleForm" :model ...
- select from 多表和inner join的区别
其实两者是一样的,inner join 只是为了区分left join和right join整出来的,本质还是逐行比较
- 【2020NOI.AC省选模拟#9】C. 重复
题目链接 原题解: 通过计数相同的子序列对个数的方式来计算答案. 设$f(i,j)$为$S$的前$i$和$j$个字符的公共子序列对个数. 当$S_i=S_j$时,$f(i,j)=f(i,j-1)+f( ...
- oracle 数据恢复 回滚数据
1.查询你执行update 语句之前的数据 精确到什么时间 select * from 表名 as of timestamp to_timestamp('2017-07-21 17:16:38', ' ...
- Netty基本编写
一. public class Server { public static void main(String[] args) throws Exception { //1 创建线两个程组 //一个是 ...
- fiddler everywhere 抓包工具的使用
1.功能 手机微信或者浏览器访问网址都可以在fidder里面抓到http请求 2.配置 电脑fidder setting->允许安卓手机远程访问 安卓手机 设置->wifi代理 主机名是电 ...
- Vue.js + TypeScript 项目构建
一:全局安装vue/cli npm install -g @vue/cli安装完成后检查版本vue --version 二:构建项目创建文件 vue create projectName 有的刚开始 ...
- SourceMap解析
前端发展至今已不再是刀耕火种的年代了,出现了typescript.babel.uglify.js等功能强大的工具.我们手动撰写的代码一般具有可读性,并且可以享受高级语法.类型检查带来的便利,但经过工具 ...
- 【loguru】Python简单的日志管理模块
简介 在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会才用日志的方式来进行记录这些信息. 在 Python 中用到日志记录,那就不可避免地会用到内置的 logg ...
- ubuntu20安装open4.4带扩展库
0查看当前版本安装 opencv_version 已经装了3.49 再装个4.4共存 1安装依赖库 sudo add-apt-repository "deb http://security. ...