核心技能部分 7.1 表单标签 Struts的表单标签,可分为两种:form标签本身和单个表单元素的标签。form标签本身的行为不同于表单元素标签。...onmouseover:指定鼠标在该标签生成的表单一元素上悬停时触发的JavaScript函数。 onmouseout:指定鼠标移出该标签生成的表单元素时触发的JavaScript函数。...name:定义表单一元素的name属性,该属性值用十与Action的属性形成对应。...,这系列的按钮可以控制选项在两个下拉列表之间移动、升降。...图7.1.12 树形列表 本章总结 Struts的表单标签 可分为两种:form标签本身和单个表单元素的标签。form标签本身的行为不同于表单元素标签。
1,Java堆 2,方法区 3,Java栈 4,本地方法栈 问题扩展: 二 , JSP常用的动作标签及作用 (1)问题分析: (2)核心答案讲解: (3)问题扩展 (4)结合项目中使用 三 ,JSP四大作用域及请求范围...2,方法区 方法区用于存储被虚拟机加载的类信息、常量、static变量等数据 3,Java栈 **每条线程有自己的工作内存(Java栈)**不同线程之间无法直接访问对方工作内存中的变量。...4,本地方法栈 本地方法栈保存的是本地方法的调用。 问题扩展: 线程安全问题就是,多个线程的工作内存同时对堆中同一个数据的修改,使用Java锁避免线程安全问题。...,JSP四大作用域及请求范围 (1)问题分析: 考官主要考察在jsp,有没有实际开发经验。...四 ,如何防止表单重复提交问题 (1)问题分析: 考察表单重复提交的场景与解决方式。 (2)核心答案讲解: 网络延迟时,重复点击提交按钮,有可能发生重复提交表单问题。
,可以用 jsp:getProperty> 标签。...”,单击【Add】按钮,将chapter03项目添加到Tomcat服务器中,单击【finish】按钮,完成web应用的部署 访问:接下来启动eclipse中的Tomcat服务器,在浏览器的地址栏上输入地址...后者定义的项目只有在指定的 Servlet 中才能访问 用 标签 配置监听器 用 和 标签 配置过滤器 配置 jdbc.properties...Servlet 的加载次序 5)在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是: 5)JSP应用程序配置文件的根元素为...() 14)Servlet中获取请求的参数值用 getParameter() 方法,同名的多个参数使用request.getParameterValues
,他和DispatchAction不同点就是可以去匹配多个action路径,这样也就是结决了共用ActoinForm的校验问题了,多个Action的路径使用同一的自定义Action类,这样就不用共享同一个...del" type="MyAction" parameter="del"> jsp"/> 在JSP页面中也不用在使用隐藏域传递参数...,他所实现的功能是解决一个表单多种提交问题的 ,他是通过使用资源文件,用submit按钮的value来作为资源文件中的key所对应的值,通过这个值来找到对用的key,在使用这个key来获得指定Map中所对应的值...alan.struts.message.MessageResource" /> 自定义的Action类的一些规则 1,尽量不要在Action类中使用(静态)成员变量,如果使用要加上同步。...2,尽量使各模块间的耦合性降低,最大限度的针对接口编程。 3,可以将共代码方在覆盖父类的方法中,最后可以用super.xxx(xxx)来调用父类的方法,使用父类的实现,并加上了自定义的功能。
可以在一个页面中使用多个指令。 C. 为增强程序的可读性,建议将指令放在JSP文件的开头,但不是必须的。...9、选择、在JSP中使用jsp:getProperty标记时,不会出现的属性是:(C) A.name B.property C.value D.以上皆不会出现 10、对于预定义的方法 是:( B) A. URL 重写 。 B. 使用全局变量 。 C. 使用表单隐藏字段 D. 使用 Servlet API 76....Java文件与Bean所定义的类名可以不同,但一定要注意区分字母的大小写。(√) 130. 可以在一个页面中使用多个指令。(√) 131....用request读取单选框表单元素的值时,用request.getAttribute()方法。
HTML表单: HTML表单用于搜集不同类型的输入 标签元素: HTML表单用于收集用户输入; form元素定义HTML表单 属性列表: 属性 描述 accept-charset...规定在被提交表单中使用的字符集(默认:页面字符集)。...表单元素: 表单元素指的是不同类型的 input元素、复选框、单选按钮、提交按钮……等 标签: 标签元素最重要的是 表单元素,标签根据不同的 type 属性,有多态性...定义在提交表单是执行的动作 向服务器提交表单的通常做法是提交按钮(submit) action属性可以指定特定的脚本来处理被提交的表单数据 jsp/.asp]...使用GET时,表单提交的数据在URL中是可见的 反之—— 表单是动态更新或者密码内容的,POST更加适合,而且提交的数据在URL不可见 name属性: 如果希望提交的表单数据可以被服务器获取到或者看见
JDBC API JDBC API可做三件事:与数据库建立连接、发送SQL语句、处理结果。 JDBC API工作的4个环节: (1)DriverManager类:依据数据库的不同,管理JDBC驱动。...page指令常用属性 属 性 描 述 language 指令JSP页面使用的脚本语言,默认为Java import 通过该属性来引用脚本语言中使用到的类文件 contentType 用来指定JSP...如果一个import属性引入多个类文件时,需要在多个类文件之间用逗号隔开。 例: 2....action表示表单要提交到的地点 method表示表单发送的方法。一般用post 二、JSP内置对象 1....) 获取一个页面表单组件对应多个值时的用户的请求数据 void setCharacterEncoding(String charset) 指定每个请求的编码,在调用request.getParameter
防止网页后退--新开窗口 用window.open弹出表单页面,点提交后关闭该页;处理提交的ASP页也是用弹出,设定表单的target,点提交时window.open("XXX.asp","_blank...4 5 在JSP页面的FORM表单中添加一个...后来,看到竟然有那么多的人想要禁用这个后退按钮,我也就释然(想要禁用的只有后退按钮,不包括浏览器的前进按钮)。因为在默认情况下,用户提交表单之后可以通过后退按钮返回表单页面(而不是使用“编辑”按钮!)...后来我又看到有人建议用location.replace从一个页面转到另一个页面。这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。...经过一番仔细的寻寻觅觅之后,我发现仍旧无法找出真正能够完全禁用浏览器后退按钮的办法。所有这里介绍的方法都能够在不同程度上、以不同的方式禁止用户返回前一页面,但它们都有各自的局限。
强大而直接的配置方式:将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器(validator)的引用。...可适配、非侵入:可以根据不同的应用场景,选择合适的控制器子类 (simple型、command型、form型、wizard型、multi-action型或者自定义),而不是从单一控制器 (比如Action...JSP表单标签库:在Spring2.0中引入的表单标签库,使得在JSP中编写 表单更加容易。 Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session。...转成java对象 @RequestParam:当表单参数和方法形参名字不一致时,做一个名字映射 @PathVarible:用于获取uri中的参数,比如user/1中1的值 Rest风格的新api @RestController...,说明属性参数是让多个方法共享的; 3、Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。
Struts2 的标签库大致分类和作用: ? 其实这章的大部分内容当API看就行,不用特别较真,就当饭后甜点吧,哈哈,加油↖(^ω^)↗。...如果要获得Man的name值,则需要如下代码: ? (3)值栈中使用索引。 Struts 2允许在值栈中使用索引,实例代码如下: ?...标签 append标签用于将多个集合对象拼接起来,组成一个新的集合。在使用append标签时,可以通过在标签体中加入param标签来指定想要进行拼接的集合。下面是实例代码: ?...标签 在新集合生成时所有元素都被放到值栈的栈顶,当subset标签结束时这些元素被弹出值栈。 3.1.2 表单标签 1.与HTML功能相同的标签: ?...标签:标签用于生成两个列表选择框,并且生成一系列的按钮用于控制各选项在两个下拉列表框之间的移动、升降等。
我们首先来看看文件上传http是怎么把数据带过去的 jsp页面,表单一定要指定enctype:multipart/form-data 0) { System.out.println(new String(bytes, 0, len)); } 在jsp...//设置upload的编码 fileUpload.setHeaderEncoding("UTF-8"); 解决表单数据乱码,在获取表单值的时候,按照UTF-8编码来获取 String...---- 多个文件上传,动态添加上传控件 假设我现在有多个文件要上传,而且要上传的个数是不确定的。那么我们要怎么办呢??? 我们不可能列出很多很多个上传文件的控件在页面上,这样不美观。...这样子吧:当用户想要上传文件的时候,就点击按钮,按钮绑定事件,生成文件上传的控件。 为了做得更加完善,每当生成了文件上传的控件,也提供一个删除按钮,删除该控件!
我们首先来看看文件上传http是怎么把数据带过去的 jsp页面,表单一定要指定enctype:multipart/form-data <form action="${pageContext.request.contextPath...; while ((len = inputStream.read(bytes)) > 0) { System.out.println(new String(bytes, 0, len)); } 在jsp...//设置upload的编码 fileUpload.setHeaderEncoding("UTF-8"); 解决表单数据乱码,在获取表单值的时候,按照UTF-8编码来获取 String...---- 多个文件上传,动态添加上传控件 假设我现在有多个文件要上传,而且要上传的个数是不确定的。那么我们要怎么办呢??? 我们不可能列出很多很多个上传文件的控件在页面上,这样不美观。...这样子吧:当用户想要上传文件的时候,就点击按钮,按钮绑定事件,生成文件上传的控件。 为了做得更加完善,每当生成了文件上传的控件,也提供一个删除按钮,删除该控件!
@JsonFormat注解指定的格式,而不加@JSONFormat注解默认为时间戳戳格式,如下图所示 Spring MVC 处理 AJAX 请求 在index.jsp同级目录下新增一个页面emps.jsp..., 点击提交按钮 请求提数据被打印在控制台中 在post.jsp页面增加一个ajax的post请求 使用Ajax发送JSON格式的POST请求 重新启动应用,浏览器输入http://localhost:8080/upload.jsp, 进入文件上传界面并输入文件上传的表单内容 点击提交按钮
可以从两个方面去看Servlet: a、API:有一个接口servlet,它是servlet规范中定义的用来处理客户端请求的程序需要实现的顶级接口。...a、get是用来从服务器上获取数据,而post是用来向服务器传递数据; b、get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者用"?"...连接,变量之间用"&"连接;而post是将表单中的数据放在form的数据体中,按照变量与值对应的方式,传递到action所指定的URL。...Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是java和HTML可以组合成一个扩展名为.jsp的文件。...在JSP中使用page指令进行设置,具体代码如下: 对于Servlet,可以让自定义的Servlet实现SingleThreadModel标识接口
struts2 拦截器结构的设计是一个典型的责任链模式的应用,首先将整个执行的过程划分为若干相同类型的元素,每个元素具备不同的逻辑责任,并将这些元素放到一个栈式的数据结构中,每个元素又有责任负责下一个元素的执行调用...1.4 拦截器和过滤器的区别 过滤器理论上可以过滤任意内容,比如 jsp页面,html页面,servlet,图片路径等等 拦截器只能拦截 Action,每次访问时就会创建一个 Action,多个 Action...拦截器配置的步骤: 在要拦截的 action 标签所在的 package 标签中声明拦截器 在具体的 action 标签中使用声明的自定义拦截器 手动配置 struts2 的默认拦截器 下面就通过一个用户登陆的案例来说明自定义拦截器的使用...-- 配置不拦截的方法,多个方法用逗号隔开 --> login ...页面中获取值栈中的数据 :获取值栈 list 集合的数据,遍历 list 集合中的值 :查看值栈结构和数据 2.2 表单标签 2.2.1 HTML 表单相关标签回顾
第二部分 Struts 2文件操作 5.2.1 文件上传实例 1.创建Struts 2项目 用Struts 2的Common-FileUpload框架上传多个文件。...”,以二进制流的方式来处理表单数据,如下: ?...4.建立success.jsp 上传成功后,跳转到成功页面。代码如下: ? 5.部署运行 如图所示,然后单击【上传】按钮,成功后跳转到成功页面,这时可以打开D盘的upload文件夹查看上传的文件。...在项目WebRoot下建立一个image文件夹,其中放入一个文件“用例.rar”,用于本例下载演示之用。 ? 2.修改index.jsp ?...3.使用getText()方法 getText()应用范围比较广泛,可以在页面使用,也可以在Action类或校验配置文件中使用。对于上面两个方法的应用都可以用该方法来代替: ? ?
用这个名称查找对应的视图解析器(5),负责将逻辑名称转换成对应的页面实现,可能是JSP也可能不是。...原来我们一般在xml文件中使用元素启动注解驱动的Spring MVC特性。...从Spring 3.0开始,Spring支持在Spring MVC项目中使用Java Validation API。...除了上述两个注解,Java Validation API提供了很多不同功能的注解,都定义在javax.validation.constraints包种,下表列举出这些注解: ?...Java Validation API列表 ? Java Validation API列表(续) 在Spittr类的定义中规定验证条件后,需要在控制器的处理方法中应用验证条件。
SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等) 工作流程 spring mvc 请求用例图 ?...一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。...强大而直接的配置方式:将框架类和应用程序类都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器(validator)的引用。...可适配、非侵入:可以根据不同的应用场景,选择合适的控制器子类 (simple型、command型、form型、wizard型、multi-action型或者自定义),而不是从单一控制器 (比如Action...JSP表单标签库:在Spring2.0中引入的表单标签库,使得在JSP中编写 表单更加容易。 Spring Bean的生命周期可以被限制在当前的HTTP Request或者HTTP Session。
有些代码跟程序无关,但还是必须要程序员实现接口(比如Servlet的API,这就很烦了,其实这些代码每个Servlet都要写,还没实际逻辑),为了屏蔽这种不必要的复杂性,减少工作量,可以用Struts...2.Validateable接口:该接口提供了一个validate()方法用于校验表单数据,在实际应用中只要在Action类中重写该方法即可,该方法是在执行execute()方法之前执行的。...2.3.3 在Action中定义多方法 如果程序中功能越来越多,那就要定义越来越多的Action类,所以一般不采取这样的方式,而是把相关的功能定义在同一个Action类中,用多个方法来实现不同的功能。...该方法是在请求中指定应用Action类中的哪个方法,还有一种办法是在提交按钮中设置的,不用做任何改变,不过提交按钮需要用Struts 2的标签来实现,并且指定method: ?...parse:指定是否允许在location参数值中使用表达式,如“/main.jsp?name=${name}”,在实际运行时,这个结果信息会替换为用户输入的“name”值,该参数默认值是true。
在使用时,可以将栈内的多个拦截器当成一个整体来引用。...除此之外,在一个拦截器栈中还可以包含另一个拦截器栈。 1.6 编写自定义拦截器 下面用一个添加登录拦截器功能的实例展示自定义拦截器的使用。...需要注意的是,在JSP文件中,所有的 Struts2标签库的使用“s”前缀。...需要注意的是,表单标签的name和 value属性基本等同于HTML组件的name和 value,但是也有些不同的地方:表单标签在生成HTML的时候,如果标签没有设置 value属性的话,就会从值栈中按照...其中name属性用于指定重置按钮的名称,在 Action中,可以通过name属性来获取重置按钮的值,value属性用于显示按钮的值。