javaweb笔记七
过滤器:是一个web中间组件,用于拦截从客户端发送给服务器的请求和响应。当客户端向服务器发出请求时,服务器会查看是否有过滤器和
该请求匹配,如果有,则交给过滤器执行,业务操作后,可以将请求继续向目标资源发送,或定位到别的资源。
过滤器的过滤范围有两种方式:
1、针对请求路径进行过滤:
<filter-mapping>
<filter-name>login</filter-name>
<!-- 过滤范围 -->
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>//当客户端请求/index.jsp页面时,需要经过该过滤器
2、针对某一个servlet名称进行过滤:
<filter-mapping>
<filter-name>login</filter-name>
<servlet-name>land</servlet-name>
</filter-mapping>//当客户端请求servlet名称为land的servlet时,需要经过该过滤器。
过滤器的分类:
1、REQUEST:当客户端直接访问目标资源时,会经过该过滤器。(默认)
2、FORWARD:当目标资源是通过请求转发方式访问时,会经过该过滤器。
3、INCLUDE:当目标资源被包含时。
4、ERROR:当目标资源有异常发生时。
<filter-mapping>
<filter-name>login</filter-name>
<!-- 过滤范围 -->
<url-pattern>/index.jsp</url-pattern>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>//只有请求转发才经过该过滤器
过滤器链顺序:
<url-pattern>/index.jsp</url-pattern>---》<servlet-name>land</servlet-name>----》同类先后出现顺序
@WebFilter("/index.jsp")//注解方式注册过滤器
包装器的作用:重写getParameter("")方法,主要是用来替换脏话。
AJAX:异步JavaScript的xml,通过JavaScript核心对象XMLHttpRequest代替传统的form表单,向服务器发送请求,接收响应。在接受响应时,可以通过
js的dom操作进行页面数据的更新。这样,可以在不刷新页面的情况下,实现客户端和服务器的数据交互,并实现客户端页面的局部刷新。
AJAX七项技术:javascript,XMLHttpRequest(核心),Dom,css,Html,Xml以及相关服务器API。
AJAX好处:不跳页面局部刷新,省网络流量,节约网络资源。
JSON.stringify(info)//将js对象,以json字符串方式展示数据
ajax转发请求相应数据为整个跳转页面流信息。EL表达式解析由服务器完成后响应给客户端进行js动态展示在浏览器,所以El表达式可以用于js。
java工程配置mybatis
1、导入必要的配置文件和lib包:log4j.properties(输出日志信息,用于调试)
mybatis.cfg.xml(数据库连接配置,url,username,root),lib(log4j-1.2.17.jar,mybatis-3.2.2.jar,mysql-connector-java-5.1.7-bin.jar)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 给指定的实体类加上别名 -->
<typeAlias type="com.project.bean.ManBean" alias="man"/>
</typeAliases>
<!-- 自动给类的包路径取别名,这时在实例bean里面必须有@Alias("man"),给实体类取别名。和上面的二选一
<typeAliases>
<package name="com.project.bean"/>
</typeAliases> -->
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源-->
<dataSource type="POOLED">
<property name="driver" value="org.gjt.mm.mysql.Driver"/>
<!-- & 在配置文件中代表&符号 ;allowMultiQueries=true允许执行多条SQL语句-->
<property name="url" value="jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf-8&allowMultiQueries=true"/>
<property name="username" value="root"/>
<property name="password" value="199212"/>
</dataSource>
</environment>
</environments>
<!-- 导入映射配置文件-->
<mappers>
<mapper resource="orm/ManBean.xml"/>
</mappers>
</configuration>
2、XML catalog配置
window-->preference-->XML-->XML Catalog-->Add
location:选择文件系统,知道对应的dtd文件;key type选择URI;key填入对应配置文件dtd格式头信息,例如:
http://mybatis.org/dtd/mybatis-3-config.dtd
3、建立实例bean,持久层接口等三层架构实现
4、在对应的xml文件里书写SQL语句。
#在生成SQL时,对于字符类型参数,会拼装引号
$在生成SQL时,不会拼装引号,可用于order by之类的参数拼装
批量删除
<delete id="delMore">
delete from t_user where u_id in(
<foreach collection="ids" item="id" separator=",">
#{id}
</foreach>
)
</delete>
collection 为用于遍历的元素(必选),支持数组、List、Set
item表示集合中每一个元素进行迭代时的别名.
index指定一个名字,用于表示在迭代过程中,每次迭代到的位置.
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔符.
close表示以什么结束.
批量添加
<insert id="addMore">
insert into t_man(manName,birthday,sex) values
<foreach collection="manList" item="manBean" separator="," >
(#{manBean.name},#{manBean.birthday},#{manBean.sex})
</foreach>
</insert>
javaweb笔记七的更多相关文章
- JavaWeb结合七牛云存储搭建个人相册服务
JavaWeb结合七牛云存储搭建个人相册服务 一.引言1. 课程概述 相信很多人都知道网站一般会有很多图片,对于小型网站来说,图片放在网站服务器上不算什么,但当图片数量很大时,会造成服务器很臃肿,相应 ...
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(七) indigo PCL xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- Elasticsearch笔记七之setting,mapping,分片查询方式
Elasticsearch笔记七之setting,mapping,分片查询方式 setting 通过setting可以更改es配置可以用来修改副本数和分片数. 1:查看,通过curl或浏览器可以看到副 ...
- Typescript 学习笔记七:泛型
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- Go语言学习笔记七: 函数
Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...
- iOS 学习笔记七 【博爱手把手教你使用2016年gitHub Mac客户端】
iOS 学习笔记七 [博爱手把手教你使用gitHub客户端] 第一步:首先下载git客户端 链接:https://desktop.github.com 第二步:fork 大神的代码[这里以我的代码为例 ...
随机推荐
- 深入理解Java反射+动态代理
答: 反射机制的定义: 是在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为j ...
- python 多参数并行化
multiprocessing模块与map方法 import time from datetime import datetime from multiprocessing.dummy import ...
- BZOJ2553 Beijing2011禁忌(AC自动机+动态规划+矩阵快速幂+概率期望)
考虑对一个串如何分割能取得最大值.那么这是一个经典的线段覆盖问题,显然每次取右端点尽量靠前的串.于是可以把串放在AC自动机上跑,找到一个合法串后就记录并跳到根. 然后考虑dp.设f[i][j]表示前i ...
- 初识Java Enum
enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. enum是关键字,感觉它跟class.interface是并列的,并且不能跟fi ...
- 【BZOJ1047】[HAOI2007]理想的正方形(单调队列,动态规划)
[BZOJ1047][HAOI2007]理想的正方形(单调队列,动态规划) 题面 BZOJ 洛谷 题解 直接一个单调队列维护一下没给点和它前面的\(n\)个位置的最大值,再用一次单调队列维护连续\(n ...
- luogu1082 [NOIp2012]同余方程 (扩展欧几里得)
由于保证有解,所以1%gcd(x,y)=0,所以gcd(x,y)=1,直接做就行了 #include<bits/stdc++.h> #define pa pair<int,int&g ...
- Luogu 1613 跑路(最短路径,倍增)
Luogu 1613 跑路(最短路径,倍增) Description 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是 ...
- Scala进阶之路-为什么要学习Scala以及开发环境搭建
Scala进阶之路-为什么要学习Scala以及开发环境搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近人工智能和大数据那是相当的火呀,人工智能带动了Python的流行,区块 ...
- BSGS 算法
求解 A^x ≡ B mod C C是质数 的最小非负整数解 证明:A^x ≡ A^(x%φ(C)) mod C A^(x%φ(C)) ≡ A^(x-k*φ(C)) ≡ (A^x)/ A^(k*φ ...
- OpenResty 高阶实战之————Redis授权登录使用短连接(5000)和长连接(500W) 使用连接池AB压力测试结果
一.短连接开始测试 ab -n 5000 -c 100 -k 127.0.0.1/test_redis_short #demo1 Concurrency Level: Time taken for t ...