Java Web学习笔记
文章平均质量分 61
武睿傲雪
喜欢在CSDN专业的技术论坛上提问题并解决问题
展开
-
使用RESTful Jersey框架搭建WebService,Hibernate框架访问数据库,MySQL存储数据
现在访问服务器数据的方式有很多种,主要有两种一个是通过JDBC连接数据库,访问数据库(直接访问),一种是通过将方法发布成服务通过wsdl或者客户端访问WebService(间接访问).本文就通过一种使用很方便地WebService框架Jersey,使用Hibernate框架访问数据库,Hibernate是轻量级框架,基本不需要写JDBC代码虽然Hibernate最后的实现使用的也是JDBC,SQL...原创 2016-08-09 00:54:46 · 2211 阅读 · 4 评论 -
Java中带条件的查询
使用的查询页面能设置复杂的查询条件。其基本原理是把查询条件转化为对应的WHERE子句,然后使用包含该WHERE子句的SQL查询数据库。下面使用tb_person表进行复杂的查询为例: searchPerson.jsp<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %><%@ p原创 2016-02-18 03:57:43 · 5513 阅读 · 2 评论 -
DBManager类(java jdbc数据库连接及操作)
DbManager.javapackage com.helloweenvsfei.util;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.原创 2016-02-18 02:27:15 · 5842 阅读 · 0 评论 -
Servlet之间的转跳之Forward(转向)
Forward是通过RequestDispatcher对象的forward(HttpServletRequest req,HttpServletResponse res)方法来实现的。RequestDispatcher可以通过HttpServletRequest的getRequestDispatcher()方法获得。例如下面的代码转跳到另一个Servlet:RequestDispatcher dis原创 2016-02-04 18:35:00 · 9596 阅读 · 1 评论 -
getContextPath、getServletPath、getRequestURI的区别
假定你的工程名称为projects,你在浏览器中输入请求路径:http://127.0.0.1:8080/projects/pages/newForm.jsp则执行下面向行代码后打印出如下结果:1、 System.out.println(request.getContextPath());打印结果:/projects 2、System.out.println(reque转载 2016-02-04 17:26:55 · 470 阅读 · 0 评论 -
Java带进度条的文件上传
工作原理:实时显示上传进度的原理是服务器在处理上传文件的同时,将上传进度的信息例如文件总长度、以上传多少、传输速率等写入Session中。客户浏览器利用Ajax技术再新开一个独立的线程从Session中获取上传进度信息,并实时显示。Ajax技术能够不断刷新页面获取服务器数据。Session课看作是服务器内存,可用于存放少量的客户信息。需要使用commons-fileupload-1.2.1.jar与原创 2016-02-04 04:49:23 · 14523 阅读 · 3 评论 -
Java中上传文件到服务器端
Web文件上传采用POST的方式,与POST提交表单不同的是,上传文件需要设置FORM的enctype属性为multipart/form-data.由于上传的文件会比较大,因此需要设置该参数指定浏览器使用二进制上传。如果不设置,enctype属性默认为application/x-www-form-urlencoded,使用浏览器将使用ASCII向服务器发送数据,导致发送文件失败。上传文件要使用文件原创 2016-02-03 22:57:10 · 38511 阅读 · 2 评论 -
JDBC基本操作:CRUD样例
数据库程序常被称为CRUD程序,因为它包括数据的创建Create、读取查询Read、更新Upadate、删除Delete操作,取首字母缩写便是CRUD.CRUD概括了数据库程序结构,程序无论大小,归根到底都是这4种操作。下面通过一个对于人员信息的增删改查来说明:查询数据库查询数据库遵循固定的流程:注册MySQL驱动、获得Connection、创建Statement、查询数据库返回ResultSet对原创 2016-02-17 04:09:29 · 2063 阅读 · 1 评论 -
MySQL乱码问题解决总结
MySQL支持几十种编码方式,并且默认的编码为latin1(一种西方字符编码方式)对中文支持不太好,因此需要设置MySQL的编码方式。如果没有设置或者设置不对很容易出现中文乱码。 常见的中文编码方式有GB2312、GBK、GB18030、UTF-8等。GB2312是针对中文的编码方式,每个汉字均占两个字节,解析比较简单,但是仅能编码中文字符。中文网站往往采用GB2312编码,例如BAIDU。GBK原创 2016-02-16 22:29:59 · 503 阅读 · 1 评论 -
Struts2与XWork
了解了Struts2的历史之后,我们知道Struts2来源于Webwork2。Webwork2之所以能够在技术上击败Struts1.X而成为新的框架Struts2的构建基础,主要是源于其优秀的设计思想。或许我们很难用一句话来准确描述这一设计思想的优越性体现在何处,但是当我们试图总结这种优秀思想中所蕴含的核心基石时,XWork将当仁不让地成为其中关键字的第一位。我们可以在XWork的官方网站上找到对转载 2016-02-23 01:04:59 · 3026 阅读 · 0 评论 -
HTML img 刷新图片的问题
今天在做一个 使用javaweb项目自动生成Android程序的项目 需要上传图片预览.但是第二次上传图片显示的时候发现之前的图片没有改变.后经过分析发现是地址相同第二次改变img src属性的时候图片未发生改变,浏览器第二次不会去请求服务器 解决方案很easy:在修改img的src属性的时候加上一个随机数即可,让浏览器以为每次请求的服务都不同.[javas转载 2017-05-03 21:12:50 · 9267 阅读 · 0 评论 -
Spring的DAO模块数据库操作实例
Spring的DAO模块提供了对了JDBC、Hibernate、JDO等DAO层支持。DAO模块依赖于 ,MyEclipse自带的Spring DAO类库没有这两个类库,需要自己添加。 下面以保存实体Person为例作介绍: 传统的JDBC编程,总免不了与Connection、Statement、PreparedStatement、ResultSet、SQLException等打交原创 2017-01-04 02:54:00 · 4683 阅读 · 0 评论 -
MyEclipse使用总结——MyEclipse文件查找技巧
一、查找文件 使用快捷键【ctrl+shift+R】弹出弹出文件查找框,如下图所示: 二、查找包含某个字符串的文件 使用快捷键【ctrl+H】在弹出对话框中选File Search选项,然后在第一个文本框中粘贴(我一般用粘贴)或自已手动录入(容易写错)要查找的字符串(可以是英文字符也可以是汉字),在第二个文本框中输入你所要查找的文件(比如:*.jsp)最后点击转载 2016-09-21 01:26:07 · 348 阅读 · 0 评论 -
Myeclipse中怎样隐藏碍眼的jar包
在使用MyEclipse时,项目比较大时,随之而来的jar包就会很多,如何隐藏jar包呢?在Package Explorer这个workspace中,右上角(滚动条上面)有个下拉小三角,点击-->“Filters”-->“Name filter patterns(matching names will be hidden)”,在这一选项下填有*.jar,勾上复选框即表示这一类的文件不显示,原创 2016-08-22 01:32:00 · 2304 阅读 · 0 评论 -
JAX-RS -- Java API for RESTful Web Services
Java EE 6 引入了对 JSR-311 的支持。JSR-311(JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架。同时,JAX-RS 使用 POJO 编程模型和基于标注的配置,并集成了 JAXB,从而可以有效缩短 REST 应用的开发周期。转载 2016-07-18 23:47:57 · 407 阅读 · 0 评论 -
Java中的ExceptionInInitializerError异常及解决方法
当在静态初始化块中出现了异常的时候,JVM会抛出 java.lang.ExceptionInInitializerError异常。如果你了解Java中的静态变量,你会知道它们是在类加载的时候进行初始化的。如果在这个静态变量初始化的过程中出现了异常,那么就会抛出 java.lang.ExceptionInInitializerError异常。任何异常都可能会引发这种情况,比如说,java.lan转载 2016-07-26 23:06:49 · 528 阅读 · 0 评论 -
Struts2 pojo类中包含Date类型属性使用自定类型转换器
1.Struts2中的类型转换器的注册方法 注册局部类型转换器 比如: action范围注册全局类型转换器 比如: 整个应用程序 2.编写 自定义类型转换器类 继承 DefaultTypeConverions 类 (将 一个String类型的变量,封装到 User POJO对象中 实现: 将字符串 “用户名,密码” <==>封装到 User 的 name 和 pwd 属性中) packa转载 2016-02-23 04:37:08 · 1205 阅读 · 0 评论 -
java.io.FileNotFoundException: http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd问题终结原因
问题:当我使用Struts2使用XML配置数据校验Validator时,发现校验数据没有效果。找了好久原因,终于找到原因并附上代码,希望能帮助初学Struts并遇到类似问题的朋友,废话不多说。首先遇到validator配置文件验证不起作用从下面方面一一验证。(首先考虑)下面是我从网上搜集到的: 在采用struts的xml配置方式校验数据时,发现怎么也不起作用。无法按照正常流程,走到input指向的原创 2016-02-23 02:53:20 · 2475 阅读 · 1 评论 -
JDBC各种数据库的连接的URL
由于使用了JDBC,各种数据库连接的方式是相同的,只是不同的数据库的连接URL不同。常见的数据库的连接URL见下表:由于使用了JDBC,各种数据库连接的方式是相同的,只是不同的数据库的连接URL不同。常见的数据库的连接URL见下表:数据库 连接URL 说明MySQL jdbc:mysql://locahost:3306/db 默认端口为3306.粗体 为连接时使用的原创 2016-02-16 21:55:38 · 1246 阅读 · 0 评论 -
使用EL表达式需要注意的
1、表达式与java无关,表达式都是以${开始,以}结束。2、EL访问java变量不能直接访问,因为得不到数据,要访问数据,需要将其放到作用域中。例如访问String str=”abc”,我们不能通过${str}直接访问,因为获取不到,我们可以这样访问:pageContext.setAttribute(“a”,str);获取方式${a},与java表达式不同的是,当str=null时,该获转载 2016-02-16 21:16:26 · 3543 阅读 · 0 评论 -
JavaScript操作Cookie
Cookie是保存在浏览器端的,因此浏览器具有操作Cookie的先决条件。浏览器可以使用脚本程序如JavaScript或者VBScript等操作Cookie.这里以JavaScript为例介绍常用的Cookie操作。例如下面的代码会输出本页面所有的Cookie.<script>document.write(document.cookie);</script>各Cookie之间用分号“;”隔开,例如:原创 2016-02-11 23:44:16 · 465 阅读 · 0 评论 -
Java Cookie使用Unicode编码中文
中文和英文字符不同,中文属于Unicode字符,在内存中占用4个字符,而英文属于ASCII字符,内存中只占2个字节。Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会出现乱码。编码可以使用java.net.URLEncoder类的encode(String str,String encoding)方法,解码使用java.net.URLDecoder类的decode(Str原创 2016-02-11 19:45:33 · 3087 阅读 · 0 评论 -
Java中使用Cookie记录用户访问次数
Java中把Cookie封装成了javax.servlet.http.Cookie类。每个Cookie都应该是该Cookie类的对象。服务器通过操作Cookie类对象对客户端Cookie进行操作。通过request.Cookie()获得客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookie cookie)向客户端设置Cookie.原创 2016-02-11 04:19:51 · 10531 阅读 · 1 评论 -
MyBatis魔法堂:ResultMap详解
一、前言 MyBatis是基于“数据库结构不可控”的思想建立的,也就是我们希望数据库遵循第三范式或BCNF,但实际事与愿违,那么结果集映射就是MyBatis为我们提供这种理想与现实间转换的手段了,而resultMap就是结果集映射的配置标签了。 二、从SQL查询结果到领域模型实体转载 2015-10-30 19:57:06 · 450 阅读 · 0 评论 -
ibatis 中$field$与#field#的区别
注意:1.#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by 'id',这当然会报错.2.$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id, 这就对了.3.#方式能够很大程度防止sql注入.4.$方式无法防止sql注入.5.$方式一般用于传入数据库对象.例如传入表原创 2015-11-04 19:50:37 · 819 阅读 · 0 评论 -
SQLMap实现原理
SQL Map API 能让开发人员轻易地将 Java Bean 映射成 PreparedStatement 的输入参数和 ResultSet 结果集 . 开发 Sql Map 的想法很简单 : 提供一个简洁的架构 , 能够用 20% 的代码实现 80%JDBC 的功能 . SQL Map 如何工作 SQL Map 提供一个简洁的架构 , 使用简单的 xml 描述文件将 Jav转载 2015-11-03 17:15:43 · 9112 阅读 · 1 评论 -
SpringFramework中SqlMapClientTemplate的使用
Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库的操作拥有更加灵活的控制,对于那些经常需要调用本地数据库函数自定义SQL语句,或是喜欢自己优化SQL执行效率的开发者来说,iBatis是一个非常不错的选择。而得到广泛应用的开源企业架构Spring转载 2015-11-03 11:15:17 · 932 阅读 · 0 评论 -
SqlMapClientTemplate用法
Person.java----------------------------------------------------------------------------- package ajdbc.bean;public class Person { private Long id; private String name; public Person()转载 2015-11-03 16:38:08 · 3972 阅读 · 3 评论 -
使用Cookie并使用MD5算法实现用户永久登录
如果用户是在自己家的电脑上网,登录时就可以记住他的登录信息,下次访问的时不需要再次登录,直接访问即可。实现方法就是把登录信息如账号信息如账号、密码等保存在Cookie中,并控制Cookie的有效期,下次访问时在验证Cookie中的登录信息即可。 保存登录信息有多重方案。最直接的是把用户名与密码都保持到Cookie中,下次访问时检查Cookie中的用户名与密码,与数据库比较。这是一种比较危险的选择,原创 2016-02-12 03:23:46 · 5476 阅读 · 1 评论 -
Java中序列化的serialVersionUID作用
Java序列化是将一个对象编码成一个字节流,反序列化将字节流编码转换成一个对象。 序列化是Java中实现持久化存储的一种方法;为数据传输提供了线路级对象表示法。Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如转载 2016-02-12 04:02:38 · 459 阅读 · 0 评论 -
Java中使用XML标签<x:transform />转化XML为HTML
transform标签通过模板,将源XML样式转化为另一种样式。Transform是XML标准的一种功能,通过xsl标签来执行动作,转化数据。JSTL通过transform标签支持该类功能。下面通过一个例子来说面: x_transform.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"%><%@ taglib原创 2016-02-16 04:23:07 · 2628 阅读 · 1 评论 -
mysql设置指定ip远程访问连接实例
这篇文章主要介绍了mysql设置指定ip远程访问连接的方法,分别实例讲述了从任意主机和指定ip访问远程MySQL数据库的方法,代码简单功能实用,需要的朋友可以参考下:本文实例讲述了mysql设置指定ip远程访问连接的方法,分享给大家供大家参考。具体实现方法如下:授权用户root使用密码jb51从任意主机连接到mysql服务器:GRANT ALL PRIVILEGES ON *.* TO 'roo转载 2016-02-16 02:36:51 · 676 阅读 · 0 评论 -
Java使用sql标签<sql:param />,<sql:param />设置日期参数
由于SQL语句没有携带参数,没有使用参数的query标签的update标签用起来更像是Java中的Statement类。其实query标签的update标签也可以像Java中PreparedStatement那样在SQL中设置参数。使用参数时需要使用param标签与dateParam标签设置参数值。param标签可以设置String,int等类型的数据,dateParam可以设置Date类型的数据,原创 2016-02-16 01:06:06 · 1160 阅读 · 1 评论 -
Java中使用sql标签<sql:query />分页显示
记录多时需要分页显示。分页显示需要查找出记录总数,然后根据煤业的记录数计算startRow与maxRow,然后在查找数据,下面使用queryPagination.jsp页面用于显示分页效果Pagination.java用于实现分页功能。代码如下: queryPagination.jsp<%@ page language="java" contentType="text/html; charset=原创 2016-02-15 18:17:01 · 958 阅读 · 2 评论 -
Java中使用SQL标签库<sql:setDataSource />设置数据源
setDataSource标签用于生成一个数据源,需要制定JDBC驱动、数据库连接URL、数据库用户名密码等,例如: setDataSource.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix=原创 2016-02-15 05:25:31 · 3718 阅读 · 1 评论 -
.properties 文件
在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。比如说我们开发了一个操作数据库的模块,在开发的时候我们连接本地的数据库那么IP ,数据库名称,表名称,数据库主机等信息是我们本地的,要使得这个操作数据的模块具有通用性,那么以上信息就不能写死在程序里。通常我们的做法是用配置文件来解决。 各种语言都有自己所支持的配置文件类型。比如Python ,他支持.ini 文件。因为他内部有转载 2016-02-13 02:06:20 · 392 阅读 · 0 评论 -
Log4j使用总结
一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志转载 2016-02-13 00:42:29 · 331 阅读 · 0 评论 -
Java中实现反盗链Filter
反盗链Filter实现这样一种效果,如果其他的网站引用本网站的图片资源,将会显示一个错误的图片。只有本站内的网页引用时,图片才会正确显示。即在图片实现之前对request进行验证,看客户请求是否来自本网站内,代码如下: ImageRedirectFilter.javapackage com.helloweenvsfei.filter;import java.io.IOException;impor原创 2016-02-12 23:56:50 · 1348 阅读 · 0 评论 -
java transient简介
我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,诚然,你可以让这个类来实现Extern转载 2015-06-17 22:37:07 · 389 阅读 · 0 评论