javaweb
若节
这个作者很懒,什么都没留下…
展开
-
分页的第四种方式
是假分页把数据都缓存在这一个类中每次缓存一定数量的数据,找数据时,若是数据已经存在,则直接调用,否则再此从数据库中调出数据,并加入此类中。修改数据时,先去修改数据库,然后修改此类中缓存的数据。public class Data {final private static Listusers=new ArrayList();volatile public st原创 2017-05-24 00:06:34 · 1416 阅读 · 0 评论 -
监听器综合案例
本案例实现一个登录功能,管理员登录时,可以踢用户下线。案例的bug及解决方案:附上代码:MyServletContextListener.javapackage com.listener;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletContext;im原创 2017-01-01 17:51:07 · 550 阅读 · 0 评论 -
Filter永久解决编码问题
Filter.javapackage com.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;i原创 2016-12-26 00:44:00 · 320 阅读 · 0 评论 -
javaweb常用监听器
Servlet 规范中定义了很多监听器,用于监听Servlet三个数据域对象创建销毁和 内部数据状态改变Servlet三种存储范围:ServletContext、HttpSession、ServletRequestServlet监听器分为三大类1、数据域对象创建和销毁 监听器2、数据域对象 属性变更监听器 3、绑定到Session中数据对象 本身状态监听器第原创 2016-12-31 10:15:27 · 4773 阅读 · 0 评论 -
监听器原理
自己写一个Java样例:PersonEvent.javapackage com.listener;import com.person.Person;public class PersonEvent { private Object p; public Object getSource() { return p; } public PersonEvent(Object原创 2016-12-29 14:34:38 · 442 阅读 · 0 评论 -
Filter 将动态页面化为静态
虽然页面是动态的,要从数据库里取数据,但很多数据往往不经常改变,这些界面就可以做成静态的,可以极大提高效率。主要思路就是:原本把数据从jsp翻译成servlet,然后打印给浏览器,但现在直接把response的反馈给浏览器的,直接放进html文件中,下次访问这个页面,只需要把请求转向 html 文件即可。要修改Response,写一个修改Response成自己写的类,一个拦截器,拦截特定需原创 2016-12-27 23:28:26 · 280 阅读 · 0 评论 -
Filter入门
Filter是可以拦截或放行从客户端到服务器的请求,也可以拦截服务器返回客户端的回馈。1.先写Filter类,实现Filter接口2.配置web.xmlpackage com.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;impor原创 2016-12-25 16:22:37 · 235 阅读 · 0 评论 -
JSP学习笔记---el表达式
${data}可以返回名为"data"的属性的值,依次从page,request,session,application四个域中寻找。${person.name}可以返回属性为person的对象的“name"属性,即使这个属性是私有的,它内部也会通过反射技术,调用get方法,来获取其对应的属性信息。如果对象是复杂对象,只需要一路用 ‘.' 就可以获取对象属性的值。若是用集合带过来数原创 2016-08-30 19:28:18 · 362 阅读 · 0 评论 -
自定义标签实现转义标签内文本内容
就是把标签内文本内容中的 括号,取地址等特殊符号替换成相应的符号。这个蛮有用的,尤其是在做论坛,聊天室时,只能把用户输入的字转义。public class HtmlFilter extends SimpleTagSupport { @Override public void doTag() throws JspException, IOException { String原创 2016-12-24 16:12:23 · 382 阅读 · 0 评论 -
自定义标签实现遍历集合
比较好的方法是,将所有集合化为Collection类型的集合,然后只需处理Collection集合便可。将Map化为Collection,Map的每一个元素即Entry放进Collection即可。将类数组化为Collection,调用Arrays.asList(objs);方法。若此对象为数组类(即items.isArray()返回true),将每一个数组元素放入Collection原创 2016-12-24 15:19:14 · 1689 阅读 · 0 评论 -
自定义标签写防盗链
大概讲述下:第一点:给标签赋两个属性,一为这个页面前一个页面应该是什么,二为需要跳转到的页面第二点:在对应的java类中,String referer=request.getHeader("referer"); 可以得到访问本页面的前一个页面的 url 并进行判断,执行是否跳转的指令第三点:在tld中配置相应属性这个可以直接拿去用public class Refer e原创 2016-12-24 10:35:09 · 283 阅读 · 0 评论 -
自定义标签学习
自定义标签为了避免jsp中出现java代码,以至于view层混乱,所以自定义标签使View层更简洁。1.写一个继承了TagSupport类的java类,如下public class ViewIPTag extends TagSupport { @Override public int doStartTag() throws JspException { HttpServle原创 2016-12-22 10:50:10 · 355 阅读 · 0 评论 -
简单标签执行过程
对于简单标签,就是实现SimpleTagSupport类的标签执行顺序是这样的1.遇到简单标签2.实例化标签处理器类3.调用setJspContext,把页面pageContext传给标签处理器类4.调用setParent把父标签传递进去,若是没有父标签,则传入null5.调用setJspBody方法,把封装了标签体JspFragment传递给标签处理器类6.执行页面中原创 2016-12-23 23:24:05 · 290 阅读 · 0 评论 -
response.sendRedirect所引发的问题及解决
在servlet跳转到 jsp 中,有时使用response.sendRedirect(request.getContextPath()+"/login.jsp"); 跳转到登录页面,却发现没有任何样式和图片。因为“当前路径”这个概念在J2EE中是不稳定的。所以最好都是绝对路径,类似于: 这句放JSP页面开头 /images/xxoo.jpg" /> 后面都类似这么写原创 2016-12-08 22:05:06 · 9090 阅读 · 0 评论 -
jstl标签库
jsp上方:导入点" default="未有输入值" escapeXml="true" >若输出值为空,则打印default中值,escapeXml若为true,则将待打印的部分转义。可以给 javabean ,map 或者 request 的属性赋值。 <% request.setAttribute("aaa", 123); %>原创 2016-12-24 20:37:17 · 242 阅读 · 0 评论 -
http协议
四层协议:应用层传输层网络互联层主机到网络层ip协议 类似信封通过访问ip地址,确定唯一的一台主机,通过端口访问具体的程序。tcp/udp :TCP面向连接的,连接时三次握手,断开时四次挥手,比较安全,效率低一些。udp面向无连接的,类似邮局,只把信放入信封,不管有没有收到,效率高安全性差。socket:java做tcp/ip开发的一套接口。http协议基于t原创 2017-02-12 13:27:48 · 229 阅读 · 0 评论 -
分页的第三种方式
优点:1.通用性更好,给为页码写一个类,更符合面向对象的思维2.代码十分简洁缺点:1.不能及使获取数据库中数据的变化封装进Dao对象,通过一个方法返回一个map,map里有一个页码对象,还有一个页面数据对象public class FenyeService {private HibernateDao dao;public FenyeService() {原创 2017-05-24 00:05:56 · 500 阅读 · 0 评论 -
分页的第二种方式
优点:1.代码十分简洁缺点:1.不能及时响应数据库中变化2.重复查询较多,每获取一个属性(总页数),都要查找数据库将某一页的数据直接封装在此类中,调一个方法便可获取数据。public class fengye {// 查询所有用户public List selecthouse() {// TODO Auto-generated method st原创 2017-05-24 00:05:30 · 467 阅读 · 0 评论 -
分页的第一种方式
优点:1.能够立刻响应数据库中数据的变化,因为异步刷新,每隔三秒都从数据库中取出数据显示在页面上。2.可以决定显示多少个页码,并且页码是根据当前页码的显示而自动改变的,相比于传统的页码更好看点。缺点:1.异步刷新,代码稍有些复杂。js拼凑字符串并显示为html。/js/jquery-3.1.1.min.js">#pagination-digg li { bo原创 2017-05-24 00:04:56 · 404 阅读 · 0 评论 -
ecFun——JavaEE综合实战项目
这个网站是我们四个人一起写的大作业,得了95分,被设计报告毁了,故在这里修改后补上,各位可以用来学习使用,源码可直接导入使用:获得源码ecFun漫画音乐综合娱乐网站设计报告一.网站介绍目前我国纯娱乐性质的网站太少,到后来网站都逐渐商业化,以获取更多利润,而反观当下,人们生活节奏逐渐加快,背负的压力越来越大,于是很多青少年走上游戏的不归路,更有甚者,许多人压力无处释放,赌博,吸毒泛滥成...原创 2016-12-12 20:42:23 · 4533 阅读 · 3 评论 -
JavaMail——进阶
这里使用Transport静态方法发送邮件,不可以在发送时临时设置发送人的用户名密码,这要移到 Session.getInstance 参数中。同时smtp服务器的地址也没有设置,在props中设置。 public static void main(String[] args) throws Exception { Properties props=new Properties();原创 2017-03-03 12:01:56 · 290 阅读 · 0 评论 -
JavaMail——基础篇
常用场景:1.注册完,账户激活功能 2.商城广告邮件 3.节日祝福 4.系统对用户功能通知,可以通过邮件。 电子邮件服务器主要功能:1.接收用户投递的邮件。2.将用户投递进来的邮件转发给目标邮件服务器。3.接收其他邮件服务器转发来的邮件,并把邮件存储到其管理的用户邮中。4.为前来读取邮件的用户提供服务。(服务器为被动的)邮件服务原创 2017-03-02 22:34:04 · 357 阅读 · 0 评论 -
转发到之前页面
比如说,你有资源放在resource.jsp页面上,让用户必须登陆后才能访问。所以用户未登录访问资源时,便会跳到登录页面login.jsp,然后登录成功直接跳转到资源页面。servlet中,request.getHeader("referrer");可以得到上一次的请求地址。原创 2017-03-01 17:59:35 · 569 阅读 · 0 评论 -
C3P0连接池
使用连接池来管理连接,即应用程序启动时,系统主动建立足够的数据库连接,并将这些连接组成一个连接池,每次应用程序请求数据库连接时,无需重新打开连接,只是从连接池的取出一个连接即可以使用,用完之后不必关闭连接,而是将连接直接归还给连接池。这将大大提高程序运行效率。主要流行两种数据源,DBCP与C3P0推荐使用C3P0,因为性能略胜一筹,Hibernate就推荐使用此连接池,因此这里只介绍C3P原创 2017-02-22 17:16:05 · 198 阅读 · 0 评论 -
JSTL的fmt标签库与fn方法库
fmt标签库封装在里。1.可以设置编码 还要修改TOMCAT的server.xml 将URLEncoding设置为UTF-8,否则requestEncoding不起作用2.显示特定地区的数据格式。每个国家最习惯的时间显示格式,日期显示格式区别较大,为了调整成本地最适宜的格式,则可以设置特定地区 显示:2017年2月22日 星期三 下午03时23原创 2017-02-22 15:51:41 · 680 阅读 · 0 评论 -
JSP指令与JSP行为
JSP指令格式为1.page指令常用的:import 取值为任何包名,类名 导包isThreadSafe true|false 指定是否线程安全,如果为true,则可以允许多个线程同时运行该JSP程序,否则只有一个线程运行,其余等待。默认为false。isErrorPage true|false 指定该页面是否为错误处理页面,若为true,则JSP有一个内置Ex原创 2017-02-22 11:58:47 · 226 阅读 · 0 评论 -
Servlet学习笔记---路径书写问题
一个大的原则:查看这个路径是为谁服务的。先写 String path="/";若是为服务器服务的,就是以当前项目为起点,写相对路径。若是为浏览器服务的,那就要把,这个项目的名字也要写进去。举个栗子:为服务器服务的:request.getRequestDispatcher("/form.html").forward(request,response);this.ge原创 2016-08-26 14:26:09 · 453 阅读 · 0 评论 -
C/S交换数据过程
基于HTTP的客户/服务器交换信息的过程。1.建立连接,连接的建立是通过套接字实现的。客户打开一个套接字并把它约束在一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文件上写数据并通过网络向外传送。(源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。)2.发送请求,打开一个连接后,客户机把请求消息送到服务器的停留端口上,原创 2017-02-22 08:29:01 · 700 阅读 · 0 评论 -
hibernate与jdbc分页
对于hibernate而言 只需要Query对象调用两个方法1.setFirstResult(); 表示数据是从哪一条记录开始,一般设值为 (每页的显示数据数目 - 1)* 当前页数2.setMaxResult(); 表示每页显示的数据条数。对于JDBC而言 也十分简便需要引入一个CachedRowSet 对象,来处理 ResultSet ,然后给它设置每页的显示原创 2017-01-22 22:45:38 · 430 阅读 · 0 评论 -
javaee实战项目--农贸产品开发(详细讲解及代码实现)
这个项目是我第一个与他人合作完成的项目,我用java写后台,综合性较强,用到了hibernate,jsp,servlet,适合那些javaee已经入门,想要通过项目来提高自己的朋友。这个项目源码免积分提供大家学习,还有一些模块的代码(如数字验证码),可以稍作修改就能拿来用。获得源码先附上运行效果插图:登录界面:发布买家信息界面:发布卖家信息界面:...原创 2016-11-07 17:35:29 · 11860 阅读 · 3 评论 -
javaweb简单模拟购物车
下面的代码主要实现了保存密码,自动登录,用Session保存购买信息的功能。BookAddedListener.javapackage ex2;import javax.servlet.http.HttpSessionAttributeListener;import javax.servlet.http.HttpSessionBindingEvent;/** * @author 高尉峰原创 2016-10-22 17:21:27 · 9596 阅读 · 1 评论 -
Servlet学习笔记---记录同时在线的人
login.jsp My JSP 'login.jsp' starting page 用户名 密码 Show.javapackage com.wanhao;import java.io.IOException;import java.util.ArrayList;impor原创 2016-09-07 11:09:14 · 344 阅读 · 0 评论 -
设置访问的主页面
你需要找到tomcat\webapps\study_JSP\WEB-INF\web.xml文件,其中study_JSP是指自己写的网络程序。然后你需要修改web.xml配置文件,比如设置默认的访问页面为webapps\1.html,便可改为下面。<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://原创 2016-08-22 17:46:12 · 936 阅读 · 0 评论 -
一个注册登录页面
不要参考我这个,还有很多漏洞,也不够完善。包com.wanhao.dao Dao.javapackage com.wanhao.dao;import java.io.File;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.Http原创 2016-09-03 15:17:17 · 878 阅读 · 0 评论 -
JSP学习笔记---应用做个简易计算器JSP+javabean
注意:1.用到了标签,注意javabean中参数变量务必要与表单提交数据名称相同。Main.jsp My JSP 'Main.jsp' starting page <% calculate.calculate(); out.write(calculate.getFirstNum()+calculate.原创 2016-08-29 22:31:41 · 783 阅读 · 0 评论 -
JSP学习笔记---注释,jsp声明,jsp映射
jsp中建议用注释,不会将内容发给浏览器。被注释的内容--%>被包含的内容写在service方法外,可以用来声明方法,引入静态代码块。%>原创 2016-08-28 15:31:23 · 552 阅读 · 0 评论 -
JSP学习笔记---常用的标签
标签可以避免使用Java代码,使JSP结构更加完整1.用来跳转页面2.相当于pageContext.include("");都是动态包含,建议使用静态包含。3.这个标签可以在跳转页面的时候携带数据,要获取"aaa"只需要在跳转的页面调用request.getParameter("username");若要携带多个数据,可以写多个标签。原创 2016-08-29 14:29:32 · 417 阅读 · 0 评论 -
JSP学习笔记---pageContext对象
它可以获得其它八大隐式对象,直接调用get对象便可以获得,用在自定义标签中。pageContext域简称page域,只能在本页面里拿出来,范围小。他还可以访问其他域的数据,pageContext.getAttribute("data",常量);在常量代表的域中取出名为data的数据。pageContext.findAttribute("data"); 自动由page域re原创 2016-08-29 12:56:02 · 527 阅读 · 0 评论 -
JSP学习笔记---out隐式对象
调用out隐式对象的方法写入数据,或者直接写在body里的语句,会把数据写到JSPWriter的缓冲区。而若是调用response.getWriter()对象的方法写入数据,会把数据写到response缓冲区。servlet会先调用response缓冲区,后调用JSPWriter缓冲区。原创 2016-08-29 12:47:02 · 432 阅读 · 0 评论 -
JSP学习笔记---包含指令
格式,,, file写的是相对路径,算是为服务器服务。第一个注意事项: 引入的文件若是html或jsp,记得去除头部和尾部的多余标签。 include包含的文件,会编译合成一个文件 。 包含分为两种: 静态包含和动态包含。 静态包含性能要好很多。静态包含,即编译时包含,会翻译成一个servlet。动态包含,即运行时包含原创 2016-08-28 17:15:38 · 423 阅读 · 0 评论