自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 线程带来的风险

线程带来的风险1.安全性 非原子操作导致多个线程调用方法时获取错误结果。2.活跃性 多线程之间造成资源竞争,锁产生。3.性能问题 多线程之间的切换(上下文切换)会带来极大开销...

2020-05-09 11:04:17 205

转载 java动态绑定在属性和方法上的不同

运行时绑定也叫动态绑定,它是一种调用对象方法的机制。Java调用对象方法时,一般采用运行时绑定机制。 1.Java的方法调用过程 编译器查看对象的声明类型和方法名(对象变量的声明类型)。通过声明类型找到方法列表。 编译器查看调用方法时提供的参数类型。 如果方法是private、static、final或者构造器,编译器就可以确定调用那个方法。这是静态绑定。 如果不是上述情况,就

2017-12-15 09:57:42 313

转载 利用Session防止表单重复提交(token)

具体的做法:在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token。然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,表单提交的时候连同这个Token一起提交到服务器端,然后在服务器端判断客户端提交上来的Token与服务器端生成的Token是否一致,如果不一致,那就是重复提交了,此时服务器

2017-09-21 14:32:49 258

原创 Oracle_高级子查询

1.多列子查询查询与141号或者174号员工的 manager_id和department_id相同的其他员工的employee_id,manager_id,department_id//单列子查询的方式  select  employee_id,manager_id,department_idfrom employees e1where manager_id in (se

2017-08-23 16:45:23 432

原创 9.SpringMVC_自定义视图和重定向

1.视图类 HelloView把view类放入IOC容器中,使用@Component@Componentpublic class HelloView implements View{ @Override public String getContentType() { return "test/html"; } @Override public void rend

2017-08-22 20:10:11 342

原创 8.SpringMVC_如何确定目标方法POJO类型参数/视图解析流程分析/

一。SpringMVC 确定目标方法POJO类型入参的过程:1.确定一个key:若目标方法的POJO类型参数没有使用@ModelAttribute修饰,则key为POJO类名第一个字母小写  若使用了该标签,则key为 @ModelAttribute 注解的value属性值。2.若implicitModel中查找key对应对象,若存在,则作为入参传入3.若implicitMod

2017-08-20 21:12:16 246

原创 7.SpringMVC_ModelAttribute注解

1.使用场景在通过页面update某数据模型部分属性时,不能new新的对象,这样update时会将未修改字段抹除。应该现在数据库中获取存在的对象,然后再将页面表单部分属性填入该对象。2.实例修改User 的名字,但不允许修改密码 @ModelAttribute public void getUser(@RequestParam(value="id",required=fals

2017-08-08 12:28:06 281

原创 6.SpringMVC_处理模型数据

Spring MVC通过以下几种途径运输出模型数据:1.ModelAndView2.Map及Model3.@SessionAttributes :会把数据放入session中,该注解只能用在类上。4.@ModelAttribute1.ModelAndView 处理方法viewName标识了返回目标页面,通过addObject方法添加模型数据。框架会把model中的数

2017-07-07 11:06:56 231

原创 5.SpringMVC_使用POJO作为参数,使用Servlet原生API作为参数

Controller类/** * SpringMVC 会自动按照请求参数名和POJO属性名进行自动匹配,支持级联属性 * @param user * @return */ @RequestMapping("/testPOJO") public String testPOJO(User user){ System.out.println(user); return S

2017-07-05 12:39:21 317 3

原创 4.SpringMVC_@RequestParam和@RequestHeader 、@CookieValue 获取请求参数

1.使用@RequestParam注解来绑定请求参数Controller类 test RequestParam使用该注解,可以得到请求参数,其中默认必须填写,不然会报错。将required=false则可以省略该参数@RequestMapping(value="/testRequestParam") public String testRequestParam(@Requ

2017-07-05 12:28:15 292

原创 3.SpringMVC_HiddenHttpMethodFilter

1.利用REST风格URL来进行资源处理HTTP的四种请求方式GET POST PUT DELETE分别处理查增改删操作。那么在springmvc里,HiddenHttpMethodFilter会将post请求转化为put或delete。(因为浏览器form只支持get和post)在web.xml中配置该过滤器 HiddenHttpMethodFilter o

2017-07-05 11:25:10 236

原创 2.SpringMVC_RequesMapping

1.@RequestMapping既可修饰方法,也可修饰类下面类对应的请求url为:Test requestMapping 类上方的值,相当于目录,而方法上的值提供细分。@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest { private static final String SUCCES

2017-07-04 21:32:31 270

原创 1.SpringMVC_简单HelloWorld

1.在web.xml配置DispatcherServlet<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee h

2017-07-04 18:45:38 176

原创 24.Spring_与Web应用整合

一、基本思路1.jar包:额外加入:spring-web-4.0.0.RELEASE.jar    spring-webmvc-4.0.0.RELEASE.jar2.Spring配置文件:差别不大3.如何创建IOC容器:① 非WEB应用中直接在main直接创建②WEB应用应该在WEB应用被服务器加载时就创建IOC容器:在ServletContextListener下cont

2017-06-02 21:53:45 227

原创 23.Spring_Spring与Hibernate整合--准备

1.Spring整合Hibernate整合什么?1)由IOC容器管理hibernate的SessionFactory2)让Hibernate使用Spring声明式事务1.整合步骤:1)加入Hibernate:加入jar,添加Hibernate配置文件,编写持久化类对应.hbm.xml文件2)加入Spring3)整合Hibernate.cfg.xml文件

2017-06-02 20:38:08 218

原创 22.spring_使用xml配置事务

application-config.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context

2017-06-02 11:06:12 239

原创 21.Spring_基于配置文件的方式实现切面通知

通过xml配置文件的形式来实现切面通知配置。<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/con

2017-05-30 11:38:21 244

原创 20.Spring 通过注解配置Bean

一、在classpath中扫描组件1.组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件。2.特定组件包括:@Component:基本注解,标识了一个受Spring管理的组件@Respository:标识持久层组件@Service:标识服务层(业务层)组件@Controller:标识表现层组件3.对于扫描到的组件,Spring有默认

2017-05-29 11:48:15 237

原创 29.struts2_自定义拦截器

Interceptor接口每个拦截器都实现com.opensymphony.xwork2.interceptor.Interceptor接口。init:该方法在拦截器被创建后立即调用,在生命周期里只调用一次。        intercept:每拦截一个请求,该方法调用一次。destroy:该方法将在拦截器被销毁之前调用,生命周期中也只被调用一次。AbstractI

2017-05-26 21:41:42 274

原创 28.struts2_表单重复提交

一、什么是表单的重复提交在不刷新表单页面的情况下,多提点击提交按钮已经提交成功,回退后再次点击提交在控制器相应为转发情况下,提交成功后,F5刷新页面(因为此时浏览器url是action的url会重新操作),重定向url就变化了。二、Struts2解决表单重复提交使用标签,该标签会在隐藏域和session中放入一个相同的值。经过Token或者TokenSession拦截器

2017-05-26 21:23:28 248

原创 27.struts2_文件的下载

Struts2专门为文件下载提供了一种Stream结果类型,在使用Stream结果时,不必准备一个JSP页面。可为result 设定如下参数:contentType: 结果类型contentLength:下载长度contentDisposition:设定相应头,是一个文件下载类型。一般取值格式为: attachment;filename=“document.pdf”.input

2017-05-25 15:19:21 311

原创 26.struts2_文件的上传

一、准备工作表单准备:将 HTML表单 enctype属性设置为 multipart/form-data  表单需要使用 method为post的方式   添加字段二、struts2对文件上传的支持框架中,FileUpload拦截器和Jakarta Commons FileUpload组件可以完成文件的上传。步骤:1.在对应Action建立三个属性private

2017-05-25 10:59:20 229

原创 25.struts2_自定义验证器和编程验证

一、自定义验证器定义:可以选择继承ValidatorSupport类(实现一般验证器)或FieldValidatorSupport类(实现字段验证器)。配置:默认情况下,Struts2会在类路径根目录下加载validators.xml文件中的验证器。若类路径下没有,则从com.opensymphony.xwork2.validator.validator.validators下加载

2017-05-24 20:51:23 282

原创 24.struts2_短路验证,非字段验证,相同验证规则使用一条相应

一、短路验证validation.xml中添加 conversion类型转换错误验证,当在Age文本框输入非int型参数后,后台会返回包含范围、转换错误的多条消息。 Conversion Error Occurred 20 50 Age needs to be between ${min}and ${max}

2017-05-24 15:21:17 301

原创 23.struts2_输入验证

概述:一个健壮的web应用程序必须保证用户输入时合法、有效的。除了前段js的验证外,后台也要进行验证。Struts2的输入验证:-->基于XWork Validation Framework的声明式验证:在xml中配置-->编程验证:通过编写代码进行验证输入Action类:TestValidationActionpublic class TestValidation

2017-05-24 14:39:45 193

原创 22.struts2_运行流程分析

1. 请求发送给 StrutsPrepareAndExecuteFilter2. StrutsPrepareAndExecuteFilter 询问 ActionMapper: 该请求是否是一个 Struts2 请求(即是否返回一个非空的 ActionMapping 对象)3. 若 ActionMapper 认为该请求是一个 Struts2 请求,则 StrutsPrepareAndExec

2017-05-24 10:05:25 335

原创 21.struts2_通过超链接实现国际化转换

实现核心在于:Struts2框架如何确定Local 对象的。具体参见框架的I18n拦截器(I18nInterceptor 类)在页面上添加中英文按钮,点击即可切换语言。关键参数reqeust_localeEnglish中文

2017-05-23 20:33:22 259

原创 20.struts2_国际化

1.国际化的目标1)如何配置国际化资源文件  ①Action 范围资源文件:在Action类文件所在的路径建立命名规则ActionName_language_country.properties 的文件②包范围资源文件:在包的根路径下建立文件名为package_language_country.properties 的属性文件,一旦建立,处于该包下的所有 A

2017-05-23 19:58:22 182

原创 19.struts2_ 自定义类型转换

Struts2不能将页面输入的字符串转换到引用类型,需要自定义转换器。1.开发类型转换器类:一般扩展框架中的 StrutsTypeConverter类,2.配置类型转器:配置有2种①基于字段所在Model的包下新建一个ModelClassName-conversion.properties,在文件中植入键值对:fieldName=类型转换器的全类名(这个类是单例的)第一次使用创建

2017-05-22 20:55:38 261

原创 18.struts2_类型转换,错误消息的显示和定制

从一个HTML表单到Action对象,类型转换的是从字符串到非字符串。struts2把请求参数映射到action属性的工作由Parameters拦截器负责,可以完成字符串与基本类型之间的转换。

2017-05-22 12:32:32 345

原创 17.struts2_PrepareInterceptor拦截器

为了解决上节的问题I.   在执行删除的时候, employeeId 不为 null, 但 getModel 方法却从数据库加载了一个对象. 不该加载!II.  指向查询全部信息时, 也 new Employee() 对象. 浪费!使用PrepareInterceptor拦截器可以为每一个 ActionMethod 准备 prepare[ActionMethdName]

2017-05-21 17:14:05 356

原创 16.Struts2_使用ParamsPrepareParams拦截器栈

页面修改Employee对象时,传入Aciton id属性,在页面中需要回显。通过id在数据库中取到emp,将各个字段赋值给栈顶的新Employee。完成回显,并跳转到修改页面。public String edit(){ //传入的EmployeeID //根据EmployeeID获取数据库对象,emp是数据库取出来的 Employee emp=dao.get(empl

2017-05-21 12:02:26 311

原创 15.struts2_ModelDriven拦截器

有些Action类不代表任何Model对象,他们得功能仅限于提供显示服务,也就是控制单元。如果Action实现了ModelDriven接口,那么该拦截器会将getModel()方法返回对象置于栈顶。对应Aciton类,实现了ModelDRiven类public class EmployeeAction implements RequestAware, ModelDriven,

2017-05-21 11:16:53 222

原创 14.struts2_框架流程分析,以及Params拦截器

ActionProxy是Action的一个代理类,也就是说Action的调用是通过ActionProxy实现的,其实就是调用了ActionProxy.execute()方法,而该方法又调用了ActionInvocation.invoke()方法。ActionInvocation负责Interceptor,Action,Result等一系列元素的调度。而这些拦截器

2017-05-21 10:34:31 762

原创 13.struts2_主题

主题:为了让所有的UI标签能够产生同样的视觉效果而归集到一起的一组模板simple   xhtml   css  ajax如何修改:1.在struts.xml中 2.在request中request.setAttribute("theme", "xhtml");3.在具体某个标签中

2017-05-20 21:03:22 196

原创 12.struts2_表单标签

使用表单标签的优点1.表单回显2.对页面进行布局和排版<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here <% request.setAttribute("the

2017-05-20 20:48:22 170

原创 11.struts2_通用标签

1 Struts2何时将Action的对象放入值栈中?放入时间:在调用Action类的Action方法时,但在之前会进行如下:-->先创建一个StrutsActionProxy对象-->在创建StrutsActionProxy之后,对其进行初始化时,把Action对象放入值栈中。2  *property标签用来输出值栈内,某个对象的属性值。 s:propert

2017-05-19 22:10:26 386

原创 10.struts2_声明式异常的处理

1.异常处理:exception-mapping元素struts.xml中配置 exception-mapping标签,可以捕捉在Action中出现的异常,exception:需要捕捉的异常名称result:出现异常后,跳转到哪个result <action name="product-save" class="com.atguigu.strut

2017-05-19 17:41:43 180

原创 9.struts2_动态方法调用

Struts2可以在忽略struts.xml配置下的方法,而根据url指定的action方法进行调用,这个功能在框架中默认关闭!1.先在配置文件中开启该功能 <action name="testDynamicMethodInvocation" class="com.atguigu.struts2.action.Test

2017-05-19 12:30:33 199

原创 Hibernate_映射文件详解

1.根节点hibernate-mapping节点属性使用package属性,可以定义该文件包名,默认下方class节点的对象都在该包中2.class节点中的动态更新节点属性在对象某字段更新后,提交update语句会只修改被更改过的字段,如果属性为false会update所有字段3.id节点,生成主键的方式。

2017-02-24 20:27:44 314

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除