java
纳兰若风
生命在于折腾!
展开
-
24种设计模式之单例模式
24种设计模式之单例模式一、核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。二、常见的应用场景:1、Windows的Task Manager(任务管理器)就是很典型的单例模式;2、windows的Recycle Bin(回收站)也是典型的单例应用.在整个系统运行过程中,回收站一直维护着仅有的一个实例。3、项目中,读取配置文件的类,一般也只有一对象。没...原创 2019-03-22 00:53:06 · 435 阅读 · 0 评论 -
response.setHeader()的用法
response.setHeader()下载中文文件名乱码问题 收藏 1. HTTP消息头(1)通用信息头即能用于请求消息中,也能用于响应信息中,但与被传输的实体内容没有关系的信息头,如Data,Pragma主要: Cache-Control , Connection , Data , Pragma , Trailer , Transfe转载 2017-12-18 15:48:12 · 566 阅读 · 0 评论 -
Tomcat中Connector常用配置
Tomcat中Connector常用配置 Tomcat中server.xml有些配置信息是需要我们了解的,最起码知道如何进行简单的调试. [java] view plain copy print?"8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPor转载 2018-01-12 11:08:55 · 513 阅读 · 0 评论 -
java Servlet的生命周期
一、生命周期(Servlet的执行过程):1.加载web.xml中读取com.uwo9.controller.LifeServlet2.实例化(创建Servlet对象)Class.forName("com.uwo9.controller.LifeServlet").newInstance();3.初始化调用init原创 2018-01-13 09:53:05 · 320 阅读 · 0 评论 -
servlet的优缺点
优点:1. Servlet是纯Java语言,擅长于处理流程和业务逻辑。接收前端数据返回响应。缺点:1. web.xml配置量太多,不利于团队开发,在写每一个servlet在web.xml都要做相应的配置;2. servlet具有容器依赖性,不利于单元测试; 3. servlet处理的请求很局限4.页面内容展示极差。原创 2018-01-13 10:22:07 · 6856 阅读 · 0 评论 -
JAVA设计模式之单例模式
概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、转载 2018-01-13 10:48:06 · 179 阅读 · 0 评论 -
java Servlet 解决中文乱码问题
请求信息:Get请求:1.在Servlet中设置请求对象字符编码;req.setCharacterEncoding("utf-8");2.在Tomcat根目录下conf文件夹下server.xmlPost请求:1.在Servlet中设置请求对象字符编码;req.setCharacterEncoding("utf-8原创 2018-01-13 15:20:07 · 1050 阅读 · 0 评论 -
java请求转发和重定向异同
区别:1.请求次数不同。请求转发整个跳转请求一次。重定向整个跳转请求两次。2.地址是否变化请求转发地址栏不发生变化。重定向地址栏发生变化。3.语法不同。请求转发:req.getRequestDispatcher("请求地址").forward(req,resp);重定向:resp.s原创 2018-01-13 15:30:57 · 802 阅读 · 0 评论 -
Content-Disposition 响应头
Content-Disposition 属性是作为对下载文件的一个标识字段,在rfc2616 http://www.rfc-editor.org/rfc/rfc2616.pdf 章节19.5 Additional Features中有介绍,具体介绍请看 http://www.rfc-editor.org/rfc/rfc1806.txt字段介绍如下:disposition :=转载 2017-12-18 15:16:46 · 623 阅读 · 0 评论 -
java获取局域网内所有ip信息
1.获取本机的地址package com.uwo9.test01;import java.net.InetAddress;import java.net.UnknownHostException;public class Test01 { public static void main(String[] args) { InetAddress iAddress; InetA原创 2017-12-17 23:46:56 · 3936 阅读 · 0 评论 -
java jsp 执行过程
步骤1:客户端发出请求(request),请求访问JSP网页步骤2:去tomcat下conf文件夹下查找web.xml文件 *.jsp利用.JSP文件 转译成Servlet的源代码(.java文件)步骤3:将产生的Servlet的源代码(.java文件)经过编译,生成.class文件,并加载到内存执行。步骤4:最原创 2017-12-14 19:48:31 · 294 阅读 · 0 评论 -
Java获取请求客户端的真实IP地址
JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.javapeixun.com.cn /的U转载 2017-12-15 15:27:18 · 5056 阅读 · 0 评论 -
java反射技术
一、反射的引入1.编译时知道类或对象的具体信息,此时直接对类和对象进行操作即可,无需反射Student stu2 = new Student();stu2.setAge(stu1.getAge());System.out.println(stu2.getAge());2.如果编译不知道类或对象的具体信息,此时应该如何做呢?使用反射来实现比原创 2017-12-06 23:04:17 · 2146 阅读 · 4 评论 -
java 使用IO字节流将一句话写入文件
package com.uwo9.test01;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.Scanner;原创 2017-12-17 16:25:27 · 1488 阅读 · 0 评论 -
java 使用IO流读取指定文件中的内容
一、使用字节流读取我们先使用字节流一个一个读取package com.uwo9.test01;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputSt原创 2017-12-17 16:09:07 · 19224 阅读 · 0 评论 -
java使用IO流完成文件的复制(文本、图片、视频)
一、使用字节流实现复制文件中的地址可以是图片或视频。1.基础版:package com.uwo9.test01;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;im原创 2017-12-17 16:52:13 · 8522 阅读 · 3 评论 -
java使用IO打印流输出到文件
打印流(只有输出流、没有输入流)打印流小例子package com.uwo9.test01;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.OutputStream;import java.io.PrintStrea原创 2017-12-17 21:45:59 · 2380 阅读 · 0 评论 -
java使用IO对象流进行数据读写
对象的读写 使用ObjectInputStream和ObjectOutputStream读写对象(序列化与反序列化)。只有字节流没有字符流1).类必须实现Serializable接口2).给类加个序列化编号,给类定义一个标记,新的修改后的类还可以操作曾经序列化的对象3).静态是不能被序列化的,序列化只能对堆中的进行序列化 ,不能对“方法区”中的进行序列化4).不需原创 2017-12-17 21:56:20 · 5615 阅读 · 2 评论 -
Java实现对cookie的操作(增删改查)
/** * 读取所有cookie * 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期 * @param request * @param respons转载 2018-01-13 17:23:51 · 447 阅读 · 0 评论 -
Java Session 介绍
一、为什么需要Session这是为了填补 Http 协议的局限,当用户去访问一个页面,服务端返回完了请求(如,你访问完一个网页,这个页面将页面内容,界面UI呈现给你),就算是结束了,就断开了,服务端不再去追踪客户端(浏览器)的任务状态,所以 Http 的每次请求都是独立的,非连续的,Http 也称为无状态协议。那我们如果想在一个场合,或是一个特定过程,操作些用户自己的数据,就会很麻烦,转载 2018-01-13 17:51:25 · 394 阅读 · 0 评论 -
java jdbc util封装
1.先写一个简单的jdbc查询操作,了解思路:package com.uwo9.testcrud;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/原创 2018-01-07 20:58:24 · 1767 阅读 · 0 评论 -
Tomcat7目录结构
1、bin:该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat6.exe、tomcat6w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME环境变量才能启动,shutdawn转载 2018-01-07 21:45:12 · 198 阅读 · 0 评论 -
Log4J日志配置详解
一、Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。1、LoggersLoggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。转载 2018-01-17 19:34:07 · 284 阅读 · 0 评论 -
log4j的日志文件保存到项目发布目录,log4j文件每天分割按日期命名
自己设置目录,也就是在项目启动时通过System.setProperty来设置,实现ServletContextListener来解决:public class log4jlistener implements ServletContextListener { public static final String log4jdirkey = "log4jdir"; public voi转载 2018-01-17 20:15:06 · 5223 阅读 · 0 评论 -
mybatis的mapper返回map结果集
通过MapKey指定map的key值@MapKey("id")Map getUserInfoMap();@MapKey("id")Map> getUserValueMap();map的value为java类resultMap id="UserResultMap" type="com.xixicat.domain.UserInfo"> result prope转载 2018-01-29 12:53:57 · 12476 阅读 · 3 评论 -
java-ssm-mybatis逆向工程
编码代码时候,pojo、mapper接口以及mapper文件,实现起来没有什么难度,但是需要很大工作量,我们借助逆向工程自动生成pojo、mapper接口以及mapper文件。使用逆向工程,需要新建一个JAVA Project,需要导入的包如下:log4j-1.2.16.jarmybatis-3.2.3.jarmybatis-generator-core-1.3.2.jarmysql-connec...原创 2018-02-25 21:12:07 · 664 阅读 · 2 评论 -
java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了...转载 2018-06-03 22:31:25 · 352 阅读 · 0 评论 -
volatile
内存可见性留意复合类操作解决num++操作的原子性问题禁止指令重排序总结内存可见性 volatile是Java提供的一种轻量级的同步机制,在并发编程中,它也扮演着比较重要的角色。同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。 为了能比...转载 2018-06-03 22:32:32 · 318 阅读 · 0 评论 -
java多线程
一、线程的概念1.程序:Program,是一个指令的集合2.进程:Process,(正在执行中的程序)是一个静态的概念1).进程是程序的一次静态态执行过程, 占用特定的地址空间.2).每个进程都是独立的,由3部分组成cpu,data,code3).缺点:内存的浪费,cpu的负担3.线程:是进程中一个“单一的原创 2018-01-07 18:06:26 · 310 阅读 · 0 评论 -
java Timer计时器小例子
小例子:每天下午五点整提醒先写个初级版练练手:每三秒钟提示一次package com.uwo9.test06;import java.util.Date;import java.util.Timer;import java.util.TimerTask;public class Test01 { public static void main(String[] args)原创 2018-01-07 17:35:17 · 1485 阅读 · 0 评论 -
session和cookie区别
区别:1、cookie数据存放在客户的浏览器上,session数据放在服务器上。2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE。4、单个cookie保存的数据不原创 2018-01-14 22:48:51 · 221 阅读 · 0 评论 -
java servlet 的三大作用域
作用域:理解成共享区域。作用域的真正作用是为了有效的传递数据。存放数据:setAttribute(String,Object);获取数据:getAttribute(String );删除数据:removeAttribute(String);保证正常获取作用域中的数据必须满足下面两个条件:1.HttpServletRequest作用域:作用范围:请求转发的Serv原创 2018-01-15 00:04:36 · 1852 阅读 · 0 评论 -
java利用Session实现三天免登录
login.jsp<% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";%>">登录首页原创 2018-01-15 10:37:14 · 7627 阅读 · 9 评论 -
java servlet ServletConfig和ServletContext详解
一、ServletConfig 对象及其使用1、补充:Context和ContextPath : 一个Web工程,如名为JavaWeb,访问的路径为http://localhost:8080/JavaWeb,这整个web应用就成为一个Context,路径/JavaWeb被称为上下文路径(ContextPath )。request.getContextPath ()可以获取。转载 2018-01-15 14:09:21 · 578 阅读 · 0 评论 -
Java中的Filter过滤器
Filter简介Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。它主要用于对用户请求进行预处理,也可以对Http转载 2018-01-15 15:43:33 · 591 阅读 · 0 评论 -
java Listener监听器
一、监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和Servlet转载 2018-01-15 17:11:49 · 420 阅读 · 0 评论 -
java socket 通讯小例子
例子1:服务端接受客户端请求我们先来写服务端代码:package com.uwo9.test02;import java.io.DataInputStream;import java.io.IOException;import java.io.InputStream;import java.net.InetAddress;import java.net.ServerSocket原创 2018-01-07 16:11:06 · 267 阅读 · 0 评论 -
java jsp page指令
一、JSP 指令JSP 指令(directive)影响由 JSP 页面生成的 servlet 的整体结构。下面的模板给出指令的两种可能形式。属性值两边的双引号可以替换为单引号,但引号标记不能完全省略。如果要在属性值中使用引号,则要在它们之前添加反斜杠,' 使用 \'," 使用 \"<% directive attribute1="value1"attribute2="val转载 2017-12-14 15:27:02 · 342 阅读 · 0 评论 -
java Collection容器(集合类)
Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中。Collection 表示一组对象,他是集中收集的意思,就是把一组数据收集起来,Collection接口的两个子接口Set,List:。--------------------------------------List部分Start-------------------------------原创 2017-11-01 15:23:43 · 613 阅读 · 0 评论 -
使用java容器(集合类)模拟商城
我们这里的商城,需要实现的功能有:1.添加商品;2.查看商品;3.添加商品到购物车;4.查看商品;5.退出;6.退出时将商品存到文件中,7.前后分离,通过接口连接。部分效果如下:******欢迎光临xxx购物系统v1.0******1、添加商品2、查看商品3、添加商品到购物车4、查看购物车5、退出请输入你要选择的功能:1~52商品原创 2017-11-06 12:57:48 · 978 阅读 · 0 评论