MVC-JSTL-EL-数据源-三层-sql

猫在裙角. 2020-09-07 05:00:49
三层的关系:
1.表示层接受用户的请求,根据用户请求去通知业务逻辑层
2.数据访问层收到请求后开始访问数据库
3. 下一层不能调用上一层
4. 下一层不依赖上一层
4. 上一层中不能出现下一层的慨念


实现数据源连接:DataSource (数据源是由Tomcat维护的)
(数据源通过jndi来获取数据源而不是实例化)
Context con = new InitialContext();
//通过"java:comp/env/" 为前缀来访问jndi资源
DataSource ds =(DataSource)con.lookup("java:comp/env/数据源");
Connection conn = ds.getConnection();

连接池:Tomcat
1.是由容器提供的
2.用来管理池中连接对象
3.应用程序从连接池中获取对象
4.连接池中的连接对象是由容器创建的
5.可以减轻数据库访问压力
6.存放的都是数据库连接
7.程序最后要使用Close()方法关闭连接

MVC: jsp三层架构
Serlvet控制层对象
V:表示层 (VIEW) JSP 用于显示和获取界面的数据
M:控制层 (Controller) Servlet 控制页面跳转等
C:模型层 (Model) javabean 处理上层传递的数据以及数据库获取的数据

maxActive 可以从对象池取出的最大对象数 为0表示无限制 默认为8
minldle 对象池中对象最小个数
maxidle 最大空闲连接数
validationQuery 验证连接是否成功 Sql Select指令最少返回一行
maxwait 最大等待秒数 单位ms -1为无限制

-----------------------------------------------------------------
| String contextPath = request.getContextPath(); |
| 获取项目的路径 |
-----------------------------------------------------------------

获取Servlet初始化参数:
初始化参数配置 【必须要在 一对<web-app> 里面】
<init-param>
<param-name>initParam</param-name>
<param-value>Hello Servlet</param-value>
</init-param>

获取参数:
//根据他的name来获取value
String initParam = getInitParameter( "initParam" );


获取Servlet上下文参数:
配置Servlet上下文 【必须要在 一对<web-app> 里面】
<context-param>
<param-name>contextParam</param-name> 初始化参数名
<param-value>Hello Servlet</param-value> 初始化参数值
</context-param>

获取上下文参数:
//根据参数名读取值
String contextParam = this.getServletContext().getInitParameter( "contextParam" );

------- System.out.println("Servlet初始化参数" + initParam);
------- System.out.println("系统初始化参数" + contextParam);


第八章
---------------------------------JSTL EL表达式----------------------

EL表达式简介:
1.什么是el: Expression Language(表达式语言)
2.EL的功能: 替代JSP页面中数据访问时的复杂编码
3.EL的特点: 【自动转换类型】 EL得到某个数据时可以自动转换类型 使用简单


EL表达式语法【6-1】 :
${ EL expression }
1. 通过变量名取值
2. 获取对象的属性值
3. 获取集合元素
4. 执行表达式


EL表达式语法【6-2】:
${变量名}
代码例:
// 在Servlet或JSP中保存数据
request.setAttribute("username", "LiYang");
// 在JSP中访问数据
姓名: ${username} //输出: 姓名:LiYang

按照page → request → session → application的作用域顺序依次查找,找到即返回,最终找不到返回null
指定作用域:
----------------------------------------------------------------------------------------------------------------------------
| 属性范围 EL中的名称 |
| page ageScope,例如${pageScope.username}表示在page作用域查找变量username,找不到返回null | | request requestScope |
| session sessionScope |
| application applicationScope |
----------------------------------------------------------------------------------------------------------------------------


EL表达式语法【6-3】:
获取对象的属性值: <%= ( (User) request.getAttribute("user") ) .getName() %>
点操作符 : ${user.name}
[ ]操作符 : ${user["name"]}

EL表达式语法【6-4】: 获取集合元素 List
// 在Servlet或JSP中保存数据
List names = new ArrayList();
names.add(0, "LiYang");
names.add(1,"WangHua");
request.setAttribute("names",names);
// 在JSP中访问数据
姓名:${ names[0] }<br/>
姓名:${ names[1] }<br/> 使用 [ ] 指定元素的下标

EL表达式语法【6-5】: 获取集合元素 Map
// 在Servlet或JSP中保存数据
Map names = new HashMap();
names.put("one", "LiYang");
names.put("two", "WangHua");
request.setAttribute("names", names);
// 在JSP中访问数据
姓名:${ names.one }<br/> 使用 点操作符输出
姓名:${ names["two"] }<br/> 使用 [ ]操作符输出

EL表达式语法【6-6】:
执行表达式:
1.关系操作符
2.逻辑操作符
3.empty操作符

-------------------------------------------------------------------------------------------
- 关系操作符 说明 示例 返回结果为 true -
- == eq 等于 ${5==5}或${5 eq 5} ${"a" =="a"}或${"a" eq "a"} -
- != ne 不等于 ${23!=5}或${23 ne 5} -
- < lt 小于 ${3<5}或${3 lt 5} -
- > gt 大于 ${23>5}或${23 gt 5} -
- <= le 小于等于 ${3<=5}或${3 le 5} -
- >= ge 大于等于 ${23>=5}或${23 ge 5} -
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
- 逻辑操作符 说明 -
- && and 并且 条件同时成立为true -
- || or 或者 只要有一个条件成立就为true -
- ! not 非 条件结果反着来 -
----------------------------------------------------------------

------------------------------------------------------------------
- empty操作符 说明 -
- ${empty 变量} 判断是否为空 空为true 有值为false -
-------------------------------------------------------------------


EL隐式对象:
1.作用域访问对象
① pageScope
② requestScope
③ sessionScope
④ applicationScope
2.参数访问对象
① param
② paramValues
3.JSP隐式对象
① pageContext


JSTL核心标签库 导包:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>


<p>${ "<a href='http://www.baidu.com'>百度</a>" }</p> // 超链接百度

<c:out escapeXmI="false"
value="<a href='http://www.baidu.com'>百度</a>" /> //超链接百度
// escapeXmI 默认为true 为true时-----文本输出 false时----html输出
<c:out value="<a href='http://www.baidu.com'>百度</a>" /> //输出 value的所有值



<c:set var= "num" value="10" scope= "session" /> //将 值10 赋值给 变量num 作用域是Session
<c:out value= "${sessionScope .num }" /> //输出 Session作用域下的变量num的值

/*
C: choose 就是switch结构
C:when 可以写n个 跟 case一样
C: otherwise 可以写0-1个 跟default一样
整个 C: choose 里面只有一个输出
*/

<C: choose>
<C :when test= "${ sessionScope.num >10} ">
结果大于10
</c: when>

<c:when test= "${ sessionScope .num <10 } " >
结果小于10
</c :when>

<c:when test= "${ sessionScope.num ==10 }' >
结果等于10
</c :when>

<C: otherwise>
没有结果
</C: otherwise>

</C: choose>

-------------------------------------------------------------------------------------------------
<script> // jQuery代码

var bTime=result[i].bTime //获取当前的时间信息
var btime=bTime.substr(0,10); // 截取前10位 打到yyyy-mm-dd格式

/*
// yyyy-mm-mm的时间格式
//获取时间的文本
var time = $("input[name=btime]").val().trim(); //获取input标签的值
//正则表达式判断格式
var dateFormat =/^(\d{4})-(\d{2})-(\d{2})$/;
//判断时间格式是否是yyyy-mm-dd
if(!(dateFormat.test(time))){
alert("您输入的时间格式不对哦");
return false;
}

*/


//拼接字符串 循环显示内容 追加样式
//参数拼接
// <a href='bs?bid="+result[i].bId+"&mess=findByid' id='del'>删除</a></td></tr>");
var li=$("<tr><td>"+result[i].bName+"</td><td>"+result[i].bAuthor+"</td><td>"+result[i].bTime+"</td><td>"+btype+"</td><td><a href='#?bid="+result[i].bId+"' class=\"Del\">删除</a></td><input type='hidden' value='"+result[i].bId+"' class='iid'></tr>"); //自动创建li
$("#ta").append(li); //追加子节点
$("tr:even").css("background-color","#ffc0c
...全文
59 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧