JavaEE
企业级项目
深耕Java
这样很好
展开
-
Java中的动态代理
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式–代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。一、代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。简单的说就是,我们在访问实际对象转载 2021-11-03 14:52:50 · 481 阅读 · 0 评论 -
获取文件的真实路径(一般是配置文件)
获取文件的真实(服务器)路径:项目存在两个地方:tomcat服务器–>真实路径获取真实路径的方法:String getRealPath(String path) web目录下资源访问: getRealPath("/b.txt") WEB-INF目录下的资源访问: getRealPath("/WEB-INF/b.txt") src下的资源访问:原创 2021-06-08 21:30:51 · 484 阅读 · 0 评论 -
过滤器Filter实现自动登录 cookie.setPath没有设置 /,引发客户端访问时候没带指定cookie的问题。
1、客户端访问的时候,有时候没带指定的cookie。这个是网上找到的path取值规则:当cookie的path设置了值不为null的时候,以设置的值为准。当cookie的path为null时候,获取请求的URI的path值当URI的path值是以“/”结尾的时候,直接设置为cookie的path值当URI的path值不是以“/”结尾的时候,查看path里面是否有“/”如果有“/”的话,直接截取到最后一个“/”,然后设置为cookie的path值。如果没有“/”的话,将cookie的path设置转载 2021-05-27 23:35:24 · 500 阅读 · 0 评论 -
js获取参数方法中正则法则的解释
1.window.location:window的location对象2.window.location.href 整个URl字符串(在浏览器中就是完整的地址栏)3.window.location.protocol URL 的协议部分 返回值:http:4.window.location.host URL 的主机部分(带端口号)5.window.location.port URL 的端口部分。5.window.location.pathname URL 的路径部分(就是文原创 2021-05-20 21:09:20 · 288 阅读 · 0 评论 -
使用data方法访问data-*属性
复制代码代码如下:<div data-role = "page" data-last-value = "43" data-hidden = "true" data-options = '{"name":"John"}' > </div>下面的 jQuery代码都是返回 true 的:复制代码代码如下:$ ( "div" ) . data ( "role" ) === "page" ;$ ( "div" ) . data ( "lastValue" ) === 43 ;原创 2021-05-04 16:41:15 · 389 阅读 · 0 评论 -
Ajax的post&get
// 发送post请求,提交表单数据$.post("user/login", $("#loginForm").serialize(), function(data) { // 数据 if (data.flag) { // 登录成功 location.href = "index.html"; } else { // 登录失败 $("#errorMsg").html(data.errorMsg); }});// 发送ajax请求,post请求route/pageQu原创 2021-05-03 14:07:17 · 46 阅读 · 0 评论 -
自定义pageBean
domain包–>model:1.pageBean类–>对应复杂查询的数据package cn.itcast.domain;import java.util.List;public class PageBean<T> {private int totalPage; // 总页数private int totalCount; // 数据总条数private int rows; // 显示条数private int currentPage; // 当前页码原创 2021-05-04 13:37:09 · 192 阅读 · 0 评论 -
Jedis案例2
redis案例2@Override public List<Category> findAll() { // 从redis中查询 Jedis jedis = JedisUtil.getJedis(); // 使用sortedset进行排序查询 Set<String> categorys = jedis.zrange("category", 0, -1); // 判断查询的集合是否为空原创 2021-04-09 16:13:38 · 68 阅读 · 0 评论 -
Jedis案例
Jedis案例:案例的需求: 1.提供index.html页面,页面中有一个省份下拉列表 2.当页面加载完成之后 发送ajax请求,加载所有省份缓存思想: 1.先从redis查询数据 如果没有: 1.从数据库中查询 2.将数据存入redis 如果有: 1.直接从redis获取数据注意:使用redis缓存一些不经常发生变化的数据 数据库的数据一旦发生改变,需要清空r原创 2021-04-07 11:59:57 · 122 阅读 · 0 评论 -
Redis基础
Redis1.概念:redis是一款高性能的NOSQL的非关系型数据库 区别: 关系型数据库 1.数据之间有关联关系 2.数据存储在硬盘的文件上 非关系型数据库 1.数据之间没有关联关系 2.数据存储在内存中 关系型与非关系型是互补关系,而非替代关系 缓存思想: 从缓存中获取数据: 有数据:直接返回原创 2021-03-30 19:53:20 · 48 阅读 · 0 评论 -
Jedis的连接池工具类
Jedis的连接池工具类package cn.itcast.jedis.util;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/* Je原创 2021-03-30 19:52:35 · 109 阅读 · 0 评论 -
Ajax和Json的案例(异步校验用户是否存在)
Ajax和Json的案例校验用户是否存在: 服务器响应的数据,在客户端使用时候,json数据格式 使用需要指定: 1.前端的ajax中添加 type: "json" 2.后端指定MIME类型 response.setContentType("application/json;charset=utf-8"); 分析: 当文本输入框失去焦点后,发送ajax请求,查询数据库是否存在该用户名 如原创 2021-03-30 14:03:53 · 122 阅读 · 0 评论 -
Ajax&JSON基础
AJAX:1.概念:ASynchronous JavaScript And Xml 异步js和xml 1.异步和同步:客户端和服务器相互通信的基础上 同步:客户端必须等待服务器端的响应。等待期间,客户端不能做其他事情 异步:客户端不需要等待服务器端的响应,在服务器处理请求的 过程中,客户端可以进行其他的操作 作用:无需重新加载整个网页的情况下,能够更新部分网页的技术 通过在后台与服务器进行少量数据交换,原创 2021-03-30 13:05:46 · 68 阅读 · 0 评论 -
原生js实现ajax
原生js实现ajax:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script> // 定义方法 function fun() { // 发送异步请求 // 创建核心对象原创 2021-03-29 14:03:18 · 102 阅读 · 0 评论 -
插件:增强JQuery功能
插件:增强JQuery功能1.实现方式: 1. $.fn.extend(object) 增强通过JQuery获取的对象的功能 $("#id") 2. $.extend(object) 增强JQuery对象自身的功能 $/JQuery对JQuery获取的对象进行功能扩展<!DOCTYPE html><html><head> <meta charset="UTF-8"> <tit原创 2021-03-28 22:32:41 · 98 阅读 · 0 评论 -
JQuery高级案例
案例需求1: 1.当页面加载完,3秒后,自动显示广告 2.广告显示5秒后,自动消失 分析: 1.使用定时器完成一次 2.JQuery显示和隐藏动画效果就是控制display属性 3.使用动画显示和隐藏完成广告显示与隐藏案例:<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>广告的自动显原创 2021-03-28 22:25:56 · 105 阅读 · 0 评论 -
JQuery高级
JQuery高级1.动画 1.三种方式显示和隐藏元素 speed:动画速度 三个预定义的值(slow, normal, fast)或自定义毫秒值 easing:切换效果 默认swing,可用linear swing执行时的效果先慢再快最后慢 linear执行匀速 fn:动画完成执行的函数,每个元素执行一次 1.默认显示和隐藏方式 1.show([speed,[ea原创 2021-03-28 21:09:52 · 69 阅读 · 0 评论 -
JQuery基础案例
案例一:隔行换色<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="../../js/jquery-3.3.1.min.js"></script> <script> //需求:将数据行的奇数行背景色设置为 pink,偶数行背景色设置为 yellow $原创 2021-03-28 18:27:36 · 108 阅读 · 0 评论 -
Filter&Listener
Filter:过滤器1.概念:当访问服务器资源时,过滤器可以将请求拦截,完成一些特殊功能 使用场景: 一般用于完成通用的操作,如:登录验证,统一编码处理,敏感字符的过滤2.基本使用: 1.步骤 1.定义Filter接口的实现类 2.复写方法 3.配置拦截路径 1.web.xml文件配置 2.注解配置 @WebFilter("") 注解中写的ur原创 2021-03-28 11:13:33 · 56 阅读 · 0 评论 -
使用ServletContextListener加载全局资源案例(三大组件之一Listener)
ContextLoaderListenerimplements ServletContextListener:package cn.itcast.web.listener;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import java.io.FileInputStream;public cl原创 2021-03-28 11:07:02 · 164 阅读 · 0 评论 -
Filter的敏感词汇过滤案例
需求:1. 对day17_case案例录入的数据进行敏感词汇过滤2. 敏感词汇参考《敏感词汇.txt》3. 如果是敏感词汇,替换为 ***分析: 1.对request对象进行增强(动态代理),增强获取参数相关方法 2.放行,传递代理对象SensitiveWordsFilter:package cn.itcast.web.filter;import javax.servlet.*;import javax.servlet.annotation.WebFilter;imp原创 2021-03-27 19:03:25 · 283 阅读 · 0 评论 -
Filter的登录验证案例(权限控制基础)
需求: 1. 访问day17_case案例的资源。验证其是否登录 判断Session是否有user 2. 如果登录了,则直接放行。 3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录"。 注意:排除登录相关的资源,直接放行,否则会出现页面死循环BUG 如 登录相关的静态资源,Servlet,JSP页面等javax.servlet.Filter @Override public void doFilter(Servl原创 2021-03-27 16:54:55 · 95 阅读 · 0 评论 -
用户信息案例4(Dao层代码)
dao包1.UserDao接口package cn.itcast.dao;import cn.itcast.domain.User;import java.util.List;import java.util.Map;public interface UserDao { /** * 查询User表的所有信息 * @return */ public List<User> findAll(); /** * 通过用户原创 2021-02-23 17:06:34 · 437 阅读 · 0 评论 -
用户信息案例3(Service层代码)
service包1.UserService接口package cn.itcast.service;import cn.itcast.domain.PageBean;import cn.itcast.domain.User;import java.util.List;import java.util.Map;/** * 用户管理的业务接口 */public interface UserService { /** * 查询所有用户信息 * @return原创 2021-02-23 17:01:25 · 826 阅读 · 0 评论 -
用户信息案例2(web层代码)
代码展示(顺序:web层{顺序M–>V–>C}–>业务层–>持久层)domain包–>model:1.pageBean类–>对应复杂查询的数据package cn.itcast.domain;import java.util.List;public class PageBean<T> {private int totalPage; // 总页数private int totalCount; // 数据总条数private int row原创 2021-02-23 16:56:53 · 216 阅读 · 0 评论 -
用户信息案例1(含简单CRUD,复杂Query功能)
用户信息案例案例需求:表格中数据的CRUD 1.简单功能: 1.列表查询 1.需求:用户信息的增删改查操作 2.设计: 1.技术选型:Servlet+JSP+MySQL+JDBCTemplate+Druid+BeanUtils+Tomcat 2.数据库设计: create table user (原创 2021-02-23 16:11:28 · 306 阅读 · 4 评论 -
美化版本验证码案例
@WebServlet("/checkCodeServlet")public class CheckCodeServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { //服务器通知浏览器不要缓存 // 此处添加了该设置,前端将不需要欺骗服务器了 // 前端跳过原创 2021-02-20 16:17:50 · 175 阅读 · 0 评论 -
三层架构(附图)
三层架构:分层开发的目的:代码的解耦三层架构:表示层,业务逻辑层,数据访问层 表现层:又称web层,与浏览器进行交互 表现层包括展示层和控制层: 控制层负责接收请求,处理跳转, 展示层负责结果展示 表现层依赖业务层: 接收到客户端请求,一般会调用业务层进行业务处理,并将处理结果响应给客户端 表现层的设计一般使用MVC模型(MVC是表现层的设计模型,和其他层没关系) 业原创 2021-02-19 16:41:14 · 3128 阅读 · 2 评论 -
表格案例(利用JSTL进行数据的简化获取和处理)
表格demo:需求:在request域中有一个存有User对象的List集合, 需要使用jstl+el将list集合展示到jsp页面的表格table中涉及的知识点: jsp知识 指令<%@ %> 脚本<% %> el获取值 el进行运算 jsp中的域对象存取数据进行通信 jstl中的c:if标签+el进行数据判断 jstl中的c:forEach+el进原创 2021-02-19 14:23:37 · 567 阅读 · 2 评论 -
JSTL基本使用
JSTL标签:简化JSP中代码:替换JSP中java代码的技术1.概念:JavaServer Pages Tag Library JSP标准标签库 由Apache组织提供的开源免费 jsp标签2.作用:用于简化和替换jsp页面上的java代码3.使用步骤: 1.导入jstl相关jar包 2.引入标签库:taglib指令 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>原创 2021-02-19 13:47:19 · 381 阅读 · 0 评论 -
EL表达式基本使用
EL表达式:简化JSP中代码,替换JSP中java代码的技术1.概念:Expression Language 表达式语言2.作用:替换和简化jsp页面中java代码编写3.语法:${表达式}-->直接解析结果到页面4.注意: jsp默认支持el表达式,如果要忽略el表达式 1.设置jsp中page指令中:isELIgnored="true",忽略当前页面中所有EL表达式 2./${表达式}:忽略当前的EL表达式5.使用 1.运算原创 2021-02-18 17:45:10 · 176 阅读 · 0 评论 -
MVC的基本概念(附图解)
MVC开发模式:1.jsp历史及MVC的运用: 1.刚开始只有servlet,后端写代码只能使用response.getWriter(),这样麻烦 2.后来sun推出jsp技术,简化了servlet开发, 页面中代码量大,且混杂java代码,js代码,html标签等, 过度使用该技术会难以阅读,维护,分工 3.后来javaweb使用MVC开发模式,使得程序开发趋向规范2.MVC详解: 1.M:Model,模型 javaBean原创 2021-02-15 12:38:38 · 658 阅读 · 0 评论 -
JSP基础语法
JSP基础语法:1.概念: java server pages:java服务器端页面 功能:一个特殊的页面,可以写html标签,可以写java代码 作用:用于简化书写 原本输出html数据到页面是我们程序员做,现在交给了jsp做2.原理: 步骤: 1,服务器解析请求消息,找是否有index.jsp资源 2.如果找到了,会将index.jsp转换为.java文件(存储在tomcat的work文件夹下)原创 2021-02-15 11:49:13 · 76 阅读 · 0 评论 -
关于重定向和转发个人的二次理解
重定向:用于两次request之间的一种网页跳转方式,可以用于同一服务器的不同资源之间,也可以用在不同服务器之间。一般服务器内的资源共享用session会话技术实现,因为session是一次会话的多次请求转发:只可以用于服务器内部的资源跳转,只限制一次request中分享数据直接用request域即可...原创 2021-02-15 10:55:02 · 136 阅读 · 0 评论 -
案例:登录中输入验证码(Session及JSP技术应用)
案例:登录中输入验证码(会话技术)1.案例需求: 1.访问带有验证码的登录页面login.jsp 2.用户输入用户名,密码以及验证码 如果用户和密码输入有误,跳转登录页面。提示:用户或密码错误 如果验证码输入有误,跳转登录页面,提示:验证码有误 如果全部输入正确,跳转到success.jsp页面,显示:用户名,欢迎您2.案例分析: 1.设置request的编码 2.获取请求参数 3.获取session中的验证码原创 2021-02-14 16:32:29 · 748 阅读 · 3 评论 -
Session对象及其方法
Session: 1.概念:服务器端会话技术,一次会话的多次请求间共享数据,将数据保存在服务器端的HttpSession对象中 2.基本方法 1.获取HttpSession对象 HttpSession session = request.getSession(); 2.使用HttpSession对象 Object getAttribute(String name) void setAttr原创 2021-02-14 15:22:57 · 1891 阅读 · 0 评论 -
cookie案例用JSP改造(记住上次访问时间)
优点:1.JSP代码跨平台, 即一次编写,处处运行 众所周知,由于微软的垄断性,它的产品可移植性做得十分差,ASP也不例外, 2.JSP组件跨平台 JSP组件(企业JavaBeans,JavaBeans或定制的JSP标签)都是跨平台可重用的.企业JavaBeans组件可以访问传统的数据库,并能以分布式系统模式工作于Solaris,Linux,UNIX和Windows平台. 3.支持多种网页格式 目前, JSP技术支持的网页格式还没有一个明确的标准.一般原创 2021-02-13 17:29:54 · 499 阅读 · 0 评论 -
cookie案例(记住上次访问时间)
cookie案例之记住上次访问时间:1.需求: 1.访问一个servlet,如果是第一次访问,则提示:您好,欢迎首次访问 2.如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:时间字符串2.分析: 1.可以采用cookie完成 2.在服务器中的servlet判断是否有一个名为lastTime的cookie 1.有:不是第一次访问 1.响应数据:欢迎回来,您上次访问时间为:xxx 2.写回cookie:l原创 2021-02-13 15:27:05 · 209 阅读 · 2 评论 -
java中的URL编码与解码方法
编码URLEncoder.encode( URL, "UTF-8" )解码URLDecoder.decode( URL, "UTF-8" )注意: cookie中存放中文需要使用上述的方法进行编码和解码(tomcat8以后只有特殊字符需要使用上述方法编码,解码)原创 2021-02-13 14:23:02 · 834 阅读 · 0 评论 -
Cookie对象及其方法(小饼干)
会话技术:Cookie&Session1.会话:一次会话中包括多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到一方断开为止2.功能:在一次会话的范围内的多次请求间,共享数据3.方式: 1.客户端会话技术:Cookie 将数据存储在客户端 2.服务器端会话技术:Session 将数据存储在服务器端Cookie(小饼干): 1.概念: 客户端会话技术,将数据("小饼干")保存到客户端原创 2021-02-13 13:54:27 · 879 阅读 · 0 评论