• 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"/>
    <!-- &amp; 在配置文件中代表&符号 ;allowMultiQueries=true允许执行多条SQL语句-->
    <property name="url" value="jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf-8&amp;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>

  • 相关阅读:
    POJ1741 Tree
    BZOJ3674 可持久化并查集加强版
    BZOJ3673 可持久化并查集 by zky
    BZOJ3174 [Tjoi2013]拯救小矮人
    BZOJ2733 永无乡【splay启发式合并】
    AtCoder Grand Contest 007 E:Shik and Travel
    BZOJ2599:[IOI2011]Race
    AtCoder Regular Contest 063 E:Integers on a Tree
    SPOJ1825:Free Tour II
    AtCoder Grand Contest 012 C:Tautonym Puzzle
  • 原文地址:https://www.cnblogs.com/lyrand/p/7764214.html
Copyright © 2020-2023  润新知